Zerologon (CVE-2020-1472): экстренно патчим Domain Controllers за час
CVE-2020-1472 позволяет сменить пароль DC без аутентификации. Раскатываем KB4571694, включаем enforcement mode и ищем следы эксплуатации в логах.
CVE-2020-1472 Zerologon: критическая уязвимость Netlogon позволяет сменить пароль DC без аутентификации
Двадцать восьмое сентября, понедельник. Утром в почте - экстренный бюллетень Microsoft по CVE-2020-1472, Zerologon. CVSS 10.0. Уязвимость в протоколе MS-NRPC (Netlogon Remote Protocol) позволяет любому, у кого есть сетевой доступ до Domain Controller, сменить пароль учётной записи DC без какой-либо аутентификации - буквально за несколько секунд. Патч вышел ещё в августе в составе KB4571694, но у нескольких клиентов DC до сих пор без него. Берёмся разбираться.
Почему это именно то, что нельзя откладывать
Большинство критических уязвимостей требуют той или иной цепочки действий: социальная инженерия, доступ изнутри периметра, несколько шагов эксплуатации. Zerologon выбивается из этого ряда.
Атака использует криптографический дефект в реализации AES-CFB8 в Netlogon: Microsoft использует нулевой IV при инициализации сессии, что позволяет подобрать валидный аутентификатор примерно за 256 попыток. Никакого исходного доступа к домену не нужно - только TCP-доступ к порту 445 или 135 Domain Controller. Исследователи Secura, опубликовавшие техническое описание, оценивают время эксплуатации примерно в три секунды.
Итог: атакующий с сетевым доступом до DC получает возможность сбросить пароль DC$ и затем установить любой пароль для этой учётной записи. Дальше - Golden Ticket, полный контроль домена. Весь ActiveDirectory под угрозой.
PoC-код к моменту публикации уже ходит по сети. У нас несколько клиентов с непропатченными инфраструктурами - часть из них с прямым доступом DC в DMZ. Это не «исправим на следующей неделе».
Что делаем: план на час
Microsoft разбила исправление на два этапа. Первый - патч KB4571694, который выходит в режиме compatibility mode: Netlogon принимает и незащищённые соединения (для устаревших клиентов), но журналирует их. Второй этап - enforcement mode, принудительное требование защищённых соединений, запланированный Microsoft на февраль 2021 года. Можно включить раньше - но сначала нужно понять, есть ли в сети устаревшие клиенты, которые сломаются.
Практически план такой:
- Шаг 1: установить KB4571694 на все DC немедленно. Это не требует перезагрузки домена, только DC. Дистрибутив есть в Windows Update и Microsoft Update Catalog. На WSUS-управляемых средах - принудительное одобрение и немедленная доставка, не дожидаясь очередного цикла.
- Шаг 2: проверить, что патч встал.
Get-HotFix -ComputerName <DC> -Id KB4571694- минута на каждый DC. - Шаг 3: активировать enforcement mode не дожидаясь февраля. Это реестровый ключ
FullSecureChannelProtection = 1вHKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters. Чем раньше - тем лучше, но только после проверки логов. - Шаг 4: проверить логи на следы эксплуатации. Event ID 5829 (Netlogon) - подключения с незащищёнными каналами. Если они есть - разбираться что за клиенты, и не было ли атаки до патча.
Как мы это раскатывали
У одного из клиентов - четыре DC, два из них на Windows Server 2016, два на 2012 R2. WSUS есть, но KB4571694 не был одобрен - ушёл в очередь вместе с остальными августовскими обновлениями.
Одобрили вручную, принудительно запустили синхронизацию на всех DC через wuauclt /detectnow и Start-WindowsUpdate (через PSWindowsUpdate, где модуль установлен). На двух DC патч встал в течение 20 минут, на третьем пришлось установить вручную через msu-файл - WSUS-агент залип. На четвёртом DC 2012 R2 нужен был другой KB для этой версии (KB4571702), что требует отдельного внимания при разворачивании.
После установки на каждом DC немедленно проверили Event Log - System и System журнал Netlogon. Event ID 5827 и 5828 (заблокированные небезопасные соединения) в compatibility mode не появляются, они будут только после включения enforcement. Зато Event ID 5829 уже пишется - незащищённые соединения в лог попадают. У клиента их было несколько штук: два от старых принт-серверов на Windows Server 2008 R2 (там нет современного клиента Netlogon), один - от NAS-устройства со встроенным Samba-клиентом старой версии.
Это важный момент: если просто включить enforcement mode сейчас, эти три устройства потеряют возможность аутентифицироваться в домене. Принт-серверы замолчат, доступ к шарам на NAS пропадёт. Поэтому:
- 2008 R2 серверам нужно обновление (KB4571729 для 2008 R2 с ESU) или миграция - они являются источником уязвимых Netlogon-сессий
- NAS с Samba - отдельный разговор с вендором или обновление Samba до версии с поддержкой защищённых каналов
Enforcement mode для этого клиента включили только после того, как разобрались с этими тремя машинами. Принт-серверы получили патч (у клиента ESU куплен), NAS перевели на NTLM-аутентификацию на отдельном аккаунте с ограниченными правами в ожидании обновления прошивки.
Следы эксплуатации: на что смотреть
Если патч уже стоит, но подозрения есть - стоит проверить Event Log до момента установки. В Windows Event Log для Netlogon нет детальной истории до патча (логирование началось только с ним), поэтому смотрим косвенные признаки:
- Изменения пароля компьютерных учётных записей DC$ в Security Log (Event ID 4723, 4724) в нехарактерное время
- Новые доверительные отношения или изменения в конфигурации домена
- Появление новых административных учётных записей или изменение членства в Domain Admins
- Аномалии в Kerberos-тикетах (Event ID 4768, 4769) с нестандартных источников
У этого клиента ничего подозрительного не нашли. Но это не значит, что так будет у всех - временное окно с августа по сентябрь было достаточно долгим.
Дальше
Включение enforcement mode - это не конец истории. Microsoft анонсировала, что в феврале 2021 года enforcement включится принудительно для всех, у кого установлены свежие обновления. К этому времени нужно разобраться со всеми legacy-клиентами, которые используют незащищённые Netlogon-соединения. Список из Event ID 5829 - это и есть рабочий беклог.
Zerologon - хороший напоминатель, что patch management не должен быть процессом «по расписанию». Критические уязвимости с публичным PoC требуют реакции в рамках часов, а не следующего maintenance window. Если хотите понять, как выглядит реальная картина с патч-менеджментом и экспозицией уязвимостей в вашей инфраструктуре - аудит безопасности даёт ответ без розовых очков.