Pandora

Publicado: 04 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy
๐ Descripciรณn
Pandora es una mรกquina Linux de dificultad fรกcil que presenta mรบltiples vectores de ataque interesantes. La explotaciรณn comienza con el descubrimiento de credenciales a travรฉs del servicio SNMP mal configurado, lo que permite el acceso SSH inicial. Posteriormente, se requiere realizar port forwarding para acceder a un servicio web interno (Pandora FMS) que es vulnerable a inyecciรณn SQL (CVE-2021-32099). Esta vulnerabilidad permite la autenticaciรณn como administrador y la posterior carga de una web shell para obtener ejecuciรณn remota de cรณdigo. Finalmente, la escalada de privilegios se logra mediante la explotaciรณn de un binario SUID personalizado que es vulnerable a ataques de PATH hijacking.
La mรกquina enseรฑa conceptos importantes como enumeraciรณn SNMP, port forwarding, explotaciรณn de vulnerabilidades web conocidas, y tรฉcnicas de escalada de privilegios mediante manipulaciรณn del PATH.
๐ญ Reconocimiento
Ping para verificaciรณn en base a TTL
๐ก Nota: El TTL cercano a 64 sugiere que probablemente sea una mรกquina Linux.
Escaneo de puertos TCP
Enumeraciรณn de servicios
Escaneo de puertos UDP
๐ Enumeraciรณn Web
80 HTTP
Accedemos al sitio web y usamos la extensiรณn wappalyzer para ver si vemos un poco las tecnologรญas usadas:

Fuzzing de directorios
Tras probar a realizar fuzzing de directorios don feroxbuster y dirsearch, no encontramos nada.
161(UDP) SNMP
Probamos a realizar fuerza bruta sobre el puerto 161 del servicio SNMP con la herramienta SNMP brute para ver quรฉ comunidades descubrimos:

Usamos la herramienta snmp-check para enumerar en detalle sobre las comunidades descubiertas:
Al revisar el fichero de salida, en el apartado de procesos, encontramos un proceso que estรก haciendo uso de unas credenciales:

๐ Acceso Inicial
Usamos las credenciales obtenidas para el usuario daniel para conectarnos a travรฉs del servicio SSH del puerto 22:
๐ Movimiento Lateral
Enumeramos los usuarios en la mรกquina y vemos que la flag estรก en el directorio del usuario matt pero no tenemos permisos:
Comprobamos que daniel no puede ejecutar sudo en la mรกquina:
Configuraciรณn de servicios web
Como ya habรญamos enumerado anteriormente el servidor web que se estรก usando es apache. La configuraciรณn de los sitios de Apache se define en /etc/apache2/sites-enabled. En este caso vemos que hay dos:
Descubrimos un virtual host llamado pandora.panda.htb pero se estรก ejecutando en localhost y vemos la ruta a la que enlaza /var/www/pandora
Enumeramos los ficheros en el directorio pandora y verificamos si hay algรบn directorio sobre el que Daniel tenga permisos de escritura pero no hay.
Encontramos un fichero de configuraciรณn pero Daniel no tiene permisos para leerlo:
Port forwadding pandora.panda.htb
Como no encontramos ningรบn vector de ataque ni credenciales que nos permitan movernos lateralmente, aprovechando que tenemos conexiรณn vรญa ssh para usar realizar un redireccionamiento del puerto 80 del host de la mรกquina comprometida al puerto 9000 de nuestro host de ataque para enumerar este servicio.
A continuaciรณn aรฑadimos al fichero /etc/host de nuestro host de ataque la resoluciรณn del vhost pandora.panda.htb a localhost
Una vez hecho, si abrimos en el navegador la direcciรณn : http://localhost:9000 somos redireccionados al servicio de Pandora FMS console:
http://localhost:9000/pandora_console/
Probamos con las credenciales por defecto de este servicio que son admin:pandora pero no tenemos รฉxito.
En la parte inferior de la web vemos una versiรณn: v7.0NG.742_FIX_PERL2020 y buscando exploits para esta aplicaciรณn encontramos que hay varias vulnerabilidades para esta versiรณn del servicio y una de ellas explota una vulnerabilidad SQLi.
๐ฏ Explotaciรณn
CVE-2021-32099
Esta vulnerabilidad se encuentra en el fichero chart_generator.php en el cual hay un parรกmetro session_id el cual no estรก siendo debidamente sanitizado y permite una inyecciรณn SQL Union.
Esto podemos verificarlo haciendo una sencilla prueba aรฑadiendo un carรกcter ' al parรกemetro de entrada:
http://localhost:9000/pandora_console/include/chart_generator.php?session_id=1%27

Hacemos algunas pruebas de forma manual, por ejemplo para determinar el nรบmero de columnas:

Verificamos que hay 3 columnas porque ya no devuelve error. Automatizamos esta inyecciรณn con el siguiente exploit pรบblico:
https://github.com/shyam0904a/Pandora_v7.0NG.742_exploit_unauthenticated
El resumen de lo que hace este exploit es que aplica una inyecciรณn SQL sobre el parรกmetro session_id mal sanitizado del componente chart_generator.php como habรญamos visto anteriormente para lograr robar la cookie del usuario admin y una vez autenticado subir una php shell en la mรกquina de forma que con ella podremos obtener una RCE.
Iniciamos un listener con netcat
Descargamos y ejecutamos el exploit
La ejecuciรณn nos abre ya una shell pero tambiรฉn podemos usarla manualmente en el endpoint que se indica sobre el archivo pwn.php?test=

Usaremos la siguiente bash shell:
Codificรกndola previamente a formato URL:
Obtenemos la RCE y ganamos acceso como usuario matt:
Mejora de la tty
Obtenemos la flag en el directorio del usuario matt:
๐ Escalada de matt a root
Parece que hay un problema con la shell actual y no permite ejecutar ciertos comandos:
Tambiรฉn verificamos si hay binarios con permisos SUID de los que podamos abusar:
Entre los resultados hay un binario que no es habitual llamado pandora_backup y comprobamos que el propietario es root y grupo al que pertenece es matt:
Dado que el binario tiene el bit SUID, esto permite que podamos ejecutar este binario como root pero parece que falla, posiblemente debido a algรบn problema con la terminal y mismo motivo por el que no podemos ejecutar sudo -l.
Conexiรณn mediante SSH
Aquรญ podemos hacer una cosa, podemos generar un par de claves ssh para el usuario matt y asรญ poder conectarnos por ssh y estar una shell mรกs estable. Para ello hacemos lo siguiente:
Creamos una copia de id_rsa.pub y la renombramos a authorized_keys y le damos permisos 600 para que รบnicamente el propietario pueda manipular el archivo:
Nos copiamos el la clave privada y desde nuestro host de ataque, la guardamos en un archivo, le damos permisos 600 y la usamos para conectarnos con el usuario matt:
Una vez dentro hacemos un export TERM=xterm y verificamos que ya podemos lanzar sudo -l y el script /usr/bin/pandora_backup sin fallos:

No tenemos la herramienta strings instalada en el host sรญ tenemos la utilidad ltrace y asรญ poder ver un poco el contenido del binario compilado:
Vemos que lo que hace es usar el comando tar de forma relativa y no absoluta, por lo que podemos hacer un ataque de PATH Hijacking En binarios compilados introducir otros binarios con rutas relativas tiene mucho riesgo y mรกs si ese binario se ejecuta como root.
Para explotar esto, primero cremos un archivo en /tmp que se llame tar cuyo contenido serรก simplemente una llamada a /usr/bin/sh y le damos permisos de ejecuciรณn.
Verificamos el contenido de la variable PATH:
Ahora simplemente aรฑadimos el directorio /tmp al PATH y dado que el contenido del PATH se lee de izquierda a derecha, encontrarรก primero el archivo tar que hemos definido en tmp y ejecutarรก este en lugar del que hay en /usr/bin/tar:
Si ahora de nuevo comprobamos lo que vale la variable PATH:
Si ahora ejecutamos el binario de nuevo logramos ganar acceso como root:
Last updated