Pentest обучение
October 29

Zerologon

CVE-2020-1472, или Zerologon, позволяет атакующему скомпрометировать учетную запись машинного аккаунта контроллера домена и получить доступ к содержимому всей базы Active Directory. Она получила звание одной из самых опасных уязвимостей, обнаруженных за последние годы. Для эксплуатации достаточно наличия сетевой связности с контроллером домена организации.

Zerologon — уязвимость в протоколе шифрования, который использует служба Netlogon. Протокол позволяет компьютерам проходить аутентификацию на контроллере домена и обновлять пароль своего аккаунта в Active Directory. Именно эта особенность делает Zerologon опасной. В частности, уязвимость позволяет атакующему выдать себя за контроллер домена и изменить его пароль. Злоумышленник получает доступ к контроллеру домена c наивысшими привилегиями, а следовательно — и к корпоративной сети. После изменения пароля атакующий может использовать учетную запись контроллера для проведения дальнейших атак, таких как DCSync, чтобы получить учетные записи Active Directory через репликацию.

Zerologon вызвана недостатком в схеме криптографической аутентификации, которую использует Netlogon Remote Protocol (MS-NRPC). Рукопожатие и аутентификация MS-NRPC предполагают использование режима AES-CFB8 (с 8-битным режимом обратной связи по шифротексту). Это вариант блочного шифра AES, который предназначен для работы с блоками входных данных по 8 байт вместо обычных 16 байт (128-бит).

Как обнаружилось, применение шифрования AES-CFB8 к состоящему из одних нулей открытому тексту приведет к такому же состоящему из одних нулей зашифрованному тексту. Это происходит из-за ошибки реализации для 1 из 256 ключей.

Согласно техническому документу Secura, процесс эксплуатации Zerologon состоит из трех этапов.

  1. Отправка нулевых байтов. Вместо отправки восьми случайных байтов атакующий отправляет 8 нулевых байтов. Злоумышленник повторяет отправку таких сообщений, пока сервер успешно не примет одно из них, и тем самым обходит процесс аутентификации. В случае с Zerologon для успешного соединения с сервером требуется в среднем 256 попыток отправки сообщения ClientChallenge, состоящего из одних нулей.
  2. Отключение механизма RPC signing and sealing. MS-NRPC использует механизм RPC signing and sealing для шифрования транспортного уровня. Обычно шифрование — обязательный процесс при передаче данных, но в MS-NRPC этот механизм не является обязательным и управляется клиентом. Сервер не будет отказывать в установлении соединения клиентам, которые не запрашивают использование шифрования. Это означает, что вы можете просто отключить шифрование в заголовке сообщения. Собственно, вторая стадия и заключается в отключении механизма RPC signing and sealing, чтобы сообщения отправлялись в открытом виде и атакующий мог использовать методы протокола MS-NRPC.
  3. Изменение пароля учетной записи. Третья стадия эксплуатации уязвимости Zerologon заключается в изменении пароля для учетной записи контроллера домена, соединение от имени которого было установлено ранее. Атакующие при помощи метода NetrServerPasswordSet в MS-NRPC могут изменить пароль учетной записи компьютера. Самый простой способ использования этого метода заключается в удалении текущего пароля или, другими словами, установке пароля в пустое значение. Также возможно изменить пароль, просто отправив запрос с предпочтительным новым паролем. После смены пароля атакующие могут использовать учетную запись контроллера домена для развития атаки, например, как упоминалось ранее, выполнить репликацию базы данных Active Directory.

PoC и эксплоиты

Первый PoC после успешного установления соединения немедленно завершит работу и не будет выполнять никаких действий через Netlogon.

Вот еще несколько версий эксплойта для разных ситуаций:
https://github.com/nccgroup/nccfsas/tree/main/Tools/SharpZeroLogon
https://github.com/dirkjanm/CVE-2020-1472

В Metasploit тоже есть модуль для эксплуатации этой уязвимости:

Обнаружение артефактов, оставленных эксплоитами

Первая стадия процесса эксплуатации — это фактически брутфорс. Эксплоит множество раз пытается аутентифицироваться с помощью Netlogon на контроллере домена с сообщением ClientChallenge, состоящим из 8 нулевых байт. Множественные неуспешные попытки аутентификации приводят к генерации события 5805 на контроллере домена.

Life-Hack Media:

Life-Hack - Жизнь-Взлом

Новости Кибербеза

Курсы по программированию

Юмор