Vander
Staff member
- Nov 10, 2019
- 468
- 1,158
Вектор исполнения (вектор инициализации, initialization vector, IV)
- Случайная или псевдослучайная последовательность символов, которую добавляют к ключу шифрования для повышения его безопасности. Вектор исполнения (Initialization Vector или IV) затрудняет определение закономерностей в ряду данных, содержащих криптографические подписи, и делает их более устойчивыми ко взлому.
- Вектор исполнения не требует шифрования и обычно передается вместе с криптографическим ключом. Иногда IV формируется по определенным правилам на основании самой подписи. В этом случае необходимость передавать его получателю отпадает, так как последний может восстановить вектор исполнения самостоятельно.
PoC Zerologon
-
dirkjanm/CVE-2020-1472
PoC for Zerologon - all research credits go to Tom Tervoort of Secura - dirkjanm/CVE-2020-1472github.com
Microsoft выпустила первый из двух исправлений в августе 2020 года, и их необходимо применить ко всем контроллерам домена.
Эта уязвимость использует криптографический изъян в Microsoft Active Directory Netlogon Remote Protocol (MS-NRPC), который позволяет пользователям входить на серверы, использующие NTLM (NT LAN Manager). Самая большая проблема с этой уязвимостью заключается в том, что MS-NRPC также используется для передачи определенных изменений учетной записи, например паролей учетных записей компьютерных служб. Если вернуться к его происхождению, можно увидеть причину добавления этой функции, но отсутствие проверки в источнике запроса на изменение этих паролей стало серьезной проблемой безопасности.
- Удаленный протокол Netlogon (другое название — MS-NRPC) — это интерфейс RPC, используемый только устройствами, подключенными к домену. MS-NRPC включает метод проверки подлинности и метод создания безопасного канала Netlogon. Эти обновления внедряют определенное поведение клиента Netlogon для применения безопасного удаленного вызова процедур (RPC) с помощью безопасного канала Netlogon между компьютерами участников и контроллерами домена (DC) Active Directory (AD).
Отсюда становится еще хуже. Шифрование, добавленное к MS-NRPC, было выбрано неразумно. В 1883 году голландский криптограф Агусте Керкхофф опубликовал 2 эссе под названием La Cryptographie Militaire (Военная криптография), в которых изложены 6 ключевых принципов проектирования криптографических систем. Самый известный из них, принцип Керкхоффа, гласит, что мы должны держать наш криптографический ключ в секрете, но мы не должны полагаться на секретность алгоритма для защиты наших данных. Другой способ сказать, что сегодня мы должны использовать хорошо известные, проверенные и проверенные алгоритмы.
Первоначально для шифрования процесса входа в систему в Windows NT использовался алгоритм 2DES, который, как мы теперь знаем, имеет проблемы. Сегодня MS-NRPC использует Advanced Encryption Standard (AES), который считается эталоном шифрования.
- Advanced Encryption Standard (AES), также известный как Rijndael - симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется, как это было с его предшественником DES.
В дополнение к выбору проверенного и надежного алгоритма необходимо выбрать дополнительные настройки для обеспечения адекватной прочности. MS-NRPC использует непонятную настройку, известную как AES-CFB8 (Advanced Encryption Standard - Cipher Feedback 8 bit). AES-CFB8 неясен, потому что он малоизвестен и плохо протестирован.
Cipher Feedback (CFB)
- Режим обратной связи по шифротексту, режим гаммирования с обратной связью. Во время шифрования каждый блок открытого текста складывается по модулю 2 с блоком, зашифрованным на предыдущем шаге.
Использование AES-CFB8 в MS-NRPC имеет проблему с вектором инициализации (IV), который должен быть случайным числом, но в MS-NRPC он зафиксирован на значении 16 байт нулей. Это совсем не случайность. Это предсказуемо.
Криптография часто нарушается там, где есть предсказуемость.
Откуда мы знаем об этой уязвимости?
Об уязвимости объявил в сентябре 2020 года Том Тервоорт, голландский исследователь, работающий в компании Secura. Фактически уязвимость была исправлена в августе, но только после того, как исследователь опубликовал свой отчет в сентябре, мы начали замечать POC и другую активность. После статьи Тервоорта подробно описывает его открытие и процесс, который к нему привел. Во время своего исследования он заметил существенный недостаток информации о MS-NRPC. Заинтригованный, Тервурт начал искать дополнительную информацию.
Хотя Тервоорт изначально искал атаку типа «человек в середине», он обнаружил еще одну уязвимость, подробно описанную в CVE-2020-1424. Продолжая свои исследования, он определил то, что теперь известно как Zerologon. Важнейшей частью его открытия является то, что Microsoft реализовала уникальный вариант криптографии, отличный от всех других протоколов RPC.
Во времена Windows NT учетные записи, назначенные компьютеру, не определялись как первоклассный принципал, поэтому Microsoft не могла использовать стандартизированный Kerberos или NTLM для аутентификации учетных записей компьютеров или компьютеров. В итоге разработчики выделили альтернативу. Невероятно сложно создать код и протоколы для шифрования, которые невозможно взломать.
На самом деле, может пройти невероятно много времени, прежде чем недостатки будут обнаружены, как здесь.
Как работает атака?
Эта уязвимость позволяет хакеру получить контроль над контроллером домена (DC), включая корневой DC. Это делается путем изменения или удаления пароля учетной записи службы на контроллере. Затем хакер может просто вызвать отказ в обслуживании или захватить и завладеть всей сетью.
Чтобы злоумышленники могли воспользоваться этой уязвимостью, они должны иметь возможность установить сеанс TCP с контроллером домена. Если они физически находятся внутри сети, они могут находиться за столом пользователя или у открытого порта в таком месте, как конференц-зал. Эти эксплойты квалифицируются как инсайдерские атаки - самые дорогостоящие атаки для бизнеса на сегодняшний день. Их можно установить извне сети, если они смогут где-нибудь закрепиться, чтобы установить сеанс TCP с контроллером.
Используя AES-CFB8 с фиксированным значением IV, равным 16 байтам нулей, Тервоорт обнаружил, что существует вероятность того, что один из каждых 256 используемых ключей создаст зашифрованный текст, имеющий значение всех нулей. Это чрезвычайно небольшое количество ключей, чтобы злоумышленник попытался создать зашифрованный текст из всех нулей. Для этого компьютеру хакера потребуется не более 2-3 секунд.
Если машина, обменивающаяся данными с контроллером домена, принадлежит пользователю, который как обычно ведет свой день, реальной проблемы нет. Это плохо построенный зашифрованный текст, но процесс сетевой аутентификации будет работать. Проблема проявляется только тогда, когда хакер пытается использовать систему.
В атаке, доказанной Tervoort, хакеру сначала нужно было подделать учетные данные или пароль клиента в сети. Из-за плохой реализации IV в MS-NRPC требуется всего около 256 попыток, чтобы сделать это правильно. Обычно учетная запись пользователя блокируется после трех попыток угадать пароль, но этого нельзя сказать о компьютерной или машинной учетной записи. Когда компьютер входит в систему, нет ограничений на количество попыток ввода неверного пароля, что позволяет хакерам за короткое время непрерывно предпринимать попытки проникнуть в систему. Они должны найти один из ключей, который создает полностью нулевой зашифрованный текст.
Что могут сделать хакеры, если они подделали идентификационные данные компьютера в сети?
После выполнения этого первого шага по подделке удостоверения злоумышленник не узнает фактический ключ шифрования для сеанса. Злоумышленники смогли подделать свою личность только после того, как наконец сгенерировали один из 256 ключей, который производит полностью нулевой зашифрованный текст. Следующим шагом будет отключение «signing and sealing».
Signing and Sealing RPC - это механизм, используемый для шифрования транспорта в MS-NRPC. Это кажется логичным процессом, поскольку мы должны шифровать больше наших данных в пути, но в MS-NRPC это дополнительная функция, которая отключается, просто не устанавливая флаг в заголовке сообщения. После отключения подписи и запечатывания сообщения отправляются в открытом виде, и теперь хакеры смогут предпринимать любые действия, которые захотят, включая удаление пароля или установку для него другого значения. В феврале 2021 года Microsoft выпустит патч, требующий подписи и запечатывания.
Третий шаг - изменить пароль учетной записи, которая была подделана. Наиболее эффективным устройством, которое можно подделать, является сервер AD, предпочтительно даже корневой сервер AD. Чтобы изменить пароль, злоумышленники используют сообщение NetServerPasswordSet2 в MS-NRPC. Можно изменить пароль, просто отправив фрейм с желаемым новым паролем. Самый простой подход - удалить пароль или установить для него пустое значение - теперь хакер может войти в систему с помощью обычного процесса.
Глобальное влияние
В настоящее время доступно несколько общедоступных эксплойтов PoC, и если серверы AD не будут исправлены, компаниям может быть нанесен большой ущерб, поскольку атака может быть использована для внедрения программ-вымогателей в сеть.
Есть инструменты для проверки уязвимости ваших серверов. Tervoort и Secura выпустили инструмент на GitHub, чтобы проверить, исправлены ли ваши контроллеры домена, или определить, уязвимы ли они.
ZeroLogon testing script
Патч для CVE-2020-1472
В августе 2020 года Microsoft выпустила патч для CVE-2020-1472 (Zerologon). Все серверы AD (2008 R2 и выше) должны быть исправлены как можно скорее. Но среднее время от выпуска исправления до развертывания все еще слишком велико. Исследователи утверждают, что в средней организации для окончательной установки патча требуется от 60 до 150 дней (около 5 месяцев) после выпуска. Это известно как среднее время исправления (MTTP).
Более того, к сожалению, недавно выпущенный патч устраняет только половину проблемы. Microsoft выпустит вторую фазу исправления, которая будет включать фазу принудительного применения, 9 февраля 2021 года. В это время все устройства должны будут использовать режим безопасного канала, и если они этого не сделают, им будет отказано в доступе. Если есть старые несовместимые устройства, их придется вручную добавить в групповую политику, которая явно разрешает доступ к несовместимым устройствам.
Виртуальное исправление
Поскольку выпущенный патч - это только половина решения, необходимо предпринять дополнительные промежуточные шаги для защиты вашей сети, устройств и данных. Одна из таких защитных мер - подтвердить, что уязвимость существует. Три - это несколько инструментов, один из которых предоставлен Secura и Tervoort, которые уже доступны для обнаружения уязвимостей Zerologon на серверах AD.
Всегда следует применять традиционные меры безопасности для отслеживания скомпрометированных учетных записей и сетей, вредоносного трафика и других индикаторов компрометации. Системы обнаружения и предотвращения вторжений и программное обеспечение для защиты от вредоносных программ для сети и хост-устройств (всех конечных точек) для отслеживания программ-вымогателей, вирусов и других угроз имеют решающее значение.
Журналы необходимо собирать, централизовать и анализировать с помощью SIEM (Security Information & Event Manager). После анализа журналов должны появиться люди и процессы для реагирования на признаки взлома (IoC). Затем группа реагирования на инциденты с четкими процедурами и знаниями должна принять решение, чтобы определить степень компрометации и работать над ее разрешением.
Спасибо за внимание, материал подготовлен специально для protey.net