Skip to main content
HackTheBox machines – Horizontall WriteUp

HackTheBox machines – Horizontall WriteUp

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

Horizontall 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 Linux.

 

Escaneo de puertos

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

Observamos que sólo tenemos abierto y útil por el momento el puerto 80 así que comencemos por el.

 

Enumeracion

Accedemos al portal en la dirección http://10.10.11.105 y automáticamente nos redirecciona a http://horizontall.htb donde vemos la siguiente página web

HackTheBox machines – Horizontall WriteUp

 

Revisamos el código fuente de la misma pero no encontramos nada, lanzamos una enumeración con gobuster pero sin éxito también

 

Parece que por aqui no van los tiros así que probamos otro escaneo a ver si encontramos más virtualhost en el servidor y parece que hemos encontrado algo

 

Hemos obtenido la dirección api-prod.horizontall.htb, así que la añadimos a nuestro fichero de hosts y vemos el siguiente portal web más simple que el anterior

api prod horizontall

Revisamos también el código fuente pero nada relevante así que enumeramos con gobuster de nuevo y en este caso si conseguimos enumerar algunos directorios

 

Vamos a revisar cada una de ellas, comenzamos con /reviews la cual nos muestra un resultado en json

api prod horizontall rest api

Lanzamos un par de curls pero no obtenemos nada más que los 3 ids que aparecen en la pantalla, así que revisamos la página de usuarios, que nos da un error 403 y la página de admin, la cual es un formulario de login.

Analizamos esta última y vemos un comentario interesante en el código fuente

Strapi login form

Con lo que indica el comentario, revisamos los ficheros javascript y en concreto en el fichero siguiente

Encontramos algo interesante, la versión de strapi utilizada en el portal

La cual si buscamos un poco en google dispone de las vulnerabilidades CVE-2019-18818 y CVE-2019-19609 donde la segunda corresponde a un RCE que además tiene un exploit público 

Así que lanzaremos el mismo para conseguir generar unas credenciales de admin

 

Antes de probar las mismas, en esta shell que tenemos tratamos de lanzar un netcat y vemos que la conexión es correcta, aunque no tenemos una terminal como tal así que realizamos alguna búsqueda en gtfobins y conseguimos una shell inversa con netcat

 

Y tenemos nuestro acceso, aunque utilizamos python para obtener una tty en condiciones 

 

Obteniendo la flag de user

Ahora que ya estamos dentro, revisamos los usuarios existentes y obtenemos la flag de user en la home del usuario developer

 

Escalado de privilegios

Ahora que ya tenemos la flag del usuario vamos a enumerar el sistema a ver de que forma podemos escalar privilegios. Revisamos los ficheros con posibles permisos, conexiones, tareas, entre otras cosas y encontramos algo interesante al revisar los puertos abiertos de la máquina

 

Donde nos choca en concreto el puerto 8000 que no sabemos de que puede ser, así que le hacemos un curl y descubrimos que se trata de un portal en laravel donde sacamos la versión concreta

 

Así que volvemos a buscar en google y encontramos una vulnerabilidad CVE-2021-3129 que además también dispone, en este caso, de varios exploits diferentes donde nos quedamos con uno existente en github.

Nos descargamos el mismo y lo probamos en la máquina, aunque sin éxito

 

En este caso el error es simple ya que no puede descargar el paquete desde github de la librería de phpggc debido a que no tienen estas máquinas salida al exterior, bueno hasta aqui fácil, lo descargamos y ejecutamos pero en este caso no conseguimos avanzar, parece que funciona pero la shell que obtnemos no devuelve nada, así que vamos a enrevesarlo un poco.

Para ello vamos a hacer un poco de forwarding ssh, de tal forma que obtengamos una shell en una primera escucha y, que la salida de esta primera nos la de en una segunda terminal con una segunda escucha. 

Probamos todo esto y bingo, ha funcionado y somos root

Escalando a root en Horizontall

 

Obteniendo la flag de root

Ahora que ya somos root sólo nos queda obtener nuestra flag con la técnica que hemos visto, por un lado lanzamos los comandos

Y en la segunda terminal obtenemos el resultado de nuestro comando y con ello la flag de root

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.