Skip to main content
HackTheBox machines - Craft

HackTheBox machines – Craft

Craft es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad media.

Craft es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad media.

 

Escaneo de puertos

Empezaremos realizando un escaneo con nmap sobre la ip de la misma 10.10.10.110

Descubrimos dos accesos relevantes, https en el puerto 443 y ssh en el puerto 22.

 

Enumeración

Accedemos por el navegador a la dirección https://10.10.10.110 y encontramos una página inicial pero que no muestra mucha información al respecto:

HackTheBox machines - Craft

 

Vemos dos enlaces en la parte izquierda pero que apunta a la home y nos dan la misma información que hemos visto hasta ahora, pero si revisamos los enlace de la derecha apuntan a dos subdominios del mismo:

Añadimos la dirección a nuestro fichero /etc/hosts estas direcciones para poder acceder a los mismos:

Accedemos a la primera de dichas urls https://api.craft.htb/api/

HackTheBox machines - Craft

 

En esta página podemos ver varios API Endpoint con los que podemos interactuar, nos centraremos por el momento en la parte de autenticación, donde vemos dos uris diferentes /auth/check y /auth/login

HackTheBox machines - Craft

Si probamos a ejecutar el mismo nos da un error al no tener un token o unas credenciales de autenticación, sigamos entonces enumerando las aplicaciones disponibles.

HackTheBox machines - Craft

 

Accedemos a la segunda aplicación situada en la url https://gogs.craft.htb/

HackTheBox machines - Craft

 

Revisando la página encontramos que tiene un enlace a un repositorio propio utilizado por la aplicación:

HackTheBox machines - Craft

 

Revisando en el mismo se observa que se corrigió un problema en el código en el cual no se realizaba un chequeo de las credenciales, este fix lo realizó Dinnesh:

HackTheBox machines - Craft

 

Revisamos en sus commits y encontramos el cambio que indica en el que añaden el check mencionado:

HackTheBox machines - Craft

 

Revisamos entonces la API de nuevo y buscamos una petición que pueda enviar el parámetro abv:

HackTheBox machines - Craft

 

Comprobamos el mismo y verificamos que podemos enviar una carga útil a través de una petición POST pero seguimos sin tener un token o unas credenciales con las que autenticarnos, revisamos de nuevo los commit de Dinesh y encontramos unas credenciales de acceso:

HackTheBox machines - Craft

 

Comprobamos el acceso con las mismas y bingo, entramos:

HackTheBox machines - Craft

 

Ahora que ya hemos comprobado que accedemos correctamente con las credenciales obtenidas, vamos a realizar un pequeño script en python que utilizaremos para acceder mediante un token a la aplicación e intentar crear un acceso mediante nc a la instancia. Utilizando parte del código obtenido en el repositorio y añadiendo alguna cosilla extra tenemos el siguiente script:

Que vamos a ejecutar para obtener acceso a la instancia y vemos que estamos dentro:

Tenemos un acceso en el cual no disponemos de una shell como tal así que vamos a ver que podemos encontrar en el directorio actual, perteneciente a la aplicación:

Encontramos un fichero, dbtest.py que realiza una consulta a la base de datos así que vamos a modificar el mismo para obtener los datos que nosotros deseamos.

Modificamos el script en cuestión, cambiando los siguientes valores:

result = cursor.fetchone() por result = cursor.fetchall()

y la consulta de base de datos por “SHOW TABLES”, quedando de la siguiente forma:

Levantamos un apache en nuestra instancia de Kali y subimos el fichero a la instancia por wget, después lo ejecutamos y descubrimos que hay dos tablas en la base de datos “brew” y “user”.

Ahora que sabemos que tablas existen en la base de datos, cambiamos la consulta por “SELECT * FROM user” y realizamos el mismo procedimiento de nuevo para obtener los usuarios existentes en la misma.

Y obtenemos los nombres de usuario existentes, así como las contraseñas de cada uno de ellos:

Probamos a acceder a la página de gogs con los diferentes usuarios y descubrimos que el usuario gilfoyle tiene un repositorio privado llamado craft-indra

HackTheBox machines - Craft

 

Revisamos el mismo y descubrimos que tiene la clave privada para acceso por ssh en una de las carpetas del repositorio

HackTheBox machines - Craft

 

Obteniendo la flag de user

Probamos el acceso con la misma, y nos pedirá la contraseña de acceso, que es la misma que utilizamos para acceder al repositorio y listo, estamos dentro de la máquina:

HackTheBox machines - Craft

Y si miramos en esta misma ruta donde nos encontramos tenemos la flag del usuario:

 

Escalado de privilegios

Seguimos revisando en esta carpeta y obtenemos un fichero llamado .vault-token en el cual encontramos un token de acceso

Y si revisamos de nuevo en el repositorio craft-indra obtenemos un pequeño script utilizado para poder crar un rol otp como root

HackTheBox machines - Craft

Ahora que hemos visto esto vamos a crear un acceso otp para poder loguearnos como root al sistema.

 

Obteniendo la flag de root

Y, una vez que lo hemos generado probaremos a loguearnos como root en la instancia desde este usuario y con la contraseña de un sólo uso generada:

Y listo, estamos logueados como root y tenemos la flag del mismo, reto superado.

 

 

 

Deja una respuesta

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