CVE-2020-1472 он же Zerologon Exploit POC

Что это?
NetLogon (MS-NRPC) может установить уязвимый канал безопасности для междоменного управления.
Можно обнулить пароль учетной записи компьютера на контроллерах домена.
Заметки:
- Контроллер домена будет частично сломан, пока пароль обнулен, однако эта программа изменяет пароль обратно по завершении.
- Может вызывать проблемы с DNS на контроллере домена (исправляется перезагрузкой).
- Билеты Kerberos имеют время жизни 10 часов до истечения.
- Требуется последняя версия impacket из GitHub с добавленными структурами netlogon.
- Обратите внимание: по умолчанию это изменяет пароль системной учетной записи контроллера домена, а затем восстанавливает его. Да, это позволяет выполнить DCSync, но также нарушает связь с другими контроллерами домена на короткое время, так что будьте осторожны!
Исследование:
Необходимые зависимости
- Требуется последняя версия impacket из GitHub с добавленными структурами netlogon.
Проверка на уязвимость:
- Поведение скрипта по умолчанию — проверка на уязвимость без каких-либо изменений!
Использование zerologon.py
- Прочитайте блог/документ выше, чтобы понимать, что вы делаете.
- Этот скрипт проверяет контроллеры домена на CVE-2020-1472.
- Если указан параметр -exploit, он выполнит:
- Обнуление пароля системной учетной записи контроллера домена.
- Вызовет DRSUAPI из secretsdump с нулевым паролем для получения хешей ntds.
- Проанализирует выгруженные данные для получения учетной записи администратора домена с RID :500: и снова вызовет secretsdump для получения секретов LSA.
- Извлечет из второго дампа значение plain_password_hex.
- Вызовет скрипт восстановления с шестнадцатеричным значением для восстановления исходного пароля системной учетной записи контроллера домена.
python zerologon.py
usage: zerologon.py [-h] [-exploit] dc_name dc_ip
Tests whether a domain controller is vulnerable to the Zerologon attack. Resets the DC account password to an empty string
when vulnerable.
positional arguments:
dc_name The (NetBIOS) computer name of the domain controller.
dc_ip IP Address of the domain controller.
optional arguments:
-h, --help show this help message and exit
-exploit Zero out the computer's hash
Обнаружение:
- Событие 4661 с запросом привилегии SetPassword (без знания старого пароля) (прилагается скриншот)
- Событие 4723 о попытке изменения пароля учетной записи
- Событие 4738 об изменении учетной записи пользователя для значения Password Last Set
Исправление (патч):
Затронутые системы:
- Windows Server 2008 R2 для 64-разрядных систем с пакетом обновлений 1 (Service Pack 1)
- Windows Server 2008 R2 для 64-разрядных систем с пакетом обновлений 1 (установка Server Core)
- Windows Server 2012
- Windows Server 2012 (установка Server Core)
- Windows Server 2012 R2
- Windows Server 2012 R2 (установка Server Core)
- Windows Server 2016
- Windows Server 2016 (установка Server Core)
- Windows Server 2019
- Windows Server 2019 (установка Server Core)
- Windows Server, версия 1903 (установка Server Core)
- Windows Server, версия 1909 (установка Server Core)
- Windows Server, версия 2004 (установка Server Core)