
LdapNightmare ist ein PoC-Tool, das einen verwundbaren Windows-Server gegen CVE-2024-49113 testet.
An exploit for CVE-2024-49113, gemeldet von Yuki Chen (@guhe120). Eine Schwachstelle im Windows Lightweight Directory Access Protocol (LDAP).
Erstellt von SafeBreach Labs (veröffentlicht am 1. Januar 2025). Die vollständige technische Analyse der Schwachstelle und wie wir sie ausgenutzt haben, finden Sie im Blogbeitrag hier
CVE-2024-49113 ist eine kritische Schwachstelle im Windows-LDAP-Client, die laut Microsoft Remote-Codeausführung ermöglicht. Dieser Exploit nutzt die Schwachstelle aus, um Zielsysteme mit Windows Server zum Absturz zu bringen, indem er mit deren Netlogon Remote Protocol (NRPC) und LDAP-Client interagiert.
https://github.com/user-attachments/assets/1cbda4a9-943a-4e07-a95a-b20e45863ec3
Abhängigkeiten installieren:
Stellen Sie sicher, dass alle erforderlichen Python-Pakete installiert sind. Sie können sie mit pip und der bereitgestellten Datei requirements.txt installieren:
pip install -r requirements.txt
Den Exploit konfigurieren:
target_ip: IP-Adresse des Zielsystems.port: TCP-Port für die RPC-Kommunikation (Standard: 49664).listen_port: UDP-Port, auf dem der Exploit-Server lauscht (Standard: 389). Wenn er nicht geändert wird, muss das Tool mit Administrator- oder Root-Rechten ausgeführt werden.domain_name: Ein Domainname im Internet, der dem Angreifer gehört. Diese Domain muss zwei DNS-SRV-Einträge unter sich haben. (SRV-Einträge bilden eine Domain auf einen Port und eine weitere Domain ab):
domain_name -> listen_port attacker's machine hostnamedomain_name -> listen_port attacker's machine hostnameattacker's machine hostname funktioniert, sofern der Opfer-Server den Angreifer-Rechner über NBNS anhand seines Hostnamens finden kann. Anstelle des Hostnamens des Angreifers kann dieser Wert durch einen Domainnamen im Internet ersetzt werden, der auf die IP eines bösartigen LDAP-Servers zeigt, der die Schwachstelle ausnutzt.account: Parameter für den Kontonamen (Standard: Administrator).site_name: Parameter für den Standortnamen (Standard: leerer String).python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
Beispiel:
python LdapNightmare.py 192.168.1.100 --domain-name example.com
Startet den Exploit-Server:
Das Skript startet einen asynchronen LDAP-Server, der auf dem angegebenen UDP-Port auf eingehende Verbindungen lauscht.
Ruft DsrGetDcNameEx2 auf:
Das Skript ruft die Funktion DsrGetDcNameEx2 über das Netlogon Remote Protocol auf, um den Opfer-Server zu veranlassen, eine LDAP-Abfrage an den Angreifer zu senden.
Löst die Schwachstelle aus:
Durch das Senden einer speziell präparierten Antwort löst der Exploit die Schwachstelle CVE-2024-49113 aus, wodurch der Opfer-Server abstürzt
| Or Yair | Shahak Morag | |
|---|---|---|
| Or Yair | Shahak Morag | |
| @oryair1999 | @shahakmo |