Exploitation de CVE-2024-21413 (Outlook)
État du projet : En pause (pratique incomplète ; aucun hash NTLM n'a pu être capturé)
Objectifs
Tenter d'exploiter la vulnérabilité CVE-2024-21413, qui permet la fuite de hashes NTLM dans Outlook lors de l'interaction avec des liens malveillants.
L'objectif de la pratique n'était pas de construire de zéro tous les outils utilisés dans l'attaque, mais de comprendre en profondeur leur fonctionnement central et d'expérimenter les erreurs réelles lors du montage d'une infrastructure propre.
J'ai utilisé des codes d'exploits et des serveurs SMTP/POP3 développés par des tiers, publiés par la communauté, que je remercie profondément.
Sommaire
- Prérequis
- Machines virtuelles
- Installation
- Déroulement de l'exploitation
- Tests et résultats
- Leçons apprises
Prérequis
- Python 3.10+
- Outlook 2016
- Kali Linux
- Serveurs SMTP/POP3 personnels
- Exploit
- Machines virtuelles
Machines virtuelles
Machine victime (Windows)
- OS : Windows 10 Home (x32)
- Outlook : Microsoft Outlook 2016 (version 16.0.4266.1001)
- Réseau : Adaptateur 1 : NAT, Adaptateur 2 : Réseau interne
Machine attaquante (Kali)
- OS : Kali Linux 2025.1
- Outils et bibliothèques installés :
- Python 3.10+
- smtplib
- email
- socket
- threading
- os
- aiosmtpd
- servidor-smtp.py
- servidor-pop3.py
- exploit.py
- Réseau : Adaptateur 1 : NAT, Adaptateur 2 : Réseau interne
Infrastructure
- Les serveurs SMTP et POP3 ont été montés manuellement sur la machine attaquante (Kali) à l'aide de scripts Python.
Les machines ont été exécutées dans VirtualBox.
Installation
Installation (Kali)
Installation du serveur SMTP
- Venv : Environnement virtuel avec Python 3
- Étape 1 : Créer un répertoire pour le serveur et l'environnement virtuel (mkdir smtp-lab) et y accéder (cd smtp-lab)
- Étape 2 : Créer un environnement virtuel dans le répertoire (python3 -m venv venv)
- Étape 3 : Activer l'environnement virtuel (source venv/bin/activate)
- Étape 4 : Installer aiosmtpd dans l'environnement virtuel (pip install aiosmtpd)
- Étape 5 : Créer le code du serveur (nano servidor-smtp.py)
- Étape 6 : Exécuter le serveur (python3 servidor-smtp.py)
Code du serveur SMTP
Le code du serveur SMTP se trouve dans le fichier src/servidor-smtp.py.
Installation du serveur POP3 :
- Étape 1 : Créer un répertoire pour le serveur (mkdir pop3-server) et y accéder (cd pop3-server)
- Étape 2 : Créer le code du serveur (nano server-pop3.py)
- Étape 3 : Exécuter le serveur (python3 server-pop3.py)
Code du serveur POP3
Le code du serveur POP3 se trouve dans le fichier src/servidor-pop3.py.
Installation de l'exploit
- Étape 1 : Créer le code, ce code est extrait de CMNatic, mais il a été adapté à mon infrastructure (nano exploit.py)
Code de l'exploit
Le code de l'exploit se trouve dans le fichier src/exploit.py.
Installation (Windows 10)
- Étape 1 : Installer l'ISO Microsoft Office 2016, j'ai utilisé le site archive.org et installé la version Microsoft Office 2016 Professional Plus x86
- Étape 2 : Une fois l'ISO installée, télécharger Microsoft Office et accéder à Outlook 2016
- Étape 3 : Configurer correctement Outlook
Configuration d'Outlook 2016
Voici comment configurer Outlook pour qu'il fonctionne avec le serveur SMTP et POP3 de test.
- Dans les champs "Incoming mail server" et "Outgoing mail server(SMTP)", il faut mettre l'IP de l'interface réseau interne de la machine attaquante (Kali).
- Le mot de passe est sans importance pour l'attaque, on peut en choisir n'importe lequel.

Déroulement de l'exploitation
L'objectif de l'exploit pour CVE-2024-21413 est de faire en sorte qu'Outlook effectue une requête automatique de type SMB vers une ressource contrôlée par l'attaquant, ce qui entraîne l'envoi du hash NTLM de la victime, qui peut être capturé hors ligne pour être cracké.
Préparation de l'environnement
- La machine attaquante (Kali) lance un serveur SMTP et POP3 personnalisé.
- Outlook sur la machine victime (Windows 10) est configuré pour recevoir des courriels depuis ce serveur.
- La machine attaquante (Kali) met en place un faux serveur SMB (dans mon cas, j'ai utilisé responder)
Envoi du courriel malveillant
- Un courriel est envoyé à la victime depuis le SMTP de l'attaquant.
- Le corps du message contient un lien UNC malveillant.
- Le chemin est conçu pour déclencher une connexion SMB automatique si l'utilisateur interagit avec le lien.
Interaction de l'utilisateur
- La victime ouvre Outlook et voit le message.
- On s'attend à ce qu'elle clique sur le lien.
- Si Outlook tente de résoudre le chemin UNC, une requête SMB est générée vers le serveur de l'attaquant.
- Voici à quoi ressemblerait le courriel malveillant dans Outlook du point de vue de la victime :

Capture du hash
- Le serveur SMB de l'attaquant reçoit la connexion.
- Outlook, en tentant de s'authentifier, envoie automatiquement le hash NTLM de l'utilisateur.
- L'attaquant peut enregistrer ce hash pour une attaque de type hashcat.
Notes
- Dans mon cas, le courriel arrivait correctement dans Outlook.
- Cependant, en cliquant sur le lien UNC, la connexion SMB attendue n'était pas générée.
- J'ignore encore la cause de l'échec, même si je soupçonne qu'elle peut être liée à la configuration réseau, à la version d'Outlook ou à un problème d'accessibilité ou de réponse du serveur SMB.
Tests et résultats
Fonctionnalités qui ont fonctionné
- SMTP et POP3 configurés correctement, Outlook s'est synchronisé avec eux sans erreur.
- Le courriel malveillant a été reçu par Outlook.
- Le message affichait le lien UNC sans être bloqué.
- L'environnement SMB de l'attaquant était actif et à l'écoute.
Ce qui n'a pas fonctionné
- En cliquant sur le lien UNC depuis Outlook, aucun trafic SMB visible n'a été produit dans Wireshark.
- Aucune tentative d'authentification NTLM n'a été générée depuis la machine victime
- Aucune connexion n'a été enregistrée sur le serveur SMB.
Analyse avec Wireshark
- Captures prises sur l'interface de Kali (eth1).
- Le trafic SMTP et POP3 a été observé, mais aucun paquet TCP 445 ni UDP 137/138 lors du clic sur le lien.
- On a également essayé avec Outlook exécuté en tant qu'administrateur : aucun changement.
Leçons apprises
Connaissances acquises
- Comment fonctionnent SMTP et POP3 à un niveau bas.
- Ce qu'Outlook attend exactement lors de la synchronisation des comptes.
- Comment Outlook interprète les liens UNC et quelles conditions doivent être remplies pour qu'il les ouvre automatiquement.
- La valeur de Wireshark et des logs comme outils de débogage dans des laboratoires complexes.
Pourquoi j'ai décidé de m'arrêter ici
- Après de multiples tentatives, l'exploit n'est pas arrivé à l'étape de capture du hash, qui était l'objectif final.
- J'ai documenté toute l'infrastructure, les tests et les résultats, ce qui reste précieux en tant que laboratoire pédagogique.
- Bien que l'objectif final n'ait pas été atteint, le processus m'a permis d'acquérir une connaissance approfondie de chaque composant technique impliqué. Il pourra être repris à l'avenir.
Crédits
Le code de cet exploit est basé sur le travail de CMNatic de https://github.com/CMNatic/CVE-2024-21413. J'ai effectué des modifications pour l'adapter à mon environnement.