
LdapNightmare est un outil PoC qui teste un serveur Windows vulnérable contre CVE-2024-49113
Un exploit pour CVE-2024-49113 signalé par Yuki Chen (@guhe120). Une vulnérabilité dans le protocole Lightweight Directory Access Protocol (LDAP) de Windows.
Créé par SafeBreach Labs (publié le 1er janvier 2025). Pour l'analyse technique complète de la vulnérabilité et la manière dont nous avons réussi à l'exploiter, consultez l'article de blog ici
CVE-2024-49113 est une vulnérabilité critique dans le client LDAP de Windows qui, selon Microsoft, permet l'exécution de code à distance. Cet exploit tire parti de la vulnérabilité pour faire planter les systèmes Windows Server ciblés en interagissant avec leur protocole Netlogon Remote Protocol (NRPC) et le client LDAP.
https://github.com/user-attachments/assets/1cbda4a9-943a-4e07-a95a-b20e45863ec3
Installer les dépendances :
Assurez-vous que tous les paquets Python requis sont installés. Vous pouvez les installer à l'aide de pip et du fichier requirements.txt fourni :
pip install -r requirements.txt
Configurer l'exploit :
target_ip : adresse IP de la machine cible.port : port TCP pour la communication RPC (par défaut : 49664).listen_port : port UDP sur lequel le serveur d'exploitation doit écouter (par défaut : 389). S'il n'est pas modifié, l'outil doit être exécuté avec les privilèges admin ou rootdomain_name : un nom de domaine sur Internet appartenant à l'attaquant. Ce domaine doit avoir deux enregistrements DNS SRV sous lui. (Les enregistrements SRV mappent un domaine à un port et à un autre domaine) :
domain_name -> listen_port attacker's machine hostnamedomain_name -> listen_port attacker's machine hostnameattacker's machine hostname fonctionnera en supposant que le serveur victime peut trouver la machine de l'attaquant par son nom d'hôte via NBNS. Au lieu du nom d'hôte de l'attaquant, cette valeur peut être remplacée par un nom de domaine sur Internet qui pointe vers l'IP d'un serveur LDAP malveillant exploitant la vulnérabilité.account : paramètre du nom de compte (par défaut : Administrator).site_name : paramètre du nom de site (par défaut : chaîne vide).python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
Exemple :
python LdapNightmare.py 192.168.1.100 --domain-name example.com
Démarre le serveur d'exploitation :
Le script lance un serveur LDAP asynchrone qui écoute les connexions entrantes sur le port UDP spécifié.
Invoque DsrGetDcNameEx2 :
Le script appelle la fonction DsrGetDcNameEx2 via le protocole Netlogon Remote Protocol pour amener le serveur victime à envoyer une requête LDAP à l'attaquant.
Déclenche la vulnérabilité :
En envoyant une réponse spécialement conçue, l'exploit déclenche la vulnérabilité CVE-2024-49113, provoquant le plantage du serveur victime
| Or Yair | Shahak Morag | |
|---|---|---|
| Or Yair | Shahak Morag | |
| @oryair1999 | @shahakmo |