
Un write-up sobre la sala Vulnerability Capstone de THM y el script de exploit para CVE-2018-16763.
Un write-up sobre la sala THM Vulnerability Capstone y el script de exploit para CVE-2018-16763.
No me atribuyo el mérito del descubrimiento de esta vulnerabilidad. Gracias a las siguientes personas.
Descubrimiento de la vulnerabilidad:
0xd0ff9
Sala y autor de TryHackMe:
https://tryhackme.com/room/vulnerabilitycapstone
https://tryhackme.com/p/cmnatic
Referencias:
https://github.com/noraj/fuelcms-rce/blob/master/exploit.rb
https://github.com/daylightstudio/FUEL-CMS/issues/478
https://packetstormsecurity.com/files/164756/Fuel-CMS-1.4.1-Remote-Code-Execution.html
1. Ejecución remota de código
Fuel CMS es un sistema de gestión de contenidos para aplicaciones web. En la versión 1.4.1, existe una vulnerabilidad RCE que permite que código PHP arbitrario sea evaluado/ejecutado a través de dos vías diferentes. La primera vía para el RCE es una petición GET a /fuel/pages/select/ con el parámetro filter data. La segunda vía es una petición POST a /fuel/preview con el parámetro data. Busqué por internet durante un tiempo y, lamentablemente, no pude encontrar el código fuente que mostrara dónde estaba la vulnerabilidad. Soy un desastre, lo sé... lol. ¡Ahora continuaremos con el write-up!
Empecemos con algunos escaneos de puertos para hacernos una idea de nuestra superficie de ataque. Me gusta usar rustscan para obtener una visión general amplia del objetivo antes de realizar un escaneo más específico y enfocado con nmap.

Parece bastante estándar. Creo que va a ser SSH y HTTP en estos puertos, sin embargo, ejecutaremos algunos escaneos más con nmap para tener una idea más concreta.

Entonces tenemos SSH y HTTP ejecutándose en sus puertos estándar. ¡Echemos un vistazo a la página web y veamos qué tenemos!

El servidor web está ejecutando Fuel CMS versión 1.4. Esta versión es vulnerable a inyección de comandos mediante la evaluación de código PHP. Echemos un vistazo al CVE de NVD a continuación.

Hay múltiples exploits disponibles para este software. He incluido un exploit en python, aunque es una basura. Lo llamo basura porque tendremos que parsear manualmente la respuesta de la petición web para ver la salida de nuestros comandos. No tuve éxito en mis intentos de recortar lo innecesario. ¡Echemos un vistazo!

Ejecuté el comando ls -al. Como podemos ver, la salida del comando está entre los elementos div de HTML.

No revelaré la flag, ¡pero te daré una pista! Puedes empezar mirando en el directorio home. Gracias por leer este write-up. ¡Diviértete!