Skip to main content

Dockerlabs machines – Machupicchu Writeup

Dockerlabs machines – Machupicchu Writeup

Machupicchu es una de las maquinas existentes actualmente en la plataforma de hacking Dockerlabs y es de dificultad Media.

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

Empezaremos con el escaneo de puertos una vez tenemos la máquina a vulnerar levantada , la ip por defecto será la 172.17.0.2.

 

Una vez tenemos los puertos abiertos, ejecutaremos con nmap con el parámetro -sCV para que le pase los scripts por defecto y conseguir mas información de cada uno de ellos.

 

Entramos en el puerto 21 usando las credenciales de anonymous y nos encontramos con un fichero.

 

Ahora es el turno del puerto 80, para el cual tendremos que añadir en el fichero /etc/hosts, el dominio chamilo.dl, que como el nombre indica, es un sistema de gestion de aprendizaje llamado chamilo.

 

Como tenemos unas credenciales de alumno, hacemos login con el usuario pepico y apuntamos las cookies del usuario «ch_sid»

 

El siguiente paso, dado que no esta simple vista, es revisar qué version de chamilo es la que se esta ejecutando, así que iremos al recurso de documentation.

 

Una vez sabemos que la version es la 1.11.24, buscando exploits, nos encontraremos al menos 4 ( CVE-2023-4220, CVE-2023-4221, CVE-2023-4222, CVE-2023-4223), todos sin autenticar.

Tras probarlos, vemos que el CVE-2023-4224 es el que nos funciona por lo que seguimos la poc que nos comenta esta web , con el tendremos una subida de fichero para tener un RCE.

Lo primero que tenemos que saber es cómo se llama el curso en el que estamos registrados, y esto lo podemos ver una vez hecho login en la url del curso haciendo hovering o directamente en el codigo fuente. ( HW )

 

Tras esto, seguimos con los pasos que indica la poc:

El fichero que subamos será directamente una reverse shell, así que solo nos queda ejecutar el siguiente comando.

 

Esto nos indica que se ha subido con éxito, por lo que como último paso, hacermos un curl al dichero subido.

 

Teniendo nc en escucha, recibimos la reverse shell

 

Despues de hacer una busqueda manual, vemos que solo existe el usuario «trr0r» y root y que este primero tiene un proceso corriendo

 

A partir de aquí, tenemos 2 formas de escalar al usuario:

1 – En el fichero app.py tenemos lectura por lo que nos damos cuenta de que esta usando latex en el puerto 6200 interno.

 

Usamos socat para crear una escucha y la maquina victima y que desde nuestra maquina podamos acceder via web.

 

Viendo la web, vemos que espera un input, y a partir de este , se genere un pdf.

 

Como hemos visto anteriormente en el código, hay palabras que están en blacklist así que la mayoría no nos van a funcionar, bloqueando su ejecucion, como para casi todo, esto se puede bypassear.

 

La cual nos va a dar una reverse shell como el usuario trr0r

 

2 – Si investigamos los ficheros de chamilo, existe uno en el cual podemos ver unas credenciales para la base de datos:

 

Con ambas formas de escalada, nos convertimos en el usuario trr0r.

 

La escalada a root tambien tiene al menos 2 formas

1 – Teniendo sudo para el fichero chash, leyendo la ayuda, podemos percaternos de un modo para abrir una cli en sql y poder escalar ejecutando un comando

 

2 – Comprobamos que el fichero con el que tenemos permiso de sudo, tiene escritura para el grupo trr0r, asi que solo tenemos que inyectarle la forma que queramos para escalar a root.

 

Y hasta aqui la maquina Machupicchu !

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *