
Инструмент автоматического эксплойта Zerologon | CVE-2020-1472
Уязвимый протокол шифрования реализован вместо механизма аутентификации в протоколе netlogon. Неаутентифицированный злоумышленник может использовать уязвимость Zerologon, чтобы установить пустой (null) пароль учетной записи компьютера контроллера домена (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0). Таким образом, используя сгенерированные учетные данные, злоумышленник может получить доступ к контроллеру домена и получить учетные данные других пользователей. Получив учетные данные привилегированных пользователей, можно получить сессию с высокими привилегиями на контроллере домена.
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
python3 ADZero.py dc_ip
С помощью инструмента ADZero, разработанного командой Privia Security, можно получить сессию Command Prompt с привилегиями nt authority\system на контроллере домена, уязвимом к Zerologon.
При выполнении команды python3 ADZero.py dc_ip получается сессия Command Prompt на контроллере домена с IP-адресом dc_ip.
Инструмент ADZero отправляет запрос SMB login с нулевыми учетными данными для получения информации dc_name (имя компьютера) и dom_name (имя домена) целевого контроллера домена. Из полученного ответа можно извлечь dc_name (имя компьютера) и dom_name (домен) контроллера домена.
Уязвимость инициируется с использованием информации dc_name (имя компьютера), com_name (учетная запись компьютера, созданная добавлением символа $ в конце имени компьютера) и dc_ip (IP-адрес контроллера домена). В результате запроса по протоколу Netlogon Remote вызывается уязвимость, и пароль для com_name (учетная запись компьютера) устанавливается пустым (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0).
С помощью модуля secretdump.py (одного из модулей Impacket), используя учетную запись com_name, dom_name, dc_ip и пустой пароль, созданный для com_name, производится дамп хеша LM:NTLM пароля пользователя Administrator с контроллера домена. Также полученный хеш LM:NTLM записывается в файл с именем out.
Использование полученного хеша LM:NTLM с модулем smbexec.py из набора Impacket позволяет получить сессию Command Prompt на контроллере домена. Техника использования значения хеша LM:NTLM в качестве пароля называется Pass The Hash. Сессия meterpreter на контроллере домена может быть получена с помощью использования значения хеша LM:NTLM, записанного в файл out, с модулем эксплойта exploit/windows/smb/psexec в Metasploit Framework.
