Headless

20240323223447.png

Headless es una máquina Linux de dificultad fácil que cuenta con un servidor Python Werkzeug que aloja un sitio web. El sitio web tiene un formulario de soporte al cliente, que se ha descubierto que es vulnerable a Cross-Site Scripting (XSS) ciego a través del encabezado User-Agent. Esta vulnerabilidad se aprovecha para robar una cookie de administrador, que luego se utiliza para acceder al panel de control del administrador. La página es vulnerable a la inyección de comandos, lo que lleva a un shell inverso en el equipo. Al enumerar el correo del usuario se revela un script que no utiliza rutas absolutas, que se aprovecha para obtener un shell como root.

Enumeración

Iniciamos con la enumeración de los puertos abiertos de la maquina victima.

Luego de obtener los puertos, enumeraremos los servicio y las versiones de los puertos abiertos que encontramos.

Puerto 5000

20240323223557.png

Haciendo fuzzing encontraremos con el directorio Dashboard

20240323224103.png

Otro con el directorio support

20240323223646.png

Ahora interceptando con Burp Suite encontraremos con una cookie nuestra, que al parecer hace una verificación si somo usuarios privilegiados.

20240323224319.png

Explotación

Intentando un xss podemos ver que el sitio web bloquea la petición.

20240323223746.png

Revisando el siguiente sitio web podemos obtener mas información de como obtener una cookie de algún usuario administrador:

XSS - Cross Site Scripting

Ahora teniendo claro de como explotar la vulnerabilidad, primero iniciaremos un servidor en Python

Luego enviamos la petición y vemos que el sitio web detecta el ataque

20240323224355.png

Pero obtenemos una cookie en base64 que podremos usar en el sitio web

20240323224422.png

Introducimos la cookie con la herramienta cookie-Editor o simplemente puedes usar la devTools

20240323233309.png

Luego de recargar el sitio web podemos ver un panel de administrador

20240323233246.png

Command Injection

Luego de enumerar con varios métodos, encontramos que podemos ejecutar comandos en date=2024-03-23; ... así que haremos uso esto para acceder a la maquina victima.

20240323233227.png

Ahora creamos un archivo index.html

Que contendrá nuestra revershell:

Y luego iniciamos un servidor con Python en el puerto 80

Para luego ejecutar un :

así deberíamos de obtener un revershell

Escalada de privilegios

Usuario - dvir

20240323233652.png
20240324000647.png

Enumerando la maquina victima con un sudo -l encontraremos con permisos que el usuario actual esta ejecutando.

20240324000647.png

Leemos el código del archivo que tenemos permisos privilegiado, encontramos algo interesante que es initdb.sh

Buscamos el archivo initdb.sh, pero no la encontraremos. Asi que crearemos uno con un contenido malicioso en el cual copiaremos el binario de la bash y daremos permiso de SUID

Luego ejecutaremos con sudo

Para asi obtener un binario bash con permiso de SUID

20240324001812.png

Usuario - root

Haciendo uso de ./bash -p deberíamos de obtener una shell como usuario root

20240324004131.png

Last updated