Skip to main content
HackTheBox machines – Download WriteUp

HackTheBox machines – Download WriteUp

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

Download es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Difí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 Download 10.129.1.240 a /etc/hosts como download.htb y comenzamos con el escaneo de puertos nmap.

 

Una vez descubiertos los puertos abiertos escaneamos los mismos

 

Enumeración

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

HackTheBox machines – Download WriteUp

 

Revisamos el mismo y vemos un formulario de registro y login así que nos creamos una cuenta y accedemos, y vemos una página de subida de ficheros

HackTheBox machines – Download WriteUp

 

Hacemos algunas pruebas con esto aunque sin éxito así que seguimos.

Revisamos el portal y viendo las cabeceras vemos que se trata de express

 

Y haciendo alguna que otra prueba conseguimos explotar un LFI y obtener el fichero app.js

Cuyo contenido es el siguiente

 

Revisamos el código y encontramos una parte interesante

En el anterior trozo de código aparece la clave utilizada para cifrar las cookies de sesión así que tal vez podamos utilizarla para avanzar.

Nos creamos una simple aplicación para node para generar nuestras cookies que tendrá el siguiente código

 

Así que levantamos un server en node para servir nuestra app

Y si vamos al navegador veremos como nos ha generado las cookies

HackTheBox machines – Download WriteUp

 

Modificamos las cookies por las que hemos generado en el portal de dashboard y consegimos escalar a admin en la aplicación

Acceso de administrador al portal web

 

Aunque si subimos un fichero vemos que este se sube con el usuario wesley.

Después de varias vueltas y alguna que otra búsqueda vemos que la app es vulnerable a blind sqli, y que para ello sólo tenemos que utilizar el parámetro startswith como explica en el siguiente post.

Para ello deberemos de ir testeando cada uno de los caracteres del alfabeto y caracteres numéricos con el fin de poder obtener la clave de un usuario así que nos hacemos un simple script en python que nos ayude con la tarea, en nuestro caso el código sería este

 

Utilizaremos también la app de node que hicimos antes para ir generando las cookies con privilegios así que lo ejecutamos y obtendremos el hash de una contraseña

 

Nos vamos a crackstation e introducimos el mismo y obtenemos la pass en texto plano

Rompiendo hashes

 

Con la clave y el usuario que descubrimos antes accedemos por ssh

 

Obteniendo la flag de user

Una vez dentro simplemente cogemos la flag

 

Escalado de privilegios

Una vez dentro, revisamos los servicios y encontramos uno interesante

Así que revisamos el fichero de configuración del servicio

 

Y vemos en el mismo las credenciales de postgres, así que nos conectamos

 

Revisamos las bases de datos

 

Los permisos…

 

Y vemos uno muy interesante

Con el permiso pg_write_server_files podemos escribir en ficheros por lo que será nuestra forma de escalar privilegios.

Y si revisamos los procesos vemos que se ejecuta cada poco tiempo el siguiente comando como root

Enumera los procesos

 

Con el cual root se impersona en el usuario postgrees así que podemos aprovecharnos del mismo para explotar la vulnerabilidad de tty pushback y escalar a root.

Así que subimos el siguiente script a la máquina

Y lo ejecutamos desde postgres

Esperamos un par de minutos a que root vuelva a ejecutar el comando y veremos como el binario de bash tiene permisos de suid

 

Obteniendo la flag de root

Escalamos a root y cogemos 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 *