Page cover

🟠Blurry

En esta ocasión vamos a hacer el writeup de la máquina Blurry de Hack the Box, una máquina Linux de dificultad Medium.

Primer acceso

Añadimos la IP 10.10.11.19 a nuestro /etc/hosts y accedemos través del navegador. Llegamos a una página de login:

Cuando clickamos para escribir el usuario aparecen varios, lo que nos puede ayudar a acceder:

Por ejemplo accedemos como Chad Jippity y llegamos a un dashboard. Aquí podríamos empezar a investigar y a buscar credenciales, pero antes vamos a escanear los puertos abiertos para ver otras vías de entrada.

Como vemos, es un Clear ML, por lo que podemos buscar exploits públicos. Si accedemos a Settings > Workspace nos encontramos 2 credenciales:

Además encontramos la versión abajo de la página, lo que nos permitiría buscar exploits más específicos:

Escaneo de puertos

Solo tiene 2 puertos abiertos, el 22 y el 80. Los típicos.

Fuzzing

Al fuzzear con dirsearch tampoco nos encontramos con nada relevante.

Explotación

Haciendo un poco de research nos encontramos este exploit que en principio puede funcionar bastante bien:

En el repositorio encontramos las instrucciones de uso:

  • Necesita acceso al espacio de trabajo del equipo

  • Reemplace IP y PUERTO por su puerto de escucha y su IP

  • Cambie el nombre del proyecto a un nombre de proyecto existente.

Instrucciones

  1. Haga clic en iniciar nuevo proyecto en clearml

  2. Instalar clearml con pip install clearml

  3. Obtenga las credenciales de ClearML Web (credenciales generadas al hacer clic en el nuevo proyecto)

  4. clearml-init en tu terminal y pega las credenciales

  5. nc-lnvp 4444

  6. exploit.py

1. Crear nuevo proyecto

Como ya hay un proyecto creado en verdad podemos omitir este paso.

2. Obtener credenciales

Para ejecutar este script necesitamos crear unas credenciales nuevas, ya que tenemos que proporcionar:

Necesitamos copiar todo ese código para pegarlo en el script de configuración de clearml.

3. Instalar y configurar clearml

4. Iniciar Clear ML

Necesitamos crear nuevas credenciales como ya vimos y pegar el código que nos dió. Para iniciar Clear ML solo tenemos que ejecutar clearml-init:

5. Modificar script con nuestra IP y puerto

  • Tambien necesitamos cambiar el nombre del proyecto a uno existente. En este caso solo tenemos un proyecto llamado Black Swan:

6. Listener de Netcat

7. Ejecutar exploit

Funciona! Hemos obtenido una shell como el usuario jippity. Vamos a hacer un tratamiento de la TTY para movernos mejor por el sistema:

Obtenemos la user flag 🏆

Escalada de Privilegios

Lo primero que vamos a comprobar son los permisos del usuario jippity en el sistema:

La salida del comando sudo -l indica que el usuario jippity tiene permisos para ejecutar el comando /usr/bin/evaluate_model como root sin necesidad de ingresar una contraseña. Además, puede ejecutar este comando con cualquier archivo .pth en el directorio /models/. Esto podría permitir una elevación de privilegios si podemos aprovechar alguna vulnerabilidad o mal uso del archivo evaluate_model.

Creación de un archivo .pth Malicioso

Vamos a crear un script malicioso malicious-model.py en nuestro Kali Linux, lo ejecutamos en local y nos da un archivo root.pth que tendremos que enviar a la máquina:

Fijaros que nos devuelve una conexión de netcat a nuestra IP de atacante y al puerto 1234

Ejecutamos malicious_model.py

Una vez lo ejecutemos tendremos el archivo root.pth que vamos a enviar a la máquina.

Una vez que tenemos el archivo root.pth en la máquina solo tenemos que abrir un listener con netcat por el puerto 1234 que le indicamos, mover el archivo root.pth al directorio /models y ejecutar el script con sudo, pasándole root.pth como argumento:

Buum! Recibimos una shell como root y obtenemos la root flag! 🏆

Última actualización

¿Te fue útil?