
LdapNightmare è uno strumento PoC che testa un Windows Server vulnerabile contro CVE-2024-49113
Un exploit per CVE-2024-49113 segnalato da Yuki Chen (@guhe120). Una vulnerabilità nel Lightweight Directory Access Protocol (LDAP) di Windows.
Creato da SafeBreach Labs (pubblicato il 1° gennaio 2025). Per l'analisi tecnica completa della vulnerabilità e come siamo riusciti a sfruttarla, consulta il post sul blog qui
CVE-2024-49113 è una vulnerabilità critica nel client LDAP di Windows che, secondo Microsoft, consente l'esecuzione remota di codice. Questo exploit sfrutta la vulnerabilità per causare il crash dei sistemi Windows Server target interagendo con il loro Netlogon Remote Protocol (NRPC) e il client LDAP.
https://github.com/user-attachments/assets/1cbda4a9-943a-4e07-a95a-b20e45863ec3
Installare le dipendenze:
Assicurarsi che tutti i pacchetti Python richiesti siano installati. È possibile installarli usando pip e il file requirements.txt fornito:
pip install -r requirements.txt
Configurare l'exploit:
target_ip: indirizzo IP della macchina target.port: porta TCP per la comunicazione RPC (predefinita: 49664).listen_port: porta UDP su cui il server dell'exploit deve rimanere in ascolto (predefinita: 389). Se non viene modificata, lo strumento deve essere eseguito con privilegi di amministratore o root.domain_name: un nome di dominio su internet di proprietà dell'attaccante. Questo dominio deve avere due record DNS SRV al suo interno. (I record SRV mappano un dominio a una porta e a un altro dominio):
domain_name -> listen_port nome host della macchina dell'attaccantedomain_name -> listen_port nome host della macchina dell'attaccantenome host della macchina dell'attaccante funzionerà supponendo che il server vittima possa trovare la macchina dell'attaccante tramite il suo nome host usando NBNS. Al posto del nome host dell'attaccante, questo valore può essere sostituito con un nome di dominio su internet che punti all'IP di un server LDAP dannoso che sfrutta la vulnerabilità.account: parametro del nome dell'account (predefinito: Administrator).site_name: parametro del nome del sito (predefinito: stringa vuota).python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
Esempio:
python LdapNightmare.py 192.168.1.100 --domain-name example.com
Avvia il server dell'exploit:
Lo script avvia un server LDAP asincrono che rimane in ascolto per connessioni in arrivo sulla porta UDP specificata.
Invoca DsrGetDcNameEx2:
Lo script chiama la funzione DsrGetDcNameEx2 tramite il Netlogon Remote Protocol per indurre il server vittima a inviare una query LDAP all'attaccante.
Innesca la vulnerabilità:
Inviando una risposta appositamente formulata, l'exploit innesca la vulnerabilità CVE-2024-49113, causando il crash del server vittima.
| Or Yair | Shahak Morag | |
|---|---|---|
| Or Yair | Shahak Morag | |
| @oryair1999 | @shahakmo |