PingPong
Máquina PingPong de DockerLabs
Autor: El Pingüino de Mario
Dificultad: Medio

Reconocimiento
Comenzaremos con un escaneo de nmap:
Como vemos hay 3 puertos:
80 & 443: Apache httpd 2.4.58
5000: Werkzeug httpd 3.0.1 (Python 3.12.3)
Si revisamos los puertos 80 y 443 no encontraremos nada interesante, pero en el puerto 5000 sí, ya que nos deja ejecutar ping hacia la ip que digamos.
Podemos intentar ejecutar comandos de diversas maneras pero por ejemplo, si intentamos poner "--help", la web nos dirá lo siguiente:
Esto significa que la web ejecuta lo siguiente:
sabiendo esto, podríamos intentar ejecutar comandos poniendo un ";", y asi ejecutar otro comando además de ping:

Como vemos, si se ejecutan los comandos.
Intrusión
Teniendo una ejecución de comandos, podemos enviar una shell de diversas maneras, yo usé la siguiente:
Esta nos enviará una shell por el puerto 443, por lo que previamente debemos haber estado escuchando con netcat (sudo nc -nlvp 443).
Escalada de privilegios
Freddy
Al ser una web con python, somos el usuario que la estaba ejecutando, en este caso "freddy". Luego de hacer el tratamiento de la tty, ejecuto sudo -l y veo que puedo ejecutar dpkg como el usuario "bobby", por lo que para escalar a bobby, ejecuto el siguiente comando:
este nos abrirá como un menú, escribimos !/bin/bash y apretamos la tecla enter.
Bobby
Si ejecutamos sudo -l veremos que podemos ejecutar php como el usuario "gladys", pero en esta parte deberemos hacer una cosa, ya que si usamos el método de gtfobins, todo el terminal quedará con lag o bugeado, por lo que para poder escalar a gladys, deberemos crear un archivo en php que nos envié una shell:
como la máquina no tiene nano ni vim ni nvim, dejo este oneliner que lo crea automáticamente con los permisos correctos:
Una vez ejecutamos lo de arriba, solo nos queda escuchar en el puerto 9090 (nc -nlvp 9090) y enviar la shell como gladys:
Gladys
Como gladys, ejecuto sudo -l y veo que puedo ejecutar cut como el usuario "chocolatito", y si buscamos que archivos pertenecen a este (find / -user chocolatito 2>/dev/null) veremos que en "/opt/" se encuentra un txt con su contraseña, pero no podemos leerlo, pero como si podemos ejecutar cut como chocolatito, lo usaremos de la siguiente manera para leer el archivo:
Una vez lo ejecutamos, obtendremos la contraseña, y escalaremos ejecutando su chocolatito y poniendo la contraseña obtenida.
Chocolatito
Siendo chocolatito, podemos ejecutar awk como el usuario "theboss", por lo que para escalar ejecutamos lo siguiente:
TheBoss
Como theboss, podemos ejecutar sed como root, por lo que para escalar a root, debemos modificar el passwd y hacer que al ejecutar su nos haga root sin necesidad de contraseña. Para esto debemos ejecutar lo siguiente:
Ejecutamos su y ya seremos root.
Root

Gracias por leer :)
Última actualización