# Headless WriteUp
Primero hacemos un escaneo de puertos con nmap para ver que puertos estan abiertos, y que servicios estan corriendo en los mismos

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

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

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

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

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

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

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

Iniciamos un servidor http con Python en el puerto 9999

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

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

`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

`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

Nos encontramos con el panel de administrador, el cual permite generar reportes del sitio con una fecha que le indiquemos

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

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

Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 4444

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

Recibimos la conexion del servidor

Buscamos la flag de usuario


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

Revisamos el contenido de /usr/bin/syscheck

Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 8888

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

Recibimos la conexion del servidor y verificamos mediante el comando whoami que somos administradores del sistema

Buscamos la flag de root

