
ZeroLogon实验室介绍
Лабораторная настройка для тестирования уязвимости эксплойта ZeroLogon (CVE-2020-1472). Включает Python-скрипт, использующий библиотеку Impacket для проверки уязвимости, и виртуальную машину (VM) с Windows Server 2019, настроенную как контроллер домена (DC).
Скрипт пытается выполнить обход аутентификации Netlogon. Он немедленно завершится при успешном выполнении обхода, и не будет выполнять никаких операций Netlogon. Когда DC пропатчен, скрипт обнаружения прекратит работу после отправки определенного количества пар RPC-вызовов и сделает вывод, что цель не уязвима (с вероятностью ложного отрицания 0.04%).
Опционально
Просто введите vagrant up, чтобы загрузить уязвимую сборку Windows Server 2019 в качестве VM.
Затем настройте VM как контроллер домена, следуя этому руководству.
Наконец, запустите атаку на DC (zerologon_tester.py).
Рекомендуется использовать докеризированную версию этой атаки или в виртуальном окружении.
Вариант с Docker. Выполните:
# NOTE: On Windows, you may need to enable the `Hyper-V` Wiwndows feature.
# NOTE2: On Windows, you may need to switch to `Linux Containers`.
$ docker build -f Dockerfile . -t zerologon
# This command run the zerologon test on the DC with domain VAGRANT in the address 192.168.33.10
$ docker run zerologon VAGRANT 192.168.33.10
Вариант с VirtualEnv. Выполните:
$ python3 -m virtualenv zerologon
$ zerologon/Scripts/Activate.ps1
# NOTE: This may give you some issues with your firewall!!
$ pip install git+https://github.com/SecureAuthCorp/impacket
$ pip install -r requirements.txt
$ python zerologon_tester.py VAGRANT 192.168.33.10
Результат этой атаки должен выглядеть примерно так:

Этот скрипт предназначен только для проверки работоспособности атаки, он не эксплуатирует сервер никаким иным образом. Скрипт не вносит никаких изменений в DC. Если вам интересно, как реализовать PoC-атаку, ознакомьтесь с этой статьей или подобной.
Цели скрипта могут использоваться для атаки на DC или резервный DC. Вероятно, он также работает против DC только для чтения, но это не было проверено. Имя DC должно быть его сетевым именем NetBIOS. Если это имя неверно, скрипт, вероятно, завершится с ошибкой STATUS_INVALID_COMPUTER_NAME. Технический документ об этой уязвимости будет опубликован здесь.
ПРИМЕЧАНИЕ: Если что-то пошло не так и вы получили ошибку
STATUS_INVALID_COMPUTER_NAME, выполнитеnbtstat -A 192.168.33.10; это даст вам представление о том, что происходит по этому адресу. В противном случае вы всегда можете проверить, доступна ли машина с вашего хоста, выполнив пинг (ping 192.168.33.10).ПРИМЕЧАНИЕ2: Если атака не удалась, возможно, машина была обновлена с помощью исправлений безопасности. Проверьте обновления и удалите все, что похоже на
Security Patchesначиная с 2020 года.