# Headless WriteUp Primero hacemos un escaneo de puertos con nmap para ver que puertos estan abiertos, y que servicios estan corriendo en los mismos ![Pasted image 20240627184421](https://hackmd.io/_uploads/ryWVPt-t0.png) Nos encontramos con que en el puerto 5000 hay una pagina web aparentemente en construccion junto con un contador y un boton para enviar preguntas sobre el sitio ![Pasted image 20240627184526](https://hackmd.io/_uploads/SJ1Ivt-tR.png) Tras presionar el boton de preguntas, nos envia al directorio /support en el cual hay un formulario de contacto que pide diferentes datos de contacto ![Pasted image 20240627184615](https://hackmd.io/_uploads/BycvDKZKC.png) Al interceptar la solicitud al servidor tras haber llenado el formulario con datos aleatorios, vemos que hay una cookie que verifica si quien esta enviando la solicitud es el administrador ![Pasted image 20240627191603](https://hackmd.io/_uploads/BkkFwtWKR.png) Si intentamos realizar un ataque XSS introduciendo un payload en la solicitud, nos aparecera una alerta del firewall del sitio avisando que han bloqueado el intento de ataque ![Pasted image 20240627193730](https://hackmd.io/_uploads/r1lqwY-tR.png) Realizamos una busqueda de posibles directorios adicionales con la herramienta dirbuster, y nos encontramos con que ademas de /support el sitio cuenta con otro directorio llamado /dashboard el cual arroja el codigo 500 ya que no estamos autorizados a acceder ![Pasted image 20240627191707](https://hackmd.io/_uploads/Sy72vYWK0.png) El sitio no puede verificar que estemos autorizados a ver el sitio ya que no poseemos las credenciales adecuadas, en este caso las de administrador ![Pasted image 20240627194132](https://hackmd.io/_uploads/r1VTDtbY0.png) Si revisamos la solicitud que se envia a /dashboard nos encontramos con que la cookie que verifica si somos administradores, tambien es enviada al sitio, por lo cual, esta es la unica forma de que el sitio verifique si somos los administradores o no ![Pasted image 20240627194813](https://hackmd.io/_uploads/H1nQdYZYA.png) Iniciamos un servidor http con Python en el puerto 9999 ![Pasted image 20240627192312](https://hackmd.io/_uploads/r16V_tbK0.png) Probamos realizar un ataque de XSS introduciendo el payload en los parametros de User-Agent y message, con el fin de recibir la cookie de administrador en nuestro servidor http ![Pasted image 20240627194053](https://hackmd.io/_uploads/HJhrOFZYC.png) Recibimos una solicitud del servidor al servidor http de nuestra maquina local, y nos encontramos con que el ataque fue exitoso ya que logramos obtener la cookie de administrador ![Pasted image 20240627193639](https://hackmd.io/_uploads/HyaUuFZKR.png) `10.10.11.8 - - [27/Jun/2024 23:36:11] "GET /?cookie=aXNfYWRtaW49SW1Ga2JXbHVJZy5kbXpEa1pORW02Q0swb3lMMWZiTS1TblhwSDA= HTTP/1.1" 200 -` Al decodear la cookie, la cual estaba en base64, vemos que esta es diferente a la que ya teniamos ![Pasted image 20240627194645](https://hackmd.io/_uploads/r1Cd_KbFA.png) `is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0` Realizamos una solicitud a /dashboard pero esta vez utilizando la cookie previamente obtenida y nos encontramos con que el servidor nos arroja el codigo 200, dejandonos acceder al sitio ![Pasted image 20240627194856](https://hackmd.io/_uploads/Bk35Ot-tR.png) Nos encontramos con el panel de administrador, el cual permite generar reportes del sitio con una fecha que le indiquemos ![Pasted image 20240627195045](https://hackmd.io/_uploads/S1tjOYWK0.png) Al revisar la solicitud, nos encontramos con que hay un posible RCE (Remote Command Execution o Ejecucion Remota de Comandos) ya que al introducir el comando "whoami" debajo del mensaje que los sistemas estan encendidos y funcionando, nos sale "dvir" el cual podria ser el usuario del sistema ![Pasted image 20240627200116](https://hackmd.io/_uploads/H1rndK-FA.png) Intentamos nuevamente enviar un comando, pero esta vez para listar los archivos, y vemos que esta vez, el mensaje de respuesta del sitio es diferente, ya que logra listar con exito los archivos del directorio en el que esta corriendo el sitio, por lo tanto se confirma la vulnerabilidad tipo RCE ![Pasted image 20240627200847](https://hackmd.io/_uploads/B1fa_FbtR.png) Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 4444 ![Pasted image 20240627195802](https://hackmd.io/_uploads/HkxAOt-Y0.png) Enviamos un comando para obtener una reverse shell, de forma que el servidor se conecte a nuestra maquina para lograr interactuar con la terminal del servidor ![Pasted image 20240627204345](https://hackmd.io/_uploads/SkjAdKbKA.png) Recibimos la conexion del servidor ![Pasted image 20240627204359](https://hackmd.io/_uploads/rycJFFZKR.png) Buscamos la flag de usuario ![Pasted image 20240627204531](https://hackmd.io/_uploads/H1ueFtZtC.png) ![Pasted image 20240627204649](https://hackmd.io/_uploads/SJM-tKbKR.png) Verificamos los permisos que tenemos para luego obtener la flag de root, y vemos que el unico directorio en el cual no se nos solicitara la contraseƱa es /usr/bin/syscheck ![Pasted image 20240627204902](https://hackmd.io/_uploads/BJy7KYWFR.png) Revisamos el contenido de /usr/bin/syscheck ![Pasted image 20240627205207](https://hackmd.io/_uploads/Skj7tKWFC.png) Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 8888 ![Pasted image 20240627205005](https://hackmd.io/_uploads/HyFEYKbKC.png) Ejecutamos un comando para obtener una reverse shell, de forma que el servidor se conecte a nuestra maquina para lograr interactuar con la terminal del servidor con permisos de root ![Pasted image 20240627205603](https://hackmd.io/_uploads/BkRHtKZYA.png) Recibimos la conexion del servidor y verificamos mediante el comando whoami que somos administradores del sistema ![Pasted image 20240627205634](https://hackmd.io/_uploads/r19UKKbKC.png) Buscamos la flag de root ![Pasted image 20240627205804](https://hackmd.io/_uploads/BJ5PFtbFR.png) ![Nano](https://www.hackthebox.eu/badge/image/54373)