Hammer

Fecha: 2025-04-06

Resumen

Durante la evaluación de seguridad de la máquina hammer.thm, se identificaron múltiples vectores de ataque explotables que permitieron el acceso inicial a la aplicación, la manipulación de tokens JWT para la elevación de privilegios y la ejecución remota de comandos arbitrarios en el sistema objetivo. El análisis demuestra una combinación de debilidades en la gestión de autenticación, el almacenamiento inseguro de claves criptográficas y una pobre implementación del control de acceso.

Información de la máquina

Nmap scan report for 10.10.55.194
Host is up (0.18s latency).
Not shown: 59998 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
1337/tcp open  waste
|_http-title: Login
|_http-server-header: Apache/2.4.41 (Ubuntu)
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (95%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Adtran 424RG FTTH gateway (93%), Linux 2.6.32 (93%), Linux 2.6.39 - 3.2 (93%), Linux 3.1 - 3.2 (93%), Linux 3.11 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 4 hops

TRACEROUTE (using port 1337/tcp)
HOP RTT       ADDRESS
1   107.98 ms 10.6.0.1
2   ... 3
4   178.13 ms 10.10.55.194

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.97 seconds

Hallazgos Técnicos Detallados

1. Enumeración del servicio web

Se realizó un escaneo de puertos con nmap, identificando el puerto 1337 con un servicio HTTP accesible. La herramienta gobuster reveló la existencia de archivos sensibles como config.php, dashboard.php, execute_command.php, y directorios potencialmente interesantes como /vendor, /logs, y /phpmyadmin.

Al inspeccionar el sitio web encontramos esta informacion adicional:

2. Acceso a logs internos

Utilizando la ruta /hmr_logs/error.logs, fue posible leer logs de autenticación que contenían intentos fallidos de login y direcciones de correo válidas como tester@hammer.thm. Esto facilitó ataques dirigidos de autenticación.

Logs

Al ingresar a los logs encontramos esta informacion del correo electronico

3. Fuerza bruta sobre código de recuperación

La página reset_password.php contenía un formulario protegido por un contador de tiempo y un campo oculto, pero fue vulnerable a un ataque de fuerza bruta automatizado con rotación periódica de la cookie PHPSESSID. El script permitió encontrar el código correcto y cambiar la contraseña del usuario tester@hammer.thm.

El objetivo era bypassear el reset_password

codigo

4. JWT con validación débil

Se identificó el uso de JWT (algoritmo HS256) para la autorización. En la cabecera del token se especificaba un parámetro kid que apuntaba a una ruta local del servidor (/var/www/mykey.key). Posteriormente, se descubrió un archivo accesible en el sistema (188ade1.key) que contenía la clave secreta usada para firmar los tokens. Esto permitió regenerar un token manualmente, modificando el campo role de user a admin.

Inspeccion el codigo de la pagina web encontramos lo siguiente

Al seguir inspeccionando mediante el burp suite nos encontramos el token el cual lo revisaremos en la pagina de jwt.io

El resultado que nos bota la pagina jwt.io es el siguiente:

Generacion de token admin

5. Escalada de privilegios y ejecución remota

Con el nuevo JWT modificado con privilegios de administrador, se utilizó la funcionalidad del endpoint /execute_command.php para ejecutar comandos arbitrarios. Esto permitió listar archivos, extraer el contenido de flags almacenadas en el sistema (/home/ubuntu/flag.txt) y verificar el contexto de ejecución (uid=33(www-data)).

Obtención de banderas

Metodología de Explotación

  1. Enumeración de rutas y archivos con gobuster y ffuf.

  2. Lectura de registros (error.logs) para obtener información interna.

  3. Fuerza bruta del código de recuperación con rotación de sesión.

  4. Análisis y manipulación del JWT usando la clave filtrada en el sistema.

  5. Generación de nuevo token con privilegios elevados (rol admin).

  6. Envío de comandos al servidor mediante Burp Suite hacia execute_command.php.

Conclusiones Técnicas

Esta máquina ilustra de forma clara los riesgos que supone:

  • Utilizar JWT sin una validación segura del parámetro kid.

  • Exponer archivos de configuración y llaves en directorios accesibles.

  • No limitar correctamente el acceso a endpoints administrativos.

  • Implementar mecanismos de recuperación de contraseña sin protección efectiva contra fuerza bruta. Estas vulnerabilidades fueron explotadas en cadena para obtener acceso completo al sistema. Se recomienda aplicar las mejores prácticas en control de acceso, manejo de tokens y protección de archivos sensibles.

Última actualización