XUT_ / MACHINES / THM

0022

Ignite

THMMACHINENONEEASY

Introduction

ignite

Una nueva startup tiene algunos problemas con su servidor web.

Getting the Flags

Reconocimiento Inicial

Comenzamos escaneando los puertos abiertos de la máquina.

ignite

Ahora hacemos un escaneo más en profundidad sobre el puerto que hemos encontrado abierto.

ignite

Vamos ahora a listar directorios en la página web.

ignite ignite ignite ignite

Esto es todo lo que hemos encontrado. Vamos a ver cómo se ve la página web.

ignite

Es la página de configuración de un CMS llamado Fuel CMS con la versión 1.4, puede que más adelante nos sirva.

Vamos a ver ahora qué hay en los directorios/archivos que hemos encontrado con la enumeración web.

ignite

Vemos un composer, esto siempre viene bien para saber con qué se está trabajando, podemos ver PHP y también un framework, puede que más tarde desarrollemos sobre esto.

ignite

En el robots.txt nos encontramos con /fuel disallowed para las máquinas, vamos a ver qué hay en dicha ruta.

ignite

Un formulario de inicio de sesión, interesante. Vamos a seguir.

ignite


Profundización

Sabiendo todo lo que sabemos ahora, vamos a ver si existe alguna vulnerabilidad conocida para Fuel CMS 1.4.

ignite

Parece que sí. Vamos a mirar si hay alguna guía en GitHub.


Explotación

Parece que sí. Vamos a usarlo.

ignite

Ahora descargamos los requerimientos y lo ejecutamos.

ignite

Parece que funciona, vamos a mandarnos una reverse shell. Después de probar con varios encodings y que no funcionen he decidido guardar en mi máquina una reverse shell sencillita y subir el archivo.

ignite

Si vamos a la pestaña en escucha:

ignite

Si buscamos la flag la podemos leer.


Escalada de Privilegios

Primero vamos a estabilizar la shell:

ignite

Ahora vamos a buscar la manera de escalar privilegios. Empezaremos con la técnica más sencilla sudo -l.

Después de un rato y de no funcionar ninguna técnica de las que he probado, me acuerdo de que había un directorio deshabilitado en robots.txt que parecía que podía tener información valiosa, por tener un portal de login, así que dirijo mis esfuerzos hacia allí.

ignite

Vamos a ver qué encontramos. Para investigarlo más tranquilamente lo comparto conmigo mismo con:

bash
scp -r fuel/ usuario@IP:/ruta

ignite

Una vez lo tengo aquí, vamos a mirar a ver qué hay. A primera vista el directorio /application/ llama la atención.

ignite

Dentro de /application/config hay varios archivos. Que no haya un .env me hace pensar que quizá haya credenciales hardcodeadas en database.php.

ignite

Efectivamente. Vamos a usarla para entrar a la base de datos.

ignite

Le decimos use fuel_schema y vamos a ver las tablas.

ignite

Parece que puede interesarnos fuel_users.

ignite

Efectivamente encontramos una contraseña. Vamos a dehashearla. Como las herramientas online no funcionan, vamos a mirar qué tipo de hash es:

ignite

Con esta información vamos a hashcat y realizamos el ataque:

ignite

Con esto ahora ya si podemos comenzar el crackeo del hash.

ignite

Como no sabemos cómo se generó el hash tocaría probar entre el 110 y el 120, aunque hemos acertado a la primera.

Ahora iniciamos sesión en el CMS.

ignite

LLegado a este punto estuve mucho rato intentando conseguir una reverse shell con permisos de administrador, sin darme cuenta que he tenido la contraseña de root desde antes de acceder a la base de datos.

ignite

Con la cuenta de root, solo nos queda listar y leer la flag.


Conclusión

Una máquina divertida en la que hemos trabajado:

  • Enumeración
  • Búsqueda de vulnerabilidades
  • Ejecución de exploits
  • Análisis de framework

A veces las cosas son más fáciles de lo que parecen. Estuve mucho tiempo teniendo la contraseña de root creyendo que sólo me valía para entrar a la base de datos, sin darme cuenta que literamente era la contraseña de root hahaha.