PoC del exploit LDAP Nightmare
LdapNightmare es una herramienta PoC que prueba un servidor Windows vulnerable contra CVE-2024-49113
LDAP Nightmare
Yuki Chen (@guhe120) ha informado de un exploit para CVE-2024-49113. Se trata de una vulnerabilidad en el protocolo ligero de acceso a directorios (LDAP) de Windows.
Descripción general
CVE-2024-49113 es una vulnerabilidad crítica en el cliente LDAP de Windows que, según Microsoft, permite la ejecución remota de código. Este exploit aprovecha la vulnerabilidad para bloquear los sistemas Windows Server de destino al interactuar con su protocolo remoto Netlogon (NRPC) y el cliente LDAP.
Configuración
- Instalar dependencias:
Asegúrese de que todos los paquetes de Python necesarios estén instalados. Puede instalarlos utilizando el archivo pip proporcionado: requirements.txt
1
pip install -r requirements.txt
Configurar el exploit:
- target_ip: Dirección IP de la máquina de destino.
- port: Puerto TCP para comunicación RPC (predeterminado: 49664).
- listen_port: Puerto UDP para que el servidor de exploits escuche (predeterminado: 389). Si no se modifica, es necesario ejecutar la herramienta con privilegios de administrador o raíz.
domain_name: Un nombre de dominio en Internet que es propiedad del atacante. Este dominio debe tener dos registros SRV de DNS. (Los registros SRV asignan un dominio a un puerto y a otro dominio):
- _ldap._tcp.dc._msdcs.- domain_name>listen_port attacker’s machine hostname
- _ldap._tcp.nombre-del-primer-sitio-predeterminado._sites.dc._msdcs. domain_name->listen_port attacker’s machine hostname
- Nota: attacker’s machine hostname funcionará suponiendo que el servidor víctima pueda encontrar la máquina atacante por su nombre de host mediante NBNS. En lugar del nombre de host del atacante, este valor se puede reemplazar con un nombre de dominio en Internet que apunte a la IP de un servidor LDAP malicioso que explota la vulnerabilidad.
- account: Parámetro de nombre de cuenta (predeterminado: Administrador).
- site_name: Parámetro de nombre del sitio (predeterminado: cadena vacía).
Uso
1
python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
Ejemplo:
1
python LdapNightmare.py 192.168.1.100 --domain-name example.com
Cómo funciona
- Inicia el servidor de exploits:
El script inicia un servidor LDAP asincrónico que escucha las conexiones entrantes en el puerto UDP especificado.
- InvocaDsrGetDcNameEx2:
El script llama a la DsrGetDcNameEx2función a través del protocolo remoto Netlogon para activar el servidor víctima y enviar una consulta LDAP al atacante.
- Activa la vulnerabilidad:
Al enviar una respuesta especialmente diseñada, el exploit activa la vulnerabilidad CVE-2024-49113, lo que provoca que el servidor de la víctima se bloquee.
Repositorio https://github.com/SafeBreach-Labs/CVE-2024-49113