Skip to main content
HackTheBox machines – Format WriteUp

HackTheBox machines – Format WriteUp

Format es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en Linux

Format es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Media.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Format 10.10.11.213 a /etc/hosts como format.htb y comenzamos con el escaneo de puertos nmap.

Encontramos varios puertos abiertos y un dominio nuevo, microblog.htb, así que lo añadimos al fichero hosts y procedemos a enumerar.

 

Enumeración

Accedemos al puerto 80 y nos redirecciona al dominio app.microblog.htb así que lo añadimos al fichero hosts y entramos

 

HackTheBox machines – Format WriteUp

 

Revisamos el portal web y encontramos un enlace que nos lleva al portal del puerto 3000

HackTheBox machines – Format WriteUp

 

Se trata de una página con gitea, y vemos el repositorio del usuario Cooper

Acceso al código del repositorio de cooper

 

Revisamos un poco el código y volvemos al portal del puerto 80, como no tenemos cuenta, nos creamos una y accedemos, viendo la siguiente página de creación de subdominios

 

Revisión del portal de microblog

 

Nos creamos un subodminio para probar como funciona el portal y accedemos al mismo

Acceso a nuestro subdominio

Hacemos una simple prueba a inyectar código javascript

Probando si es vulnerable a XSS

 

 

Enviamos el formulario y verificamos y vemos que es vulnerable a XSS almacenado

XSS verificado

 

Probamos varias cosillas por aquí, aunque sin éxito, así que vamos a interceptar la petición con burp, y después de varias pruebas, descubrimos que es vulnerable a LFI, y conseguimos el fichero passwd

Explotando un LFI

 

 

Descubrimos aquí dos posibles usuarios, cooper y redis, así que volvemos al código del repositorio del usuario cooper, y descubrimos una parte interesante

Revisión del código

 

Viendo el código, necesitamos convertirnos en usuario PRO con el fin de disponer de más permisos en el portal, así como la capacidad de poder subir ficheros al mismo, así que revisamos el código de la función isPro

Revisión del código

 

Y en este caso, necesitaremos abusar de redis utilizando el socket del servicio para modificar el valor de la variable pro de nuestro usuario.

Para ello abusaremos del mismo gracias al envío de una petición con curl con HSET

Indicamos nuestro usuario y el valor a true de la variable pro y si recargamos en el navegador observaremos que ya lo tenemos

Acceso con permisos de pro

 

Como ya somos usuarios con capacidades de pro, interceptamos la petición con burp y enviaremos un fichero al directorio uploads que nos permita ejecutar una revshell en la máquina

Subida de ficheros con burp

 

Una vez enviada la petición, y después de algunos intentos, sólo nos queda acceder al fichero desde el navegador

Y obtendremos una shell con el usuario www-data en nuestra escucha

 

Escalado al usuario cooper

Vamos a mejorar la capacidad de nuestra shell con python en primer lugar

Y procedemos a enumerar el sistema.

Recordamos el servicio de redis, del cual abusamos antes, así que vamos a buscar el proceso

No hay un puerto abierto, así que nos conectamos por medio del socket y enumeramos las keys

Obtenemos el tipo de dato de la clave del usuario cooper

Y con HGETALL sacamos los datos

Y obtenemos la password del usuario cooper.

 

Obteniendo la flag de user

Con la clave del usuario, accedemos por ssh y obtenemos la primera flag

 

Escalado de privilegios

Ahora revisaremos la máquina, aunque en primer lugar verificamos si el usuario disponde de algún permiso elevado

Vemos que podemos ejecutar como root el binario de license

Que se trata de un script en python, cuyo contenido es el siguiente

 

Revisamos que el código anterior es vulnerable a format string así que lo utilizaremos para obtener credenciales en texto plano.

En primer lugar nos conectaremos a redis y generaremos las credenciales

Y ejecutaremos el fichero de license con el usuario generado en redis

En el mismo vemos unas credenciales, que serán las que utilicemos para escalar a root.

 

Obteniendo la flag de root

Nos conectamos a root con las credenciales generadas y vamos a por la flag.

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *