
Эксплойт для CVE-2024-49112, критической уязвимости Windows LDAP RCE, вызывающий сбой через специально сформированные взаимодействия Netlogon и LDAP.
Эксплойт для CVE-2024-49112, о котором сообщил Юки Чен (@guhe120). Уязвимость в Windows Lightweight Directory Access Protocol (LDAP).
Создано SafeBreach Labs (опубликовано 1 января 2025 года). Полный технический анализ уязвимости и описание того, как нам удалось её эксплуатировать, читайте в блог-посте здесь
CVE-2024-49112 — это критическая уязвимость в LDAP-клиенте Windows, которая, по словам Microsoft, позволяет выполнять удалённый код. Данный эксплойт использует уязвимость для аварийного завершения работы целевых серверов Windows путём взаимодействия с их протоколом Netlogon Remote Protocol (NRPC) и LDAP-клиентом.
https://github.com/user-attachments/assets/1cbda4a9-943a-4e07-a95a-b20e45863ec3
Установка зависимостей:
Убедитесь, что все необходимые пакеты Python установлены. Вы можете установить их с помощью pip и предоставленного файла requirements.txt:
pip install -r requirements.txt
Настройка эксплойта:
target_ip: IP-адрес целевой машины.port: TCP-порт для RPC-взаимодействия (по умолчанию: 49664).listen_port: UDP-порт, на котором будет прослушивать сервер эксплойта (по умолчанию: 389). Если не изменён, инструмент требуется запускать с правами администратора или root.domain_name: доменное имя в интернете, принадлежащее атакующему. Этот домен должен иметь две DNS SRV-записи (SRV-записи сопоставляют домен с портом и другим доменом):
domain_name -> listen_port имя хоста машины атакующегоdomain_name -> listen_port имя хоста машины атакующегоимя хоста машины атакующего будет работать при условии, что сервер-жертва может найти машину атакующего по её имени хоста с помощью NBNS. Вместо имени хоста атакующего это значение можно заменить на доменное имя в интернете, указывающее на IP-адрес вредоносного LDAP-сервера, эксплуатирующего уязвимость.account: параметр имени учётной записи (по умолчанию: Administrator).site_name: параметр имени сайта (по умолчанию: пустая строка).python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
Пример:
python LdapNightmare.py 192.168.1.100 --domain-name example.com
Запуск сервера эксплойта:
Скрипт запускает асинхронный LDAP-сервер, который прослушивает входящие подключения на указанном UDP-порту.
Вызов DsrGetDcNameEx2:
Скрипт вызывает функцию DsrGetDcNameEx2 через протокол Netlogon Remote Protocol, чтобы заставить сервер-жертву отправить LDAP-запрос атакующему.
Активация уязвимости:
Отправляя специально сформированный ответ, эксплойт активирует уязвимость CVE-2024-49112, вызывая аварийное завершение работы сервера-жертвы.
| Or Yair | Shahak Morag | |
|---|---|---|
| Or Yair | Shahak Morag | |
| @oryair1999 | @shahakmo |