Pandora - Machines - Hack The Box

Pandora

Pandora es una máquina Linux de fácil calificación. El escaneo de puertos revela un servicio SSH, un servidor web y SNMP ejecutándose en la caja. El punto de apoyo inicial se obtiene enumerando el servicio SNMP, que revela las credenciales de texto sin cifrar para el usuario “daniel”. La enumeración de hosts revela que Pandora FMS se ejecuta en un puerto interno, al que se puede acceder mediante reenvío de puertos. El movimiento lateral hacia otro usuario llamado matt se logra encadenando la inyección SQL y el proceso. Vulnerabilidades RCE en el servicio PandoraFMS. La escalada de privilegios al usuario “root” se realiza explotando un binario SUID para la inyección de la variable PATH.

1. Enumeración:

Iniciamos con una fase de reconocimiento, identificando los servicios soportados por el servidor. Con Nmap vamos a listar los puertos TCP y la versión de los servicios que están utilizando.

Ahora vamos a descubrir los puertos UDP desplegados por el servidor.

Al final listamos los puertos encontrados como abiertos.

• 22-TCP, puerto SSH

• 80-TCP, servidor web

• 161-UDP, servidor snmp

2. Búsqueda de Vulnerabilidades:

Realizamos una búsqueda en metasploit de exoloit para el servicio SNMP.

Vamos a utilizar el módulo auxiliar de metasploit.

• “auxiliary/scanner/snmp/snmp_enum” e ingresamos la IP del servidor.

Este módulo auxiliar nos arrojara información del servidor como los servicios que están corriendo, así como los puertos entre otra información. Algo interesante que nos arrojo fue un servicio en donde se ve en claro unas credenciales de un usuario.

3. Explotación:

Utilizamos estas credenciales para conectarnos por ssh al servidor.

Ahora iniciaremos un servidor web local para cargar una utilidad “linpeas.sh” la cual es una herramienta que busca posibles rutas de escalada de privilegios locales que podría explotar.

Descargamos la herramienta y asignamos permisos de ejecución.

Ejecutamos la herramienta.

Se logra identificar un servicio que está corriendo por el puerto 80 y solo es accesible localmente.

Vamos a realizar un reenvió de puerto con ssh, para que podamos ingresar al servicio web del puerto 80. De esta manera estamos reenviando el puerto 80 de la víctima al puerto 80 de nuestra máquina.

Ahora ingresamos al servicio web en donde se tiene un inicio de sesión.

Vamos a buscar exploit aplicados a pandora FMS.

Nos aprovecharemos de la vulnerabilidad SQL Injection (CVE-2021-32099), buscamos un exploit y encontramos la siguiente URL con la que podremos acceder a la aplicación.

• “http://localhost:8000/pandora_console/include/chart_generator.php?session_id=a’ UNION SELECT ‘a’,1,’id_usuario s:5:”admin”;’ as data FROM tsessions_php DONDE ‘1’=’1”

Pegar la URL en nuestro navegar.

Luego de cargar de nuevo, evidenciamos como estamos dentro como administrador sin autenticarnos.

Ahora vamos a descargar un script para php y que nos genere una shell reversa.

• git clone https://github.com/pentestmonkey/php-reverse-shell.git

Modificamos los datos de nuestra máquina, así como el puerto de escucha del script.

Cargamos el script en la página web.

Dejamos el equipo atacante a la escucha en el puerto configurado en el script de php.

Ejecutamos el script cargado desde el navegador.

Ahora ya tenemos una shell al servidor y podemos leer nuestra flag.

4. Elevación de Privilegios:

Luego de estar en el servidor, vamos a intentar conectarnos por shh, para ello vamos a crear el fichero donde se almacenará las claves de ssh y crearemos un fichero en donde vamos a copiar una clave valida.

Desde nuestra máquina, vamos a generar un par de claves (pública y privada) para la autenticación de ssh.

Copiamos el contenido de la clave publica generada.

Ingresamos ese valor dentro del fichero creado anteriormente.

Ahora ya podremos conectarnos por ssh con el usuario matt.

Dentro de los ficheros encontrados, vemos uno que se ejecuta con permisos 4000, además al ejecutarlo, se puede ver que usa el binario “tar” para descomprimirse.

Ahora vamos a crear un archivo “tar” en la carpeta /tmp/tar.

Agregamos la carpeta /tmp como una ruta y al ejecutar de nuevo el archivo, vamos a tener una sesión como root.