Skip to main content
HackTheBox machines – Faculty WriteUp

HackTheBox machines – Faculty WriteUp

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

Faculty 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 Faculty 10.10.11.169 a /etc/hosts como faculty.htb y comenzamos con el escaneo de puertos nmap.

Tan sólo vemos dos puertos abiertos, y como no tenemos credenciales ssh vamos directamente contra el portal web en el puerto 80.

 

Enumeración

Accedemos al portal web en el puerto 80 y vemos la siguiente página

Acceso inicial en Faculty

 

Investigamos por aqui pero no vemos ninguna posible forma de saltar esta pantalla así que vamos a enumerar directorios, utilizaremos la herramienta feroxbuster

 

Vemos una uri interesante /admin/login.php así que accedemos a la misma y vemos el siguiente formulario de login

Descubriendo el login de admin en faculty

 

Hacemos alguna prueba de saltar este formulario y lo conseguimos con una simple sqli utilizando el siguiente payload

 

Y accedemos al portal donde vemos una página de gestión de alumnos

Saltando el login en faculty

 

Navegamos por el mismo y encontramos varias páginas donde muestra una serie de datos y nos permite exportar los mismos a pdf

Revisando el portal

 

Así que hacemos una prueba para ver como realiza esta exportación y obtenemos un fichero pdf similar al siguiente

Probando la generación de pdfs

 

Si nos fijamos en la url vemos que utiliza la librería mpdf y que guarda el fichero pdf en una ruta temporal y utilizando un hash como nombre del mismo, así que vamos a interceptar la petición con burp y vemos que genera un base64 con el contenido del fichero

Interceptando la generación de pdfs con burp

 

Utilizaremos cyberchef para decodificar el base64 y el proceso será

  1. Decodificar base64
  2. Decodificar URL
  3. Decodificar URL

Y ya veremos el contenido del fichero en plano

Decodificando el fichero pdf

 

Vamos a buscar ahora a ver si damos con alguna vulnerabilidad para aprovechar esto y encontramos un issue en github donde explica como obtener un fichero de la máquina como un adjunto del pdf generado

https://github.com/mpdf/mpdf/issues/356

Así que vamos a tratar de explotarla y para eso generamos nuestro payload con la ayuda de cyberchef

Interceptamos de nuevo con burp y modificamos el base64 por el nuestro y veremos como el fichero pdf contiene como adjunto el fichero passwd de la máquina con el listado de usuarios existentes en la misma

Explotando la vulnerabilidad

 

Seguimos revisando el portal y en la url de tareas programadas encontramos un error que nos indica la ruta de la aplicación

 

Así que generamos un nuevo payload para obtener el fichero admin_class.php cuyo contenido es el siguiente

 

Si nos fijamos en el principio del fichero vemos el siguiente include

 

Así que generamos otro payload más para obtener el contenido del fichero db_connect.php que es el siguiente

 

Tenemos unas credenciales, vamos a probarlas con el usuario gbyolo que vimos antes y conseguimos entrar en la máquina

 

Escalado lateral al usuario developer

Con el usuairo gbyolo no podemos obtener la flag así que necesitaremos hacer un escalado lateral a otro usuario para poder ver la misma.

Revisamos si el usuario dispone de algún permiso 

Y descubrimos que podemos ejecutar meta-git como el usuario developer, así que vamos a buscar en google y encontramos un reporte en hackerone donde explica una vulnerabilidad de RCE descubierta sobre dicha aplicación.

Necesitamos realizar el ataque desde un directorio donde tenga permisos de escritura el usuario así que vamos a la ruta /tmp y hacemos una primera prueba con el comando id

Y verificamos que realmente es vulnerable a este tipo de ataque así que vamos a ir un paso más allá y vamos a tratar de obtener la clave ssh del usuario developer

Y la tenemos, el siguiente paso será utilizarla para acceder por ssh con el usuario.

 

Obteniendo la flag de user

Con la clave ssh del usuario developer accedemos a la máquina y cogemos la flag

 

Escalado de privilegios

El siguiente paso será escalar a root, así que vamos a proseguir con la enumeración.

Revisamos en la home del usuario developer y encontramos un script sendmail.sh

Cuyo contenido es

 

Revisamos los grupos del usuario y este, pertenece al grupo debug

Y además, en la enumeración descubrimos que el binario de gdb dispone de una capabilitie

Buscamos más información al respecto y encontramos una posible forma de aprovecharla para escalar privilegios, y además un post donde está bastante decente explicado como explotar la vulnerabilidad.

Así que buscamos los procesos existentes en la máquina y encontramos uno muy interesante para llevar a cabo la explotación

Utilizaremos ahora gdb, aprovechando la capacidad que tiene habilitada para darle permisos de suid al binario de bash y conseguir escalar privilegios

 

Revisamos que se han aplicado correctamente

Y escalamos

 

Obteniendo la flag de root

Siendo ya root, vamos a la home del usuario para 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 *