Skip to main content
HackTheBox machines – Bolt WriteUp

HackTheBox machines – Bolt WriteUp

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

Bolt 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 Bolt 10.10.11.114 a /etc/hosts como bolt.htb y comenzamos con el escaneo de puertos nmap.

Una vez hecho el escaneo, descubrimos un subdominio, así que agregamos passbolt.bolt.htb a nuestro fichero /etc/hosts y procedemos a revisar los portales web.

 

Enumeración

Revisamos ambos portales web y vemos lo siguiente:

En el puerto 80 la web de bolt.htb

 

Y en el portal web de passbolt, vemos una página de login para acceder al gestor de contraseñas

 

Revisamos el portal del gestor de contraseñas pero no parece que podamos hacer aqui mucho más por el momento así que vamos a hacer enumeraciones.

Enumeramos directorios existentes con gobuster en el portal de bolt.htb

 

Revisamos las urls existentes y vemos una interesante, /download, que luce el siguiente aspecto

 

En la misma podemos descargar la imagen de docker desde el botón de Download Now así que lo descargamos y observamos el tipo de fichero que es

Se trata de un fichero tar así que vamos a descomprimir el mismo y observamos los siguientes directorios y ficheros

Vemos que disponemos de un fichero manifest, uno repositories y varias carpetas que corresponden a cada una de las capas de la imagen de docker. Revisamos cada una de ellas con detenimiento y descubrimos una interesante en la cual existe un fichero de base de datos sqlite3

Extraemos el fichero y lo abrimos para descubrir su contenido, y nos da una alegría, ya que en el mismo hay una tabla user con el hash del usuario admin

Obtenido el hash comprobamos el tipo del mismo

Buscamos el modo que deberemos utilizar con hashcat para romperlo

Y tratamos de crackear la password

 

Además de esto, revisando entre los ficheros obtenemos un código de invitación en otra de las capas, y que puede ser útil más adelante

 

Accedemos al portal de bolt con las claves obtenidas y vemos un panel de dashboard realizado por el cms AdminLTE

 

Revisamos el portal y las posibles opciones y encontramos una conversación entre dos usuarios donde indican que hay un problema de seguridad y que la demo está restringida a un código de invitación, código que ya obtuvimos antes, así que vamos a enumerar virtualhosts y subdominios a ver si encontramos el portal de demo

 

Descubiertos los dos los analizamos, en primer lugar el panel de demo

 

Para el cual no disponemos de una cuenta así que nos creamos una utilizando el código de invitación y accedemos al portal viendo un dashboard similar al anterior, pero con más opciones

 

Llegados a este punto realizamos algunas pruebas pero parece que no obtenemos mucho al respecto así que nos vamos al panel de mail y nos logueamos con el mismo usuario

 

Hacemos alguna prueba y parece que cuando aplicamos algún cambio sobre la configuración del usuario recibimos un mail para confirmar los cambios así que vamos a probar a realizar un ataque de Server-Side Template Inyection (SSTI) donde se puede ver una cheatsheet en el siguiente enlace.

Dicho esto, para la prueba modificaremos el nombre del usuario por {{44}} en la sección de Profile -> Settings -> Name

 

Y una vez confirmados los cambios vemos en el mail como se han modificado los datos eliminando las llaves que pusimos alrededor del valor entero

 

Visto que funciona lanzamos otra prueba para obtener el usuario y conseguimos ejecutar el comando id modificando el nombre del usuario por el siguiente código

Y vemos el resultado en la siguiente captura

 

Como ya hemos verificado que es vulnerable a este tipo de ataques, podemos utilizarlo para ejecutar una rev shell y conseguir acceso.

Modificaremos el nombre del usuario con el siguiente código

Y obtendremos acceso como www-data en nuestra escucha 

Después de dar varios palos de ciego por la máquina descubrimos un fichero con unas credenciales de base de datos en la ruta /etc/passbolt/passbolt.php

 

Obteniendo la flag de user

Una vez llegados a este punto, utilizamos las claves de mysql descubiertas para escalar al usuario eddie y conseguir la primera flag

 

Escalado de privilegios

Una vez que ya tenemos la flag del usuario, volvemos a las credenciales obtenidas de mysql y descubrimos en la tabla secrets de la ddbb passboltdb un mensaje pgp que nos será útil más adelante

 

Continuamos con la enumeración de la máquina, y después de un rato dando más y más vueltas encontramos un correo del usuario Clark al usuario Eddie

En el anterior mail nos indica que descarguemos la extensión del servidor de gestión de passwords en el navegador y que hagamos una copia de nuestra clave privada para evitar perder la misma, y esto nos da una posible idea de como continuar. Generalmente los datos temporales de un navegador se almacenan en un directorio de la home del usuario así que vamos a buscar en la home del usuario eddie y encontramos el siguiente fichero el cual contiene la clave pública y privada del usuario

Obtenemos la misma y utilizaremos john para obtener la password.

En primer lugar obtenemos el hash con gpg2john

Y posteriormente John para crackearla

Y ya la tenemos, así que vamos a utilizarla para descifrar el mensaje obtenido anteriormente de la base de datos MySQL.

 

Para evitar importar la clave en nuestro sistema subimos la misma a la máquina y la importamos

Una vez importada, utilizamos la misma junto con la password descubierta para descifrar el mensaje

 

Obteniendo la flag de root

Como último paso utilizaremos la contraseña obtenida del mensaje cifrado para escalar a root y conseguir 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 *