CVE-2020-1472 (ZeroLogon) Демонстрация обнаружения и смягчения
Этот проект демонстрирует обнаружение и смягчение критической уязвимости Windows CVE-2020-1472, также известной как ZeroLogon. Уязвимость позволяет злоумышленникам получить неаутентифицированный административный доступ. Проект был разработан в рамках школьного проекта по кибербезопасности. Авторство PoC кода принадлежит Tom Tervoort (Secura), а авторство набора правил Suricata — Proofpoint Emerging Threats.
Ключевые компоненты:
- Тестирование уязвимости контроллера домена с помощью PoC-скрипта
- Мониторинг индикаторов через Журналы событий Windows
- Внедрение Suricata IDS с пользовательскими правилами
- Установка обновлений Windows
Продемонстрированные методы обнаружения
1. Скрипт тестирования уязвимости
- Python-скрипт от Tom Tervoort (Secura)
- Использует библиотеку
impacket для проверки уязвимости контроллера домена через обход аутентификации Netlogon
2. Анализ журналов событий Windows
Обратите внимание на эти ключевые события:
4624: Успешный вход с использованием учётных данных DC
4672: Назначены особые привилегии злоумышленнику (например, администратор)
5805: События ошибок Netlogon (индикатор эксплуатации)
3. Обнаружение вторжений с помощью Suricata
- Использует Suricata для анализа сетевого трафика на контроллере домена
- Внедряет пользовательские правила из набора правил Proofpoint Emerging Threats
- Обнаруживает последовательности нулевых байтов, часто используемые в эксплойте ZeroLogon
Требования
Для воспроизведения данной демонстрации требуется следующая настройка:
Машина атакующего
Целевая машина
- VirtualBox (та же конфигурация NATNetwork с включённым неразборчивым режимом)
- Windows Server 2019 Essentials (обновлённый сентябрь 2019)
- Создан новый домен и DC (используя сервер целевой машины как DC)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- Файл правил из репозитория Proofpoint Emerging Threats Rules
emerging-all.rules by Proofpoint
Примечание по конфигурации:
Конфигурация Suricata была изменена с помощью Notepad++:
HOME_NET был установлен на IP-адрес целевой машины
- Раздел
rule-files был обновлён для использования файла emerging-all.rules
Демонстрация подходов к обнаружению
Шаг 1: Узнайте имя компьютера и IP-адрес целевой машины
- Откройте Server Manager.
- Перейдите в Local Server. Запомните имя компьютера и IP-адрес, указанные в разделе Ethernet. В данной демонстрации имя компьютера — FTB4-Victim-Win, а IP-адрес — 10.0.2.4

Шаг 2: Запустите скрипт тестирования уязвимости
- На машине атакующего откройте терминал
- Выполните Python-скрипт тестирования с именем компьютера и IP-адресом целевой машины:
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- Скрипт завершится сообщением о том, что контроллер домена может быть полностью скомпрометирован атакой ZeroLogon.

Шаг 3: Анализ журнала событий Windows
- Теперь на целевой машине запустите Event Viewer. Иконка находится на панели задач.
- Перейдите в Windows Logs, затем Security.
- Как показано ниже, есть два события безопасности, связанные с обходом ZeroLogon: Event 4672 и Event 4624.


- Перейдите в System, также в Windows Logs. Прокрутите вниз, пока не увидите событие с уровнем Error и источником NETLOGON. Выберите его. Это ещё одно событие, связанное с обходом ZeroLogon.

- Вы можете закрыть Windows Event Viewer.
Шаг 4: Обнаружение вторжений с помощью Suricata
- На целевой машине откройте командную строку от имени администратора.
- Выполните следующую команду для запуска Suricata:
cd C:\Program Files\Suricata\
- Выполните следующую команду с соответствующим IP-адресом
suricata -c suricata.yaml -i <target IP> -l log

- Откройте File Explorer по иконке на панели задач. Перейдите в
C:\Program Files\Suricata\log
- Введите
powershell в адресной строке и нажмите Enter. Запустится Windows PowerShell.

- В Windows PowerShell введите
get-content .\fast.log -wait и нажмите Enter. Игнорируйте все предыдущие логи, так как они от предыдущего тестирования, и прокрутите вниз до пустого места.

- На машине атакующего снова запустите Python-скрипт тестирования.
- Теперь вернитесь на целевую машину и обратите внимание на новые сгенерированные предупреждения. Эти предупреждения указывают на попытку или эксплуатацию ZeroLogon.

- Вы можете закрыть окна Windows PowerShell и командной строки.
- Откройте
fast.txt. Логи сохраняются в этом файле.

Демонстрация подхода к смягчению
Наиболее эффективное смягчение для CVE-2020-1472 (ZeroLogon) — установить последние обновления безопасности Windows.
Шаги:
- На целевой машине откройте приложение Параметры.
- Перейдите в «Обновление и безопасность» → «Центр обновления Windows»
- Нажмите «Проверить наличие обновлений» и разрешите системе загрузить и установить последние обновления.
- Перезагрузите машину, если потребуется.

Эти обновления применяют исправление Microsoft для уязвимости ZeroLogon, обеспечивая использование безопасного удалённого протокола и включая режим принудительного применения по умолчанию на контроллерах домена.
Примечание об ограничениях
Методы обнаружения и смягчения, продемонстрированные в этом проекте, предназначены для образовательных целей в контролируемой лабораторной среде. Хотя они эффективно иллюстрируют концепции, лежащие в основе CVE-2020-1472 (ZeroLogon), у них есть ограничения, и они не являются полностью практичными для развёртывания в реальных корпоративных средах. Поскольку это школьный проект, основное внимание уделяется изучению и пониманию методов кибербезопасности, а не внедрению решений производственного уровня.