Skip to main content
HackTheBox machines – Luanne WriteUp

HackTheBox machines – Luanne WriteUp

Luanne es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en OpenBSD

Luanne es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad fácil.

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

 

Escaneo de puertos

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

En este caso encontramos varios puertos abiertos, un portal web en el puerto 80 y otro portal web con el software supervisor en el puerto 9001, así que procederemos a revisar los mismos.

 

Enumeración

Comenzamos la enumeración revisando el portal web en el puerto 80, al que no podemos acceder ya que nos solicita una contraseña que no tenemos:

HackTheBox machines – Luanne WriteUp

 

Revisamos las opciones básicas y encontramos el fichero robots.txt donde aparece el siguiente texto:

Aunque probamos el acceso al directorio mencionado y nos da un 404, tal como dice en el fichero robots, por lo que utilizaremos wfuzz para intentar descubrir si existe algún directorio dentro de este:

Y encontramos el directorio forecast, por lo que accedemos al mismo y vemos la siguiente ventana:

HackTheBox machines – Luanne WriteUp

 

Tal y como indica es necesario indicar el parámetro city para ver las ciudades existentes así que lo añadimos a la url para visualizar el listado:

Get city list

 

Analizaremos cada una de ellas por si existe algún dato que nos ayude a continuar y para ello utilizaremos curl, en primer lugar obtendremos el listado de ciudades:

Y posteriormente los datos de cada una de ellas:

Revisamos los mismos pero parece que es un agujero de conejo porque no vemos nada que nos pueda ayudar a continuar.

 

Pasaremos entonces a revisar el segundo portal en el puerto 9000, para el cual también nos solicita credenciales, pero viendo que se trata del servicio supervisor utilizamos las claves por defecto del mismo:

Y conseguimos acceder:

Luanne Supervisor

 

Revisamos el portal y las opciones disponibles aunque en este caso tampoco conseguimos nada así que nos toca volver de nuevo al json de ciudades a ver si podemos realizar algún ataque sobre el parámetro city.

Intentaremos realizar la ejecución de comandos por lo que trataremos de añadir algún valor al mismo con el objetivo de verificar la vulnerabilidad, introduciremos lo siguiente:

Y vemos en burp suite como el ataque ha salido tal y como esperábamos:

RCE con burp suite

La ciudad LondonBytemind no existe, por lo que queda claro que se ha tragado nuestro comando. Realizamos varias pruebas de ello y obtenemos el siguiente error:

Así que utilizaremos os.execute junto con las opciones de lua indicadas en gtfobins y mkfifo para obtener nuestra shell. Nuestro payload entonces quedaría de la siguiente forma:

Codificaremos el mismo:

Enviaremos la petición con curl y automáticamente obtendremos una shell en nuestra escucha con el usuario _httpd:

Enumeramos el sistema partiendo del directorio web y encontramos un fichero .htpasswd que suele contener credenciales:

Y vemos que contiene un nombre de usuario y el hash de su contraseña:

Así que vamos a utilizar John para tratar de obtener la misma en plano:

Vale la tenemos pero, no podemos loguearnos con la misma en el servidor, así que vamos a probar si podemos hacerlo en el portal web del puerto 80 para el cual no teníamos antes credenciales y lo conseguimos observando el siguiente contenido:

Accediendo al portal web

 

No parece muy útil la información que hay en el mismo así que seguiremos con nuestra investigación y encontramos el puerto 3001 que antes no conocíamos:

Hacemos una prueba con curl y nos da un error 401:

Haremos una segunda prueba, pero en este caso introduciremos las credenciales descubiertas:

Y vemos lo mismo que en el portal web. Después de darle una vuelta intentamos obtener información del usuario r.michaels existente en la máquina, aunque parece que el fichero id_rsa no se encuentra en la carpeta .ssh

Hacemos una segunda prueba, pero en este caso sin añadir la carpeta .ssh en la petición y en este caso conseguimos la clave ssh del usuario:

 

Obteniendo la flag de user

Ahora que tenemos la clave ssh del usuario, nos loquearemos con la misma para conseguir la flag de user:

 

Escalado de privilegios

Procedemos ahora con la enumeración del sistema para obtener root y encontramos un backup del portal en la home del usuario:

Pero se trata de un fichero .enc por lo que necesitaremos utilizar algo más que un simple tar, así que buscando en google generamos el comando con netgpg y extraemos el contenido:

Ahora nos iremos a /tmp para ver el contenido del backup:

Revisando el mismo encontramos el fichero .htpasswd encontrado anteriormente, pero en este caso el hash es diferente:

Así que obtenemos el mismo en plano con John:

Y probamos a loguearnos con root pero nos devuelve un error al intentarlo:

Así que buscamos en google y encontramos el comando doas para openbsd que podemos utilizar para realizar este paso a root.

Ejecutamos el mismo y somos root:

 

Obteniendo la flag de root

Ahora que somos root, vamos a la home de este usuario y conseguimos nuestra 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 *