PingPong - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Medio | ElPinguinoDeMario |
Reconocimiento Inicial
Durante el reconocimiento inicial, encontramos los puertos 80, 443 y 5000 abiertos.
Accedemos al puerto 80 y encontramos la página por defecto de Apache2. Utilizamos Gobuster para buscar directorios y archivos ocultos.
Gobuster nos revela la existencia de machine.php. Vamos a explorar este directorio.
En el directorio machine.php, no encontramos nada interesante. Pasamos a explorar el puerto 443.
Al acceder al puerto 443, encontramos otra página por defecto de Apache2. Realizamos otro reconocimiento con Gobuster.
Los resultados de Gobuster son los mismos que en el puerto 80.
Finalmente, exploramos el puerto 5000.
Parece que podemos introducir una IP y hacer ping. Probamos enviando un ping a nuestra IP.
Capturamos el tráfico con Gobuster para realizar pruebas adicionales.
Al hacer un ping a nuestro equipo, confirmamos la conexión. Probamos con localhost para ver si reconoce letras o solo permite números.
Vemos que el ping a localhost es exitoso, por lo que podemos inyectar código usando && y el comando que deseemos. Listamos el contenido de /etc/passwd.
Como podemos inyectar código, procedemos a enviarnos una reverse shell de la siguiente forma.
Escalada de Privilegios
Ahora estamos dentro del sistema. Ejecutamos sudo -l y vemos que podemos usar el binario dpkg como el usuario bobby. Consultamos GTFObins para ver cómo escalar privilegios.
Usamos el siguiente comando para escalar privilegios:
sudo -u bobby /usr/bin/dpkg -l
Se abrirá un manual. Escribimos !/bin/sh para obtener una shell como bobby.
Ejecutamos nuevamente sudo -l y vemos que con el usuario gladys podemos usar el binario php.
Ejecutamos el siguiente comando para escalar privilegios:
CMD="/bin/sh"
sudo -u gladys php -r "system('$CMD');"
Ahora podemos ejecutar el comando cut. Buscamos algún archivo en una carpeta que podamos visualizar, ya que este comando no proporciona escalada directamente.
En la carpeta opt, encontramos la contraseña de chocolatito. Usamos el comando cut para leer este archivo.
Obtenemos la contraseña de chocolatito y hacemos su chocolatito con esa contraseña.
Desde este usuario, podemos escalar a theboss usando el binario awk. Consultamos GTFObins para ver cómo hacerlo.
sudo -u theboss awk 'BEGIN {system("/bin/sh")}'
Finalmente, podemos escalar a root usando el binario sed con el siguiente comando:
sudo sed -n '1e exec sh 1>&0' /etc/hosts
¡Ya somos ROOT!