Skip to main content
HackTheBox machines – OnlyForYou WriteUp

HackTheBox machines – OnlyForYou WriteUp

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

OnlyForYou es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad xxxxx.

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

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina OnlyForYou 10.10.10.xxx a /etc/hosts como onlyforyou.htb y comenzamos con el escaneo de puertos nmap.

En este caso vemos los puertos 22 y 80 abiertos así que vamos a ir enumerando los mismos.

 

Enumeración

Empezaremos por el puerto 80, y viendo el escaneo realizado, añadimos el dominio only4you.htb al fichero hosts y accedemos

HackTheBox machines – OnlyForYou WriteUp

 

No vemos gran cosa a simple vista, así que revisamos el código fuente y encontramos el subdominio beta.only4you.htb

Revisión del código fuente

 

Así que lo añadimos al fichero hosts y accedemos

HackTheBox machines – OnlyForYou WriteUp

 

Explotando un LFI

Encontramos un enlace para la descarga del código de la aplicación, así que lo descargamos y lo analizamos y encontramos una parte interesante en el fichero app.py

Revisando el mismo, si el fichero a descargar comienza con los caracteres “..” detectaría un ataque así que vamos a burp y vamos a tratar de saltarnos la restricción, y después de algunas pruebas obtenemos el fichero passwd

Explotando un LFI

 

Viendo el fichero, descubrimos dos posibles usuarios, dev y john así que vamos a ver que conseguimos.

Obtenemos la configuración de nginx para servir el portal

Descubriendo información del servicio

 

Conociendo la ruta donde se almacenan los ficheros, descargamos el fichero app.py de la aplicación y encontramos una línea muy interesante en el mismo

Así que vamos a descargarnos el fichero de form.py cuyo contenido es el siguiente

 

Y encontramos una vulnerabilidad en la siguiente línea

En la misma está ejecutando el comando dig contra el dominio que se le proporcione sin realizar ninguna sanitización del valor introducido, así que para verificarlo vamos a lanzar una petición con curl desde burp

Verificando el fallo de configuración

 

Y verificamos en nuestra escucha que ha funcionado correctamente

 

Obtención de acceso con www-data

Así que el siguiente paso será enviar una revshell

Obteniendo una revshell

 

Y obtendremos acceso con el usuario www-data en nuestra escucha

 

Escalado al usuario john

Ahora que ya estamos dentro elevamos nuestra shell con python y revisamos los puertos abiertos en el servidor

Y vemos dos puertos interesantes, el 3000 y el 8001, como no tenemos acceso subimos chisel y vamos a redireccionar los mismos para su acceso.

Lanzamos el servidor en nuestro kali

Y el cliente en la máquina de onlyforyou

Y lanzaremos un escaneo con nmap para obtener más información de los mismos

 

Observamos un gogs en el puerto 3000, aunque si credenciales poco podemos hacer y un portal web en el puerot 8001 que luce el siguiente aspecto

Acceso al portal de Only4you

 

Hacemos una prueba simple y entramos con las credenciales admin:admin al dashboard del portal

Acceso al portal de Only4you

 

Y en el mismo vemos una tarea muy interesante

Revisión de tareas

 

En la tarea indica que el portal ha sido migrado a una nueva base de datos en neo4j así que vamos a tratar de hacer una inyección SQL sobre la misma.

Así que para hacer la misma levantamos nuestra escucha en python

Y lanzamos la petición para tratar de obtener la versión del software de base de datos

Explotando un SQLi

 

Y obtenemos la versión en nuestra escucha

El siguiente paso será obtener las labels con el siguiente payload

Y en nuestra escucha veremos lo siguiente

Y ahora obtendremos el contenido de las labels

Y tenemos unas credenciales en nuestra escucha

Hemos obtenido dos hashes así que vamos a meterlos en crackstation para tratar de descifrarlos

Descifrado de hashes

 

Y tenemos las dos claves descifradas.

 

Obteniendo la flag de user

Ahora que ya tenemos las claves entramos por ssh con el usuario john y cogemos la primera flag

 

Escalado de privilegios

Una vez dentro, revisamos en primer lugar los permisos de que dispone el usuario

Podemos descargar ficheros para su instalación con pip, así que vamos a google y encontramos un post donde explota esta vulnerabilidad.

https://embracethered.com/blog/posts/2022/python-package-manager-install-and-download-vulnerability/

Así que nos descargamos el código del repositorio de github y vamos a editar el fichero de setup.py para dar permisos de suid al binario de bash y ejecutamos para compilar nuestro paquete

 

Compilado nuestro paquete, accedemos al portal de gogs con las credenciales del usuario y crearemos nuestro repositorio

Creación del repositorio

 

Una vez creado el repositorio, creamos el directorio y hacemos el primer commit

Y subiremos nuestro paquete tar.gz generado previamente

 

Una vez subido nuestro paquete, ejecutamos pip para su instalación

Y verificamos los permisos del binario de bash

 

Obteniendo la flag de root

Con los permisos de suid en el binario de bash, escalamos a root y cogemos 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 *