Ausnutzung von CVE-2024-21413 (Outlook)
Projektstatus: Pausiert (unvollständige Übung; es konnten keine NTLM-Hashes erbeutet werden)
Ziele
Versuch, die Schwachstelle CVE-2024-21413 auszunutzen, die in Outlook die Weitergabe von NTLM-Hashes beim Interagieren mit bösartigen Links ermöglicht.
Ziel der Übung war es nicht, alle im Angriff verwendeten Werkzeuge von Grund auf selbst zu entwickeln, sondern deren zentrale Funktionsweise gründlich zu verstehen und beim Aufbau einer eigenen Infrastruktur mit den tatsächlichen Fehlern zu experimentieren.
Ich habe Exploit-Codes und SMTP/POP3-Server von Dritten verwendet, die von der Community veröffentlicht wurden, der ich zutiefst danke.
Inhalt
- Voraussetzungen
- Virtuelle Maschinen
- Installation
- Ablauf der Ausnutzung
- Tests und Ergebnisse
- Erkenntnisse
Voraussetzungen
- Python 3.10+
- Outlook 2016
- Kali Linux
- Eigene SMTP/POP3-Server
- Exploit
- Virtuelle Maschinen
Virtuelle Maschinen
Opfermaschine (Windows)
- Betriebssystem: Windows 10 Home (x32)
- Outlook: Microsoft Outlook 2016 (Version 16.0.4266.1001)
- Netzwerk: Adapter 1: NAT, Adapter 2: Internes Netzwerk
Angreifermaschine (Kali)
- Betriebssystem: Kali Linux 2025.1
- Installierte Tools und Bibliotheken:
- Python 3.10+
- smtplib
- email
- socket
- threading
- os
- aiosmtpd
- servidor-smtp.py
- servidor-pop3.py
- exploit.py
- Netzwerk: Adapter 1: NAT, Adapter 2: Internes Netzwerk
Infrastruktur
- Die SMTP- und POP3-Server wurden manuell auf der Angreifermaschine (Kali) mithilfe von Python-Skripten eingerichtet.
Die Maschinen wurden in VirtualBox ausgeführt.
Installation
Installation (Kali)
Installation des SMTP-Servers
- Venv: Virtuelle Umgebung mit Python 3
- Schritt 1: Ein Verzeichnis für den Server und die virtuelle Umgebung erstellen (mkdir smtp-lab) und hineinwechseln (cd smtp-lab)
- Schritt 2: Eine virtuelle Umgebung innerhalb des Verzeichnisses erstellen (python3 -m venv venv)
- Schritt 3: Die virtuelle Umgebung aktivieren (source venv/bin/activate)
- Schritt 4: aiosmtpd innerhalb der virtuellen Umgebung installieren (pip install aiosmtpd)
- Schritt 5: Den Servercode erstellen (nano servidor-smtp.py)
- Schritt 6: Den Server starten (python3 servidor-smtp.py)
Code des SMTP-Servers
Der Code des SMTP-Servers befindet sich in der Datei src/servidor-smtp.py.
Installation des POP3-Servers:
- Schritt 1: Ein Verzeichnis für den Server erstellen (mkdir pop3-server) und hineinwechseln (cd pop3-server)
- Schritt 2: Den Servercode erstellen (nano server-pop3.py)
- Schritt 3: Den Server starten (python3 server-pop3.py)
Code des POP3-Servers
Der Code des POP3-Servers befindet sich in der Datei src/servidor-pop3.py.
Installation des Exploits
- Schritt 1: Den Code erstellen; diesen Code habe ich von CMNatic übernommen, aber für meine Infrastruktur angepasst (nano exploit.py)
Code des Exploits
Der Code des Exploits befindet sich in der Datei src/exploit.py.
Installation (Windows 10)
- Schritt 1: Das Microsoft Office 2016-ISO installieren. Ich habe die Seite archive.org verwendet und die Version Microsoft Office 2016 Professional Plus x86 installiert.
- Schritt 2: Nach der Installation des ISO Microsoft Office herunterladen und Outlook 2016 öffnen.
- Schritt 3: Outlook richtig konfigurieren.
Konfiguration von Outlook 2016
Hier wird gezeigt, wie Outlook konfiguriert wird, damit es mit dem Test-SMTP- und POP3-Server funktioniert.
- Sowohl beim Punkt „Incoming mail server“ als auch bei „Outgoing mail server (SMTP)“ muss die IP des internen Netzwerkadapters der Angreifermaschine (Kali) eingetragen werden.
- Das Passwort ist für den Angriff irrelevant; es kann beliebig gewählt werden.

Ablauf der Ausnutzung
Das Ziel des Exploits für CVE-2024-21413 ist es, Outlook dazu zu bringen, automatisch eine SMB-Anfrage an eine vom Angreifer kontrollierte Ressource zu stellen, was dazu führt, dass der NTLM-Hash des Opfers gesendet wird, der offline für das Knacken erfasst werden kann.
Vorbereitung der Umgebung
- Die Angreifermaschine (Kali) startet einen eigenen SMTP- und POP3-Server.
- Outlook auf der Opfermaschine (Windows 10) ist so konfiguriert, dass es E-Mails von diesem Server empfängt.
- Die Angreifermaschine (Kali) startet einen gefälschten SMB-Server (In meinem Fall habe ich Responder verwendet).
Senden der schädlichen E-Mail
- Vom SMTP-Server des Angreifers wird eine E-Mail an das Opfer gesendet.
- Der Nachrichtentext enthält einen schädlichen UNC-Link.
- Der Pfad ist so gestaltet, dass er eine automatische SMB-Verbindung auslöst, wenn der Benutzer mit dem Link interagiert.
Interaktion des Benutzers
- Das Opfer öffnet Outlook und sieht die Nachricht.
- Es wird erwartet, dass es auf den Link klickt.
- Wenn Outlook versucht, den UNC-Pfad aufzulösen, wird eine SMB-Anfrage an den Server des Angreifers gesendet.
- Im Folgenden wird gezeigt, wie die schädliche E-Mail in Outlook aus Sicht des Opfers aussehen würde:

Erbeuten des Hashs
- Der SMB-Server des Angreifers empfängt die Verbindung.
- Outlook sendet beim Versuch, sich zu authentifizieren, automatisch den NTLM-Hash des Benutzers.
- Der Angreifer kann diesen Hash für einen Angriff mit hashcat speichern.
Notizen
- In meinem Fall kam die E-Mail korrekt in Outlook an.
- Beim Klick auf den UNC-Link wurde jedoch keine erwartete SMB-Verbindung erzeugt.
- Ich kenne die Ursache des Fehlers noch nicht, vermute aber, dass er mit der Netzwerkkonfiguration, der Outlook-Version oder einem Erreichbarkeits- bzw. Antwortproblem des SMB-Servers zusammenhängt.
Tests und Ergebnisse
Funktionen, die funktioniert haben
- SMTP und POP3 waren korrekt konfiguriert; Outlook synchronisierte ohne Fehler mit ihnen.
- Die schädliche E-Mail wurde von Outlook empfangen.
- Die Nachricht zeigte den UNC-Link an, ohne dass er blockiert wurde.
- Die SMB-Umgebung des Angreifers war aktiv und lauschte.
Was nicht funktionierte
- Beim Klicken auf den UNC-Link aus Outlook heraus war in Wireshark kein SMB-Verkehr sichtbar.
- Es wurde kein NTLM-Authentifizierungsversuch von der Opfermaschine erzeugt.
- Es wurden keine Verbindungen auf dem SMB-Server registriert.
Analyse mit Wireshark
- Aufzeichnungen an der Kali-Schnittstelle (eth1) erstellt.
- SMTP- und POP3-Verkehr wurde beobachtet, aber beim Klick auf den Link keine TCP-445- oder UDP-137/138-Pakete.
- Außerdem wurde Outlook als Administrator ausgeführt: ohne Änderung.
Erkenntnisse
Erworbene Kenntnisse
- Wie SMTP und POP3 auf niedriger Ebene funktionieren.
- Was Outlook beim Synchronisieren von Konten genau erwartet.
- Wie Outlook UNC-Links interpretiert und welche Bedingungen erfüllt sein müssen, damit es sie automatisch öffnet.
- Der Wert von Wireshark und Logs als Debugging-Werkzeuge in komplexen Laboren.
Warum ich hier abgeschlossen habe
- Nach mehreren Versuchen erreichte der Exploit nicht die Stufe der Hash-Erbeutung, die das Endziel war.
- Ich habe die gesamte Infrastruktur, Tests und Ergebnisse dokumentiert, was weiterhin als lehrreiches Labor wertvoll ist.
- Obwohl das Endziel nicht erreicht wurde, ermöglichte mir der Prozess, tiefgehendes Wissen über jede beteiligte technische Komponente zu erlangen. Das Projekt kann in Zukunft wieder aufgenommen werden.
Credits
Der Code dieses Exploits basiert auf der Arbeit von CMNatic von https://github.com/CMNatic/CVE-2024-21413. Ich habe Änderungen vorgenommen, um ihn an meine Umgebung anzupassen.