0xc0ffee

Máquina "0xc0ffee" de DockerLabs

Autor: d1se0

Dificultad: Medio

0xc0ffee

RECONOCIMIENTO

Comenzamos haciendo un escaneo de nmap:

Como vemos está el puerto 80 abierto y el 7777 también corriendo un servidor en python.

Puerto 80:

80

Como vemos es una página que nos pide una contraseña, pero como no la tenemos la dejaremos de lado.

Puerto 7777:

7777

Como vemos es lo mismo que ejecutar python3 -m http.server <puerto> (literalmente igual), por lo que no podemos subir nada y la mayoria de las cosas nos las descarga, excepto los ".txt". Si vamos a /secret/ veremos un archivo ".txt" que tiene una historia:

Ahora si nos fijamos, veremos que la historia nombra una password, la cual es "super_secure_password". Ahora si a esta misma la metemos en el puerto 80 que nos pedía una contraseña, podremos entrar. Una vez dentro veremos esta otra página:

panel

Al parecer nos deja crear "configuraciones" y aplicarlas, en la cual si probamos crear por ejemplo una que se llame "test.txt" y la subimos, veremos que se ha creado localmente en el puerto 7777:

test

INTRUSION

Sabiendo esto podemos probar en enviarnos una reverse shell y ver si nos llega.

En la página haremos un script que tenga extensión ".sh" y que contenga lo siguiente:

Luego le damos en guardar, volvemos a nuestra máquina y escuchamos con netcat en el puerto elegido:

ahora bajamos en la página hasta donde dice "Execute Remote Configuration" y ejecutamos el script con el nombre que elegimos:

rev

ESCALADA DE PRIVILEGIOS

www-data

Antes de continuar haremos el tratamiento de la tty, para hacerlo ejecutaremos estos comandos:

Ahora si nos vamos a /home/codebad/secret, podremos ver una adivinanza que dice lo siguiente:

RESPUESTA: malware.

Luego ejecutamos un su codebad y poner "malware" de contraseña.

Codebad

Si ejecutamos un sudo -l vermos lo siguiente:

Si intentamos leer el script, estará en un formato ilegible, pero podemos probar en ejecutarlo y ver que pasa:

code

como vemos nos pide una opción, la cual si se la pasamos nos dice esto:

ls

Como vemos el script ya ejecuta un "ls", por lo que podemos intentar ejecutar el binario "bash" como el usuario metadata, para hacerlo podemos hacer uso de ";" que en linux nos permite "ejecutar dos comandos a la vez", por ej:

;

como vemos al hacer uso de ";" y poner whoami; ls, nos ejecuta los dos a la misma vez. Ahora podemos usar esto en nuestro beneficio para escalar, para hacerlo podemos ejecutar el script de la siguiente manera:

Esto hará que se ejecute el binario bash y podremos escalar privilegios al usuario "metadata".

Metadata

Ahora si ejecutamos sudo -l nos pedirá contraseña, pero podemos buscar si hay algún archivo o algo que nos sirva con el nombre de "metadata" y en el mejor de los casos tenga la contraseña. Para hacerlo usaremos find de la siguiente manera:

Luego de ejecutarlo vermos que hay un script llamado "metadatosmalos":

si lo leemos no tiene nada interesante pero si usamos el nombre del script como contraseña al poner sudo -l, veremos que es correcta y podemos ejecutar el binario c89, que al buscar en GTFOBins veremos que podemos escalar ejecutando esto:

c89

Por lo que simplemente lo ejecutamos y ya seremos root:

root

Gracias por leer.

Última actualización