Skip to main content
HackTheBox machines – Forge WriteUp

HackTheBox machines – Forge WriteUp

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

Forge 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 Forge 10.10.11.111 a /etc/hosts como forge.htb y comenzamos con el escaneo de puertos nmap.

En este caso observamos un puerto 21 para el servicio ftp, para el cual no tenemos acceso, un puerto 22 para ssh para el cual no disponemos de credenciales y un puerto 80 con un portal web, que será nuestro punto de partida a continuación.

 

Enumeración

Como indicábamos vamos a comenzar por el portal web en el puerto 80 donde vemos la siguiente pantalla

HackTheBox machines – Forge WriteUp

 

Vemos una página simple con un enlace a una página de subida de imágenes

Forge uploads

Hacemos una prueba de subir una reverse shell pero sin éxito así que vamos a seguir con el proceso de enumeración.

Buscamos por dos partes, en primer lugar enumeramos directorios con gobuster

 

No vemos nada relevante, y debido a que gobuster saca demasiados falsos positivos, utilizaremos ffuf para enumerar subdominios

 

Y descubrimos un subdominio nuevo que añadimos en nuestro fichero hosts, aunque acceder a través del navegador parece que no es la forma correcta

Panel de admin

Viendo que no podemos hacer nada, tratamos de hacerlo a través de la sección de subida de imágenes por url pero devuelve errores con las direcciones locales o con admin.forge.htb

Subida por url

Así que hacemos algunas pruebas y conseguimos saltar la restricción colocando el nombre en mayúsculas

Subida por url

 

A través del navegador parece que no tenemos éxito ya que internamente intenta cargar una imagen, así que hacemos un curl a la url generada y obtenemos lo siguiente

Observamos una uri nueva /announcements así que vamos a repetir el proceso añadiendo esta uri

Esto ya va cogiendo forma, conseguimos las credenciales de ftp y también información de como acceder

Así que siguiendo la explicación accederemos al ftp a través de la subida por url con el siguiente formato

Y conseguimos enumerar la home del usuario user

Tratamos de intentar obtener la clave ssh del usuario y vemos que la misma existe 

Así que haremos una última petición para obtenerla

Ahora que tenemos la clave, accedemos por ssh y estamos dentro de la máquina

 

Obteniendo la flag de user

Una vez dentro de la máquina sólo nos queda obtener la flag del usuario user

 

Escalado de privilegios

Revisaremos en primer lugar los permisos que tiene el usuario

Y observamos que tiene permisos para ejecutar como sudo el script /opt/remote-manage.py cuyo contenido es el siguiente

 

Si vemos el código y lo analizamos obtenemos un fallo en el mismo, en la línea

Carga el valor introducido como un entero, pero no hay ninguna excepción que controle si realmente se ha introducido ese tipo de valor o no, así que vamos a tratar de explotarla de esa forma.

Ejecutamos en primer lugar el script 

Y, en otra ventana, conectamos al puerto que abre con netcat

Si llegados a este punto en lugar de introducir un valor entero introducimos por ejemplo el carácter ‘a’ devolverá un error y nos dará una terminal en python

En este caso, nosotros le damos permisos de suid al ejecutable de bash, aunque hay más formas de poder hacer esta explotación

Una vez hecho, cerramos y lanzamos bash para escalar a root

 

Obteniendo la flag de root

Ahora que somos root, sólo nos queda obtener 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 *