Первый в мире буткит UEFI, обходящий безопасную загрузку UEFI на полностью обновленных системах UEFI, стал реальностью
Количество уязвимостей UEFI, обнаруженных за последние годы, и неудачи с их исправлением или отзывом уязвимых двоичных файлов в разумные сроки не остались незамеченными злоумышленниками. В результате первый общеизвестный буткит UEFI, обходящий важную функцию безопасности платформы — UEFI Secure Boot, — стал реальностью. В этом блоге мы представляем первый публичный анализ этого буткита UEFI, который может работать даже на полностью обновленных системах Windows 11 с включенной функцией безопасной загрузки UEFI. Функциональность буткита и его отдельные особенности наводят нас на мысль, что мы имеем дело с буткитом, известным как Черный лотос, буткит UEFI продается на хакерских форумах за 5,000 долларов как минимум с октября 2022 года.
Буткиты UEFI представляют собой очень мощные угрозы, имеющие полный контроль над процессом загрузки ОС и, таким образом, способные отключать различные механизмы безопасности ОС и развертывать собственные полезные нагрузки режима ядра или пользовательского режима на ранних этапах запуска ОС. Это позволяет им действовать очень скрытно и с высокими привилегиями. До сих пор в дикой природе были обнаружены и публично описаны лишь некоторые из них (например, множественные вредоносные образцы EFI мы обнаружили в 2020 году, или полнофункциональные буткиты UEFI, такие как наше открытие в прошлом году — Буткит ESPecter - или Буткит FinSpy обнаружили исследователи из «Лаборатории Касперского»).
Буткиты UEFI могут проигрывать в скрытности по сравнению с имплантатами прошивки, такими как LoJax; первый в дикой природе имплант прошивки UEFI, обнаруженный нашей командой в 2018 году, поскольку буткиты расположены на легкодоступном разделе диска FAT32. Тем не менее, работа в качестве загрузчика дает им почти те же возможности, что и имплантированные прошивки, но без необходимости преодолевать многоуровневую защиту флэш-памяти SPI, такую как биты защиты BWE, BLE и PRx, или защиту, обеспечиваемую аппаратным обеспечением (например, Intel Boot Guard). ). Конечно, UEFI Secure Boot стоит на пути буткитов UEFI, но существует значительное количество известных уязвимостей, которые позволяют обойти этот важный механизм безопасности. И хуже всего то, что некоторые из них все еще легко эксплуатируются на современных системах даже на момент написания этой статьи, включая ту, которую использует BlackLotus.
Наше расследование началось с нескольких обращений к тому, что оказалось компонентом пользовательского режима BlackLotus — загрузчиком HTTP — в нашей телеметрии в конце 2022 года. После первоначальной оценки шаблоны кода, обнаруженные в образцах, привели нас к обнаружению шести BlackLotus. инсталляторы (как на VirusTotal, так и в собственной телеметрии). Это позволило нам изучить всю цепочку выполнения и понять, что мы имеем дело не с обычным вредоносным ПО.
Ниже приведены ключевые моменты о BlackLotus и временная шкала, обобщающая серию событий, связанных с ним:
- Он может работать в последних, полностью исправленных системах Windows 11 с включенной безопасной загрузкой UEFI.
- Он использует уязвимость более чем годовалой давности (CVE-2022-21894), чтобы обойти UEFI Secure Boot и настроить постоянство для буткита. Это первое публично известное фактическое злоупотребление этой уязвимостью.
- Хотя уязвимость была исправлена в обновлении Microsoft от января 2022 года, ее эксплуатация по-прежнему возможна, поскольку действительно подписано бинарники до сих пор не добавлены в Список отзыва UEFI. BlackLotus использует это в своих интересах, добавляя в систему собственные копии законных, но уязвимых двоичных файлов, чтобы использовать уязвимость.
- Он способен отключать механизмы безопасности ОС, такие как BitLocker, HVCI и Защитник Windows.
- После установки основной целью буткита является развертывание драйвера ядра (который, среди прочего, защищает буткит от удаления) и загрузчика HTTP, отвечающего за связь с C&C и способного загружать дополнительные полезные нагрузки пользовательского режима или режима ядра. .
- BlackLotus рекламируется и продается на подпольных форумах как минимум с 6 октября.th, 2022. В этом посте мы представляем доказательства того, что буткит настоящий, а реклама — не просто мошенничество.
- Интересно, что некоторые из проанализированных нами установщиков BlackLotus не продолжают установку буткита, если скомпрометированный хост использует одну из следующих локалей:
- Румынский (Молдова), ro-MD
- Русский (Молдова), ru-MD
- Русский (Россия), ru-RU
- Украинский (Украина) , uk-UA
- Белорусский (Беларусь), be-BY
- Армянский (Армения), hy-AM
- Казахский (Казахстан), kk-KZ
Хронология отдельных событий, связанных с BlackLotus, показана на рисунке 1.
Как уже было сказано, буткит продается на подпольных форумах как минимум с 6 октября.th, 2022. На данный момент мы не смогли определить по нашей телеметрии точный канал распространения, используемый для распространения буткита среди жертв. Небольшое количество образцов BlackLotus, которые нам удалось получить как из общедоступных источников, так и из нашей телеметрии, заставляет нас полагать, что еще немногие злоумышленники начали его использовать. Но до тех пор, пока не произойдет отзыв уязвимых загрузчиков, от которых зависит BlackLotus, мы обеспокоены тем, что ситуация быстро изменится, если этот буткит попадет в руки известных преступных группировок, основываясь на простоте развертывания буткита и возможностях групп преступных программ для распространения. вредоносное ПО с помощью своих ботнетов.
Это действительно BlackLotus?
Есть несколько статей или сообщений, обобщающих информацию о BlackLotus (здесь, здесь и здесь и многое другое…), все основано на информации, предоставленной разработчиком буткита на подпольных хакерских форумах. Пока никто не подтвердил и не опроверг эти утверждения.
Вот наш краткий обзор утверждений из доступных публикаций по сравнению с тем, что мы обнаружили при обратном проектировании образцов буткита:
- В рекламе BlackLotus на хакерских форумах утверждается, что он имеет встроенный обход Secure Boot.. Добавление уязвимых драйверов в список отзыва UEFI в настоящее время невозможно, поскольку уязвимость затрагивает сотни загрузчиков, которые используются до сих пор. ✅
- Верно: использует CVE-2022-21894 чтобы нарушить безопасную загрузку и обеспечить сохранение в системах с поддержкой UEFI-Secure-Boot. Уязвимые драйверы, которые он использует, до сих пор не отозваны в последней версии. DBX, на момент написания.
- В рекламе BlackLotus на хакерских форумах утверждается, что буткит имеет встроенную защиту Ring0/Kernel от удаления. ✅
- Верно: его драйвер ядра защищает дескрипторы, принадлежащие его файлам в системном разделе EFI (ESP), от закрытия. В качестве дополнительного уровня защиты эти дескрипторы постоянно отслеживаются, и при закрытии любого из этих дескрипторов запускается синий экран смерти (BSOD), как описано в Защита файлов буткита на ESP от удаления .
- В рекламе BlackLotus на хакерских форумах утверждается, что он поставляется с функциями защиты от виртуальных машин (анти-VM), защиты от отладки и обфускации кода для блокировки попыток анализа вредоносных программ. ✅
- Верно: он содержит различные методы защиты от виртуальных машин, отладки и запутывания, которые усложняют репликацию или анализ. Однако ни о каких прорывных или продвинутых методах антианализа здесь речь точно не идет, так как их можно легко преодолеть без особых усилий.
- В рекламе BlackLotus на хакерских форумах утверждается, что его цель — действовать как HTTP-загрузчик. ✅
- Верно: его последний компонент действует как HTTP-загрузчик, как описано в HTTP-загрузчик .
- В рекламе BlackLotus на хакерских форумах утверждается, что загрузчик HTTP запускается под учетной записью SYSTEM внутри легитимного процесса. ✅
- Верно: его HTTP-загрузчик работает внутри winlogon.exe контекст процесса.
- В рекламе BlackLotus на хакерских форумах утверждается, что это крошечный буткит размером всего 80 КБ на диске. ✅
- Правда: образцы, которые нам удалось получить, действительно имеют размер около 80 КБ.
- В рекламе BlackLotus на хакерских форумах утверждается, что он может отключить встроенные средства защиты Windows, такие как HVCI, Bitlocker, Защитник Windows, и обойти контроль учетных записей (UAC). ✅
Основываясь на этих фактах, мы с большой уверенностью считаем, что буткит, который мы обнаружили в дикой природе, является буткитом BlackLotus UEFI.
Обзор атаки
Упрощенная схема цепочки компрометации BlackLotus представлена на рисунке 2. Она состоит из трех основных частей:
- Он начинается с выполнения установщика (шаг 1 на рис. 2), который отвечает за развертывание файлов буткита в системном разделе EFI, отключение HVCI и BitLocker, а затем перезагрузку машины.
- После первой перезагрузки эксплуатация CVE-2022-21894 и последующая регистрация Ключ владельца машины (MOK) для обеспечения устойчивости даже в системах с включенной безопасной загрузкой UEFI. Затем машина снова перезагружается (шаги 2–4 на рис. 2).
- При всех последующих загрузках выполняется самоподписанный буткит UEFI, который развертывает как драйвер ядра, так и полезную нагрузку пользовательского режима — загрузчик HTTP. Вместе эти компоненты могут загружать и выполнять дополнительные компоненты пользовательского режима и драйвера с C&C-сервера и защищать буткит от удаления (шаги 5–9 на рис. 2).
Интересные артефакты
Несмотря на то, что мы полагаем, что это буткит BlackLotus UEFI, мы не нашли никаких ссылок на это имя в проанализированных нами образцах. Вместо этого код полон ссылок на Игураши, когда они плачут аниме-сериалы, например, в именах отдельных компонентов, таких как higurashi_installer_uac_module.dll и higurashi_kernel.sys, а также в самоподписанном сертификате, используемом для подписи бинарного файла буткита (показан на рис. 3).
Кроме того, код расшифровывает, но никогда не использует различные строки, содержащие сообщения от автора BlackLotus (как показано на рисунке 4 — обратите внимание, что хашерезада — известный исследователь и автор различных инструментов для анализа вредоносного ПО), или просто случайные цитаты из разных песен, игр или сериалов.
процесс установки
Начнем с анализа установщиков BlackLotus. Буткит, похоже, распространяется в виде установщиков, которые бывают двух версий — офлайн и онлайн. Разница между ними заключается в том, как они получают законные (но уязвимые) двоичные файлы Windows, которые позже используются для обхода безопасной загрузки.
- В офлайн-версиях бинарники Windows встроены в установщик.
- В онлайн-версиях двоичные файлы Windows загружаются непосредственно из хранилища символов Microsoft. До сих пор мы наблюдали злоупотребление буткитом BlackLotus следующими бинарными файлами Windows:
- https://msdl.microsoft.com/download/symbols/bootmgfw.efi/7144BCD31C0000/bootmgfw.efi
- https://msdl.microsoft.com/download/symbols/bootmgr.efi/98B063A61BC000/bootmgr.efi
- https://msdl.microsoft.com/download/symbols/hvloader.efi/559F396411D000/hvloader.efi
Цель установщика ясна — он отвечает за отключение функций безопасности Windows, таких как шифрование диска BitLocker и HVCI, а также за развертывание нескольких файлов, включая вредоносный буткит, в ESP. После завершения он перезагружает скомпрометированную машину, чтобы сброшенные файлы выполняли свою работу — чтобы убедиться, что самоподписанный буткит UEFI будет автоматически выполняться при каждом запуске системы, независимо от состояния защиты UEFI Secure Boot.
Шаг 0 — Инициализация и (потенциальное) повышение прав
Когда установщик запускается, он проверяет, достаточно ли у него привилегий (по крайней мере, требуются права администратора) для развертывания остальных файлов в ESP и выполнения других действий, требующих повышенных прав, таких как отключение HVCI или отключение BitLocker. Если это не так, он пытается повысить уровень, снова запустив установщик, используя метод обхода UAC, подробно описанный здесь: Обход UAC с помощью помощника по совместимости программ.
Обладая необходимыми привилегиями, он продолжает проверку состояния безопасной загрузки UEFI, считывая значение переменной UEFI SecureBoot с помощью доступной функции Windows API, и определяя версию Windows, напрямую обращаясь к KUSER_SHARED_DATA поля структуры Нтмажорверсион и Нтминорверсион в памяти. Это делается для того, чтобы решить, необходим ли обход UEFI Secure Boot для развертывания буткита в системе жертвы (поскольку поддержка Secure Boot была впервые добавлена в Windows 8 и может быть не включена на какой-либо конкретной машине).
Прежде чем перейти к следующим шагам, он переименовывает законный диспетчер загрузки Windows (bootmgfw.efi) двоичный файл, расположенный в ESP:EFIMicrosoftBoot каталог для Winload.efi. Это переименовано bootmgfw.efi резервная копия позже используется буткитом для запуска ОС или для восстановления исходной цепочки загрузки, если с C&C-сервера получена команда «удалить» — подробнее в C&C связь .
Шаг 1 — Развертывание файлов
Если включена безопасная загрузка UEFI, установщик перетаскивает несколько файлов в ESP:/EFI/Майкрософт/загрузка/ и ЕСП:/system32/ каталоги. В то время как первый — это стандартный каталог, используемый Windows, второй — это пользовательская папка, созданная установщиком.
Список файлов, сброшенных установщиком, с кратким объяснением роли каждого файла в цепочке выполнения представлен в таблице 1. Мы подробно объясним, как работает цепочка выполнения позже; теперь просто обратите внимание, что несколько законных файлов, подписанных Microsoft, удаляются вместе с вредоносными.
Табл. 1. Файлы, развертываемые установщиком BlackLotus в системах с включенной функцией безопасной загрузки UEFI
Папка | Имя файла | Описание |
---|---|---|
ESP:EFIMicrosoftBoot | grubx64.efi | Буткит BlackLotus, вредоносное самоподписанное приложение UEFI. |
bootload.efi | Легальная подпись Microsoft шайба двоичный (временное имя, позже заменяет bootmgfw.efi после CVE-2022-21894 эксплуатации). | |
bootmgfw.efi | Законный, но уязвимый (CVE-2022-21894) Двоичный файл диспетчера загрузки Windows, встроенный в программу установки или загруженный непосредственно из Microsoft Symbol Store. | |
BCD | Обычай злоумышленников Данных конфигурации загрузки (BCD) хранилище, используемое в CVE-2022-21894 цепочка эксплуатации. | |
БКДР | Резервная копия оригинального хранилища BCD жертвы. | |
ЕСП: система32 | hvloader.efi | Законный, но уязвимый (CVE-2022-21894) Двоичный файл загрузчика гипервизора Windows, встроенный в установщик или загруженный непосредственно из Microsoft Symbol Store. |
bootmgr.efi | Законный, но уязвимый (CVE-2022-21894) Двоичный файл диспетчера загрузки Windows, встроенный в установщик или загруженный непосредственно из Microsoft Symbol Store. | |
mcupdate_AuthenticAMD.dll | Вредоносный самоподписанный собственный двоичный файл PE. Этот файл выполняется программой hvloader.efi после успешной эксплуатации CVE-2022-21894 (в системах с процессором AMD). | |
mcupdate_GenuineIntel.dll | Вредоносный самоподписанный собственный двоичный файл PE. Этот файл выполняется программой hvloader.efi после успешного CVE-2022-21894 эксплуатации (в системах с процессором Intel). | |
BCD | Пользовательский BCD злоумышленников, используемый в CVE-2022-21894 цепочка эксплуатации. |
В случаях, когда жертва использует версию Windows, не поддерживающую UEFI Secure Boot, или в случае, когда она отключена, развертывание выполняется достаточно просто. Единственное, что необходимо для развертывания вредоносного буткита, — заменить существующий диспетчер загрузки Windows (bootmgfw.efi) бинарный в ESP:EFIMicrosoftBoot каталог с собственным самозаверяющим вредоносным приложением UEFI злоумышленников. Поскольку безопасная загрузка UEFI отключена (и, следовательно, во время загрузки не выполняется проверка целостности), эксплуатация не требуется, и прошивка UEFI просто запускает вредоносный менеджер загрузки, не вызывая никаких нарушений безопасности.
Шаг 2. Отключение целостности кода, защищенного гипервизором (HVCI)
Чтобы иметь возможность запускать пользовательский неподписанный код ядра позже, установщик должен убедиться, что HVCI отключен в системе. В 2022 году один из наших коллег из ESET написал очень информативную запись в блоге на эту тему (Подписанные драйверы ядра — незащищенный шлюз к ядру Windows):
Безопасность на основе виртуализации (VBS) предлагает несколько функций защиты, наиболее важной из которых является целостность кода, защищенная гипервизором (HVCI), которая также является отдельной функцией. HVCI обеспечивает целостность кода в ядре и позволяет выполнять только подписанный код. Он эффективно предотвращает злоупотребление уязвимыми драйверами для выполнения неподписанного кода ядра или загрузки вредоносных драйверов (независимо от используемого метода эксплуатации). основные мотивы Microsoft, реализующие эту функцию.
Как показано на рис. 5, чтобы отключить эту функцию, программа установки устанавливает значение реестра Enabled в Гипервизор ключ реестра на ноль.
Шаг 3 — Отключение BitLocker
Следующая функция, отключенная установщиком, это Шифрование диска BitLocker. Причина этого в том, что BitLocker можно использовать в сочетании с Модуль Trusted Platform Module (TPM) чтобы убедиться, что различные загрузочные файлы и конфигурации, включая безопасную загрузку, не были изменены, поскольку в системе было настроено шифрование диска BitLocker. Учитывая, что установщик изменяет цепочку загрузки Windows на скомпрометированном компьютере, сохранение включенного BitLocker для систем с поддержкой TPM приведет к отображению экрана восстановления BitLocker при следующей загрузке и подскажет жертве, что система была скомпрометирована.
Чтобы отключить эту защиту, установщик BlackLotus:
- просматривает все тома под RootCIMV2SecurityMicrosoftVolumeEncryption пространство имен WMI и проверяет состояние их защиты, вызывая GetProtectionStatus метод Win32_EncryptableVolume WMI класс
- для тех, кто защищен BitLocker, он вызывает ОтключитьKeyProtectors метод с Дисаблекаунт параметр установлен в ноль, что означает, что защита будет приостановлена до тех пор, пока она не будет включена вручную
При отключенной необходимой защите и развернутых файлах установщик регистрирует себя на удаление при следующем перезапуске системы и перезагружает машину, чтобы приступить к эксплуатации CVE-2022-21894.
Обход безопасной загрузки и обеспечение постоянства
В этой части мы более подробно рассмотрим, как BlackLotus обеспечивает постоянство в системах с включенной UEFI Secure Boot. Поскольку цепочка выполнения, которую мы собираемся описать, довольно сложна, мы сначала объясним основные принципы, а затем углубимся в технические детали.
Вкратце, этот процесс состоит из двух основных этапов:
- Использование CVE-2022-21894 для обхода функции безопасной загрузки и установки буткита. Это позволяет выполнять произвольный код на ранних этапах загрузки, когда платформа по-прежнему принадлежит микропрограмме, а функции UEFI Boot Services по-прежнему доступны. Это позволяет злоумышленникам делать многие вещи, которые они не должны делать на машине с включенной безопасной загрузкой UEFI, не имея к ней физического доступа, например, изменять переменные NVRAM только для служб загрузки. Этим и пользуются злоумышленники, чтобы на следующем шаге настроить персистентность буткита. Более подробную информацию об эксплуатации можно найти в Эксплуатация CVE-2022-21894 .
- Установка постоянства путем записи собственного MOK в Моклист, Переменная NVRAM только для служб загрузки. Делая это, он может использовать законный подписанный Microsoft шайба для загрузки своего самоподписанного (подписанного закрытым ключом, принадлежащим ключу, записанному в Моклист) буткит UEFI вместо использования уязвимости при каждой загрузке. Подробнее об этом в Буткит постоянство .
Чтобы упростить детальный анализ в следующих двух разделах, мы будем следовать шагам, показанным на диаграмме выполнения, рис. 6.
Эксплуатация CVE-2022-21894
Чтобы обойти безопасную загрузку, BlackLotus использует baton drop (CVE-2022-21894): уязвимость обхода функции безопасности безопасной загрузки. Несмотря на сильное влияние на безопасность системы, эта уязвимость не привлекла должного внимания общественности. Хотя уязвимость была исправлена в обновлении Microsoft за январь 2022 года, ее эксплуатация по-прежнему возможна, поскольку уязвимые двоичные файлы до сих пор не добавлены в Список отзыва UEFI. В результате злоумышленники могут принести свои собственные копии уязвимых двоичных файлов на машины своих жертв, чтобы использовать эту уязвимость и обойти безопасную загрузку в современных системах UEFI.
Более того, эксплойт Proof of Concept (PoC) для этой уязвимости был общедоступен с августа 2022 года. Учитывая дату первого представления BlackLotus VirusTotal (см. любая потребность в глубоком понимании того, как работает этот эксплойт.
Давайте начнем с краткого введения в уязвимость, в основном резюмируя ключевые моменты из статьи, опубликованной вместе с PoC на GitHub:
- Затронутые загрузочные приложения Windows (например, bootmgr.efi, hvloader.efi, Winload.efi…) позволяет удалить сериализованную политику безопасной загрузки из памяти — до того, как она будет загружена приложением — с помощью обрезать память Вариант загрузки BCD.
- Это позволяет злоумышленникам использовать другие опасные параметры BCD, такие как загрузочная отладка, тестовая подписьили nointegritychecks, тем самым нарушая безопасную загрузку.
- Существуют различные способы эксплуатации этой уязвимости — три из них опубликованы в репозитории PoC.
- В качестве примера, один из PoC показывает, как его можно использовать, чтобы сделать законным hvloader.efi загрузить произвольный, самоподписанный mcupdate_ .dll двоичный (где может быть GenuineIntel or AuthenticAMD, в зависимости от процессора машины.).
Теперь мы продолжим описание того, как BlackLotus использует эту уязвимость (номера в списке ниже обозначают соответствующие шаги на рис. 6):
- После того как установщик перезагрузит машину, прошивка UEFI продолжит загрузку первого варианта загрузки. Для систем Windows по умолчанию используется первый вариант загрузки. bootmgfw.efi расположен в ESP:/EFI/Майкрософт/загрузки папка на ESP. На этот раз, вместо того, чтобы казнить первоначальную жертву bootmgfw.efi (который ранее был переименован Winload.efi установщиком), прошивка выполняет уязвимую — развернутую установщиком.
- После bootmgfw.efi выполняется, он загружает параметры загрузки BCD, ранее измененные программой установки. На рис. 7 показано сравнение легитимного BCD и модифицированного.
- Как вы можете видеть на рис. 7 (путь подчеркнут зеленым), законный диспетчер загрузки Windows обычно загружает загрузчик ОС Windows (WINDOWSsystem32winload.efi) в качестве загрузочного приложения по умолчанию. Но на этот раз с измененным BCD он продолжает загрузку уязвимого ESP: system32bootmgr.efi, С избегайте низкой памяти Элементу BCD присвоено значение 0x10000000 и обычай: 22000023 Элемент BCD, указывающий на BCD другого злоумышленника, хранящийся в ESP: system32bcd. Объяснение использования этих элементов можно найти в опубликованных PoC:
Злоумышленник должен убедиться, что сериализованная политика безопасной загрузки размещена выше известного физического адреса.
[...]
Ассоциация избегайте низкой памяти Элемент может использоваться для обеспечения того, чтобы все выделения физической памяти находились выше указанного физического адреса.
• Начиная с Windows 10, этот элемент запрещен, если VBS включен, но поскольку он используется во время инициализации загрузочного приложения, до того, как сериализованная политика безопасной загрузки будет считана из памяти, загружая Bootmgr и указание пользовательского пути BCD (используя путь к файлу bcd элемент ака обычай: 22000023) можно использовать, чтобы обойти это.
- На следующем шаге выполняется ESP: system32bootmgr.efi загружает тот дополнительный BCD, расположенный в ESP: system32bcd. Проанализированное содержимое этого дополнительного BCD показано на рисунке 8.
- Из-за параметров, загруженных из файла BCD, показанного на рисунке 8, bootmgr.efi продолжает загрузку другого уязвимого загрузочного приложения Windows, развернутого установщиком — ESP: system32hvloader.efi — который является загрузчиком гипервизора Windows. Что еще более важно, дополнительные параметры BCD указаны в том же файле BCD (см. рис. 8):
- обрезать память со значением, установленным на 0x10000000
- nointegritychecks установить на Да
- и тестовая подпись, также установите значение Да
И здесь происходит волшебство. Поскольку сериализованная политика безопасной загрузки должна быть загружена по указанным выше физическим адресам 0x10000000 (потому что избегайте низкой памяти использованный на предыдущих шагах), указав обрезать память element эффективно удалит его — таким образом, сломается безопасная загрузка и разрешится использование опасных опций BCD, таких как nointegritychecks or тестовая подпись. Используя эти параметры, злоумышленники могут hvloader.efi выполнять свой собственный, самоподписанный код.
- Для этого используется тот же прием, что описан в PoC используется: во время его исполнения законный hvloader.efi загружает и выполняет mcupdate_{ПодлинныйIntel| AuthenticAMD}.dll родной бинарник из : система32 каталог. Закомментированный Hex-Rays декомпилированный код функции из hvloader.efi Ответственный за загрузку этого двоичного файла mcupdate*.dll показан на рисунке 9. Обратите внимание, что hvloader.efi обычно загружает это законное mcupdate*.dll двоичный файл из:Windowssystem32, но на этот раз самоподписанный mcupdate*.dll выполняется из пользовательского каталога ESP, ранее созданного установщиком (ЕСП: система32). Это вызвано параметрами BCD устройство и SystemRoot используется в BCD с рис. 8, определяя текущее устройство как лодка – что означает ESP – а также указание SystemRoot в качестве корня () на этом устройстве.
- Теперь, как самоподписанный mcupdate*.dll загружается и выполняется, он продолжает выполнение последнего компонента в этой цепочке — встроенного MokInstaller (приложение UEFI) — подробности о том, как это делается, см. на рис. 10.
Буткит постоянство
Теперь MokInstaller может приступить к настройке сохраняемости, зарегистрировав MOK злоумышленников в переменной NVRAM и настроив законный подписанный Microsoft шайба двоичный файл в качестве загрузчика по умолчанию. Прежде чем перейти к деталям, немного теории о шайба и МОК.
шайба — это загрузчик UEFI первого этапа, разработанный разработчиками Linux для обеспечения работы различных дистрибутивов Linux с безопасной загрузкой UEFI. Это простое приложение, и его целью является загрузка, проверка и выполнение другого приложения — в случае систем Linux это обычно загрузчик GRUB. Он работает таким образом, что Microsoft подписывает только шайба, и шайба позаботится обо всем остальном — он может проверить целостность загрузчика второго уровня, используя ключи из db UEFI, а также встраивает собственный список «разрешенных» или «отзываемых» ключей или хэшей, чтобы убедиться, что компоненты, которым доверяют как платформа, так и разработчик оболочки (например, Canonical, RedHat и т. д.), разрешены для выполнения. Помимо этих списков, шайба также позволяет использовать базу данных внешних ключей, управляемую пользователем, известную как список MOK. На рис. 11 хорошо показано, как работает безопасная загрузка UEFI с MOK.
Эта база данных MOK хранится в переменной NVRAM только для загрузки с именем Моклист. Без использования уязвимости, подобной описанной выше, для ее изменения в системе с включенной безопасной загрузкой UEFI требуется физический доступ (она доступна только во время загрузки, до того, как загрузчик ОС вызовет функцию UEFI Boot Services). ВыходBootServices). Однако, используя эту уязвимость, злоумышленники могут обойти безопасную загрузку UEFI и выполнить собственный самоподписанный код перед вызовом ВыходBootServices, поэтому они могут легко зарегистрировать свой собственный ключ (изменив Моклист NVRAM), чтобы оболочка выполняла любое приложение, подписанное этим зарегистрированным ключом, без нарушения безопасности.
- Продолжая описание потока на рис. 6 — шаг 8… Приложение MokInstaller UEFI продолжает настройку персистентности для буткита BlackLotus UEFI и заметает следы эксплуатации:
- Восстановление исходного хранилища BCD жертвы из резервной копии, созданной установщиком, и замена efi на легитимную прокладку, подписанную Microsoft, ранее сброшенную на ESP: system32bootload.efi установщиком.
- Создание Моклист Переменная NVRAM, содержащая самоподписанный сертификат открытого ключа злоумышленников. Обратите внимание, что эта переменная форматируется так же, как и любые другие переменные базы данных сигнатур UEFI (например, db или dbx), и может состоять из нуля или более списков сигнатур типа EFI_SIGNATURE_LIST – как определено в спецификации UEFI.
- Удаление всех файлов, задействованных в эксплуатации, из папки злоумышленников. ЕСП: система32 папку.
- В конце он перезагружает машину, чтобы развернутая прокладка выполнила самоподписанный буткит, сброшенный на EFMicrosoftBootgrubx64.efi установщик(grubx64.efi обычно является загрузчиком второго этапа по умолчанию, выполняемым шайба в системах x86-64).
Код, выполняющий действия, описанные в последних двух шагах, показан на рисунке 12.
Буткит BlackLotus UEFI
После настройки постоянства буткит BlackLotus запускается при каждом запуске системы. Цель буткита — развернуть драйвер ядра и последний компонент пользовательского режима — загрузчик HTTP. Во время своего выполнения он пытается отключить дополнительные функции безопасности Windows — безопасность на основе виртуализации (VBS) и Защитник Windows — чтобы повысить вероятность успешного развертывания и скрытой работы. Прежде чем перейти к подробностям о том, как это делается, давайте обобщим основы драйвера ядра и загрузчика HTTP:
- Драйвер ядра отвечает за
- Развертывание следующего компонента цепочки — HTTP-загрузчика.
- Сохранение загрузчика в случае завершения.
- Защита файлов буткита от удаления из ESP.
- Выполнение дополнительных полезных нагрузок ядра, если это указано загрузчиком HTTP.
- Удаление буткита по указанию HTTP-загрузчика.
- Загрузчик HTTP отвечает за:
- Общение с его C&C.
- Выполнение команд, полученных от C&C.
- Загрузка и выполнение полезных нагрузок, полученных от C&C (поддерживаются как полезные нагрузки ядра, так и полезные нагрузки пользовательского режима).
Полный поток выполнения (упрощенный) от установщика до загрузчика HTTP показан на рисунке 13. Мы опишем эти отдельные шаги более подробно в следующем разделе.
Поток выполнения BlackLotus
Шаги выполнения следующие (эти шаги показаны на рисунке 13):
- В качестве первого шага прошивка UEFI выполняет параметр загрузки Windows по умолчанию, который обычно хранится в EFIMicrosoftBootbootmgfw.efi. Как мы описали ранее (Раздел сохраняемости буткита, 8 .a), двоичный файл MokInstaller заменил этот файл законным подписанным шайба.
- Когда шайба выполняется, он считывает Моклист NVRAM и использует сертификат, ранее сохраненный внутри злоумышленниками, для проверки загрузчика второго этапа — самоподписанного буткита BlackLotus UEFI, расположенного в EFMicrosoftBootgrubx64.efi.
- При проверке будет шайба выполняет буткит.
- Буткит начинается с создания Boot-only ВбсПолицисабеле Переменная NVRAM. Как описано здесь, эта переменная оценивается загрузчиком ОС Windows во время загрузки, и если она определена, основные функции VBS, такие как HVCI и Credential Guard, не будут инициализированы.
- На следующих шагах (5. a–e) буткит продолжает работу с общим шаблоном, используемым буткитами UEFI. Он перехватывает выполнение компонентов, включенных в типичный процесс загрузки Windows, таких как диспетчер загрузки Windows, загрузчик ОС Windows и ядро ОС Windows, и перехватывает некоторые из их функций в памяти. В качестве бонуса он также пытается отключить Защитника Windows, исправляя некоторые из его драйверов. Все это для того, чтобы обеспечить выполнение своей полезной нагрузки на ранних этапах процесса запуска ОС и избежать обнаружения. Перехвачены или исправлены следующие функции:
- Приложение ImgArchStartBoot in bootmgfw.efi or bootmgr.efi:
Эта функция обычно перехватывается буткитами, чтобы поймать момент, когда загрузчик ОС Windows (Winload.efi) загружается в память, но еще не выполняется — это подходящий момент для выполнения дополнительных исправлений в памяти. - Блимгаллокатеимажебуфер in Winload.efi:
Используется для выделения дополнительного буфера памяти для вредоносного драйвера ядра. - ОслАрчТрансферТоКернел in Winload.efi:
Подключен, чтобы поймать момент, когда ядро ОС и некоторые системные драйверы уже загружены в память, но еще не запущены — это идеальный момент для выполнения дополнительных исправлений в памяти. Упомянутые ниже драйверы пропатчены в этом хуке. Код этого хука, отвечающего за поиск подходящих драйверов в памяти, показан на рисунке 14. - WdBoot.sys и WdFilter.sys:
BlackLotus исправляет точку входа WdBoot.sys и WdFilter.sys – драйвер ELAM Защитника Windows и драйвер фильтра файловой системы Защитника Windows соответственно – для немедленного возврата. - Disk.sys:
Буткит перехватывает точку входа Disk.sys драйвер для запуска драйвера ядра BlackLotus на ранних этапах инициализации системы.
- Приложение ImgArchStartBoot in bootmgfw.efi or bootmgr.efi:
- Далее, когда ядро ОС выполняет Disk.sys точки входа драйвера, установленный хук переходит к точке входа вредоносного драйвера ядра. Вредоносный код, в свою очередь, восстанавливает исходный Disk.sys чтобы система работала должным образом, и ждет, пока winlogon.exe процесс начинается.
- Когда вредоносный драйвер обнаруживает, что winlogon.exe процесс запущен, он внедряет и выполняет в нем последний компонент пользовательского режима — загрузчик HTTP.
Драйвер ядра
Драйвер ядра отвечает за четыре основные задачи:
- Внедрение загрузчика HTTP в winlogon.exe и повторно вводить его в случае завершения потока.
- Защита файлов буткитов, развернутых на ESP, от удаления.
- Снятие с охраны процесса Защитника Windows в пользовательском режиме MsMpEngine.exe.
- Взаимодействие с HTTP-загрузчиком и, при необходимости, выполнение любых команд.
Давайте посмотрим на них по очереди.
Постоянство загрузчика HTTP
Драйвер ядра отвечает за развертывание загрузчика HTTP. Когда драйвер запускается, он ждет, пока процесс с именем winlogon.exe начинается, прежде чем предпринимать какие-либо другие действия. Как только процесс запущен, драйвер расшифровывает бинарный файл HTTP-загрузчика, внедряет его в winlogon.exeадресное пространство и выполняет его в новом потоке. Затем драйвер периодически проверяет, работает ли поток, и при необходимости повторяет внедрение. Загрузчик HTTP не будет развернут, если драйвер обнаружит отладчик ядра.
Защита файлов буткита на ESP от удаления
Чтобы защитить файлы буткита, расположенные на ESP, драйвер ядра использует простой трюк. Он открывает все файлы, которые хочет защитить, дублирует и сохраняет их дескрипторы и использует Обсетхандлеатрибутес функция ядра, определяющая Защитить от закрытия флаг внутри РучкаФлаги (OBJECT_HANDLE_FLAG_INFORMATION) в 1 — таким образом защищая дескрипторы от закрытия любыми другими процессами. Это предотвратит любые попытки удалить или изменить защищенные файлы. Следующие файлы защищены:
- ESP:EFIMicrosoftBootwinload.efi
- ESP:EFIMicrosoftBootbootmgfw.efi
- ESP:EFIMicrosoftBootgrubx64.efi
Если пользователь попытается удалить эти защищенные файлы, произойдет что-то вроде того, что показано на рис. 15.
В качестве еще одного уровня защиты, в случае, если пользователь или программное обеспечение безопасности сможет снять флаг защиты и закрыть дескрипторы, драйвер ядра постоянно отслеживает их и вызывает BSOD, вызывая KeBugCheck (INVALID_KERNEL_HANDLE) функция, если какой-либо из дескрипторов больше не существует.
Снятие с охраны основного процесса Защитника Windows
Драйвер ядра также пытается обезвредить основной процесс Защитника Windows. MsMpEng.exe. Он делает это, удаляя все привилегии токена процесса, устанавливая SE_PRIVILEGE_REMOVED атрибут каждого из них. В результате процесс Защитника не сможет правильно выполнять свою работу, например сканирование файлов. Однако, поскольку эта функциональность плохо реализована, ее можно сделать неэффективной, перезапустив MsMpEng.exe процесс.
Связь с HTTP-загрузчиком
Драйвер ядра может взаимодействовать с загрузчиком HTTP, используя именованное событие и раздел. Имена используемых именованных объектов генерируются на основе MAC-адреса сетевого адаптера жертвы (ethernet). Если значение октета меньше 16, то к нему добавляется 16. Формат имен сгенерированных объектов может различаться в разных образцах. Например, в одной из проанализированных нами выборок для MAC-адреса 00-1c-0b-cd-ef-34, сгенерированные имена будут такими:
- БазовыеИменедОбжектс101c1b: для именованного раздела (используются только первые три октета MAC)
- БазовыеИменованныеОбъектыZ01c1b: для именованного события – то же, что и для Раздела, но первая цифра MAC-адреса заменяется на Z
В случае, если загрузчик HTTP хочет передать некоторую команду драйверу ядра, он просто создает именованный раздел, записывает команду со связанными данными внутри и ждет, пока команда будет обработана драйвером, создавая именованное событие и ожидая, пока драйвер запускает (или сигнализирует) это.
Драйвер поддерживает следующие не требующие пояснений команды:
- Установить драйвер ядра
- Удалить BlackLotus
Внимательный читатель может заметить здесь слабое место BlackLotus — несмотря на то, что буткит защищает свои компоненты от удаления, драйвер ядра можно обмануть, чтобы полностью удалить буткит, создав вышеупомянутые именованные объекты и отправив ему команду удаления.
HTTP-загрузчик
Последний компонент отвечает за связь с C&C-сервером и выполнение любых полученных от него C&C-команд. Все полезные нагрузки, которые нам удалось обнаружить, содержат три команды. Эти команды очень просты и, как следует из названия раздела, в основном касаются загрузки и выполнения дополнительных полезных данных с использованием различных методов.
C&C связь
Для связи со своим C&C загрузчик HTTP использует протокол HTTPS. Вся информация, необходимая для связи, встроена непосредственно в двоичный файл загрузчика, включая домены C&C и используемые пути ресурсов HTTP. Интервал связи с C&C по умолчанию установлен в одну минуту, но может быть изменен на основании данных с C&C. Каждый сеанс связи с C&C начинается с отправки ему POST-сообщения HTTP-маяка. В проанализированных нами образцах в заголовках HTTP POST можно указать следующие пути к ресурсам HTTP:
- /сеть/API/hpb_gate[.]php
- /API/hpb_gate[.]php
- /ворота[.]php
- /hpb_gate[.]php
Перед данными сообщения маяка стоит Checkin= строка, содержащая основную информацию о скомпрометированной машине, включая пользовательский идентификатор машины (называемый HWID), состояние безопасной загрузки UEFI, различную информацию об оборудовании и значение, похожее на номер сборки BlackLotus. HWID генерируется из MAC-адреса машины (ethernet) и серийного номера системного тома. Формат сообщения до шифрования показан на рис. 16.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ “HWID”:“%s”, “Session”:“%lu”, “Owner”:“%s”, “IP”:“%s”, “OS”:“%s”, “Edition”:“%s”, “CPU”:“%s”, “GPU”:“%s”, “RAM”:“%lu”, “Integrity”:“%lu”, “SecureBoot”:“%i”, “Build”:“%lu” } |
Рисунок 16. Формат сообщения маяка
Перед отправкой сообщения на C&C данные сначала шифруются с помощью встроенного ключа RSA, а затем кодируются в формате base64, безопасном для URL. В ходе анализа мы обнаружили, что в образцах используются два разных ключа RSA. Пример такого запроса HTTP-маяка показан на рисунке 17.
Данные, полученные от C&C в ответ на сообщение маяка, должны начинаться с двухбайтового магического значения HP; в противном случае ответ не обрабатывается дальше. Если магическое значение правильное, данные, следующие за магическим значением, расшифровываются с использованием 256-битного AES в режиме CBC с использованием вышеупомянутой строки HWID в качестве ключа.
После расшифровки сообщение похоже на маяк, строку в формате JSON и указывает идентификатор команды (называемый Тип) и различные дополнительные параметры, такие как:
- Интервал связи с C&C
- Используемый метод выполнения
- Имя файла полезной нагрузки
- Тип полезной нагрузки на основе расширения файла (.sys, .exeили . DLL поддерживается)
- Токен аутентификации, который должен использоваться для запроса загрузки данных полезной нагрузки.
- Ключ AES, используемый для расшифровки данных полезной нагрузки
Все поддерживаемые команды и их описания перечислены в таблице 2.
Таблица 2. Команды C&C
Тип команды | Описание команды |
---|---|
1 | Загрузите и запустите драйвер ядра, DLL или обычный исполняемый файл |
2 | Загрузите полезную нагрузку, удалите буткит и запустите полезную нагрузку — вероятно, она используется для обновления буткита. |
3 | Удалите буткит и выйдите |
В этих командах C&C может указать, должна ли полезная нагрузка сначала сбрасываться на диск перед ее выполнением или выполняться непосредственно в памяти. В случаях, связанных со сбрасыванием файла на диск, ProgramData Папка на томе ОС используется в качестве папки назначения, а имя файла и расширение задаются C&C-сервером. В случае выполнения файлов непосредственно в памяти, svchost.exe используется в качестве мишени для инъекций. Когда C&C отправляет команду, требующую взаимодействия с драйвером ядра, или оператор хочет выполнить код в режиме ядра, механизм, описанный в Связь с HTTP-загрузчиком раздел используется.
Трюки против анализа
Чтобы затруднить обнаружение и анализ этого вредоносного ПО, его автор попытался свести к минимуму видимость стандартных файловых артефактов, таких как текстовые строки, импорт или другие незашифрованные встроенные данные. Ниже приводится краткое описание используемых техник.
- Шифрование строк и данных
- Все строки, используемые в образцах, зашифрованы с помощью простого шифра.
- Все встроенные файлы зашифрованы с использованием 256-битного AES в режиме CBC.
- Ключи шифрования для отдельных файлов могут варьироваться от образца к образцу.
- В дополнение к шифрованию AES некоторые файлы также сжимаются с помощью LZMS.
- Разрешение API только во время выполнения
- Во всех примерах (когда это применимо) API-интерфейсы Windows всегда разрешаются исключительно во время выполнения, а хэши функций вместо имен функций используются для поиска нужных адресов функций API в памяти.
- В некоторых случаях прямой Системный вызов вызов инструкции используется для вызова желаемой системной функции.
- Сетевая связь
- Общается по протоколу HTTPS.
- Все сообщения, отправляемые на C&C загрузчиком HTTP, шифруются с использованием встроенного открытого ключа RSA.
- Все сообщения, отправляемые с C&C на HTTP-загрузчик, шифруются с помощью ключа, полученного из компьютерной среды жертвы, или с помощью ключа AES, предоставленного C&C.
- Анти-отладочные и анти-VM трюки — если они используются, обычно размещаются прямо в начале точки входа. Используются только случайные приемы обнаружения песочницы или отладчика.
Смягчение последствий и исправление
- Прежде всего, конечно, необходимо поддерживать вашу систему и ее продукты безопасности в актуальном состоянии, чтобы повысить вероятность того, что угроза будет остановлена в самом начале, до того, как она сможет достичь устойчивости до ОС.
- Затем ключевым шагом, который необходимо предпринять, чтобы предотвратить использование известных уязвимых двоичных файлов UEFI для обхода безопасной загрузки UEFI, является их отзыв в базе данных отзывов UEFI (DBX) – в системах Windows, DBX обновления должны распространяться с помощью Центра обновления Windows.
- Проблема в том, что отзыв широко используемых двоичных файлов Windows UEFI может привести к тому, что тысячи устаревших систем, образов восстановления или резервных копий не будут загружаться, и поэтому отзыв часто занимает слишком много времени.
- Обратите внимание, что отзыв Windows-приложений, используемых BlackLotus, предотвратит установку буткита, но поскольку установщик заменит загрузчик жертвы на отозванный, это может привести к тому, что система перестанет загружаться. Для восстановления в этом случае переустановка ОС или просто восстановление ESP решит проблему.
- Если отзыв произойдет после того, как BlackLotus установит постоянство, буткит останется работоспособным, так как он использует легитимную прокладку с пользовательским ключом MOK для сохранения. В этом случае наиболее безопасным решением будет переустановка Windows и удаление зарегистрированного ключа MOK злоумышленников с помощью мокутил утилита (для выполнения этой операции требуется физическое присутствие из-за необходимости взаимодействия пользователя с MOK Manager во время загрузки).
Takeaways
За последние несколько лет было обнаружено множество критических уязвимостей, влияющих на безопасность систем UEFI. К сожалению, из-за сложности всей экосистемы UEFI и связанных с ней проблем с цепочками поставок многие из этих уязвимостей сделали многие системы уязвимыми даже спустя долгое время после устранения уязвимостей или, по крайней мере, после того, как нам сообщили, что они были исправлены. Для лучшего представления вот несколько примеров сбоев исправлений или отзывов, позволяющих обходить UEFI Secure Boot только за последний год:
- В первую очередь, конечно же, CVE-2022-21894 — уязвимость, которую эксплуатирует BlackLotus. Спустя год после устранения уязвимости уязвимые двоичные файлы UEFI до сих пор не отозваны, что позволяет таким угрозам, как BlackLotus, скрытно работать в системах с включенной функцией безопасной загрузки UEFI, тем самым создавая у жертв ложное чувство безопасности.
- В начале 2022 года мы раскрыли несколько уязвимостей UEFI, позволяющих, среди прочего, отключить безопасную загрузку UEFI. Многие затронутые устройства больше не поддерживаются OEM-производителем, поэтому не исправлены (хотя эти устройства были не такими уж старыми — на момент обнаружения уязвимости им было 3-5 лет). Подробнее читайте в нашем блоге: Когда «безопасность» вовсе не безопасна: серьезные уязвимости UEFI обнаружены в потребительских ноутбуках Lenovo
- Позднее в 2022 году мы обнаружили несколько других уязвимостей UEFI, эксплуатация которого также позволит злоумышленникам очень легко отключить UEFI Secure Boot. Как отмечают коллеги-исследователи из Бинарно, несколько устройств, перечисленных в консультативный были оставлены без исправлений или не исправлены должным образом, даже через несколько месяцев после выпуска рекомендаций, что делает устройства уязвимыми. Излишне говорить, что, как и в предыдущем случае, некоторые устройства останутся уязвимыми навсегда, поскольку они достигли даты окончания поддержки.
Это был лишь вопрос времени, когда кто-то воспользуется этими сбоями и создаст буткит UEFI, способный работать в системах с включенной UEFI Secure Boot. Как мы предлагали в прошлом году в нашем Презентация РСА, все это делает переход на ESP более осуществимым для злоумышленников и возможным путем для угроз UEFI — существование BlackLotus подтверждает это.
МНК
Файлы
SHA-1 | Имя файла | обнаружение | Описание |
---|---|---|---|
05846D5B1D37EE2D716140DE4F4F984CF1E631D1 | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
A5A530A91100ED5F07A5D74698B15C646DD44E16 | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
D82539BFC2CC7CB504BE74AC74DF696B13DB486A | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
16B12CEA54360AA42E1120E82C1E9BC0371CB635 | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
DAE7E7C4EEC2AC0DC7963C44A5A4F47D930C5508 | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
45701A83DEC1DC71A48268C9D6D205F31D9E7FFB | Нет | Win64/BlackLotus.A | Установщик BlackLotus. |
2CE056AE323B0380B0E87225EA0AE087A33CD316 | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
5A0074203ABD5DEB464BA0A79E14B7541A033216 | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
5DC9CBD75ABD830E83641A0265BFFDDD2F602815 | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
97AEC21042DF47D39AC212761729C6BE484D064D | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
ADCEEC18FF009BED635D168E0B116E72096F18D2 | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
DBC064F757C69EC43517EFF496146B43CBA949D1 | Нет | ЭФИ/БлэкЛотус.Б | Буткит BlackLotus UEFI. |
06AF3016ACCDB3DFE1C23657BF1BF91C13BAA757 | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
0C0E78BF97116E781DDE0E00A1CD0C29E68D623D | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
6D8CEE28DA8BCF25A4D232FEB0810452ACADA11D | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
74FF58FCE8F19083D16DF0109DC91D78C94342FA | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
ACC74217CBE3F2E727A826B34BDE482DCAE15BE6 | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
111C4998F3264617A7A9D9BF662D4B1577445B20 | Нет | Win64/BlackLotus.B | HTTP-загрузчик BlackLotus. |
17FA047C1F979B180644906FE9265F21AF5B0509 | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
1F3799FED3CF43254FE30DCDFDB8DC02D82E662B | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
4B882748FAF2C6C360884C6812DD5BCBCE75EBFF | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
91F832F46E4C38ECC9335460D46F6F71352CFFED | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
994DC79255AEB662A672A1814280DE73D405617A | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
FFF4F28287677CAABC60C8AB36786C370226588D | Нет | Win64/BlackLotus.C | Драйвер ядра BlackLotus. |
71559C3E2F3950D4EE016F24CA54DA17D28B9D82 | Нет | EFI/BlackLotus.C | Хранилище данных конфигурации загрузки BlackLotus (BCD), удаленное установщиком BlackLotus. |
D6D3F3151B188A9DA62DEB95EA1D1ABEFF257914 | Нет | EFI/BlackLotus.C | Хранилище данных конфигурации загрузки BlackLotus (BCD), удаленное установщиком BlackLotus. |
547FAA2D64B85BF883955B723B07635C0A09326B | Нет | ЭФИ/БлэкЛотус.А | Эксплуатация загрузчика полезной нагрузки BlackLotus CVE-2022-21894. |
D1BBAA3D408E944C70B3815471EED7FA9AEE6425 | Нет | ЭФИ/БлэкЛотус.А | Эксплуатация загрузчика полезной нагрузки BlackLotus CVE-2022-21894. |
0E6DD7110C38464ECAA55EE4E2FA303ADA0EDEFB | Нет | ЭФИ/БлэкЛотус.А | Полезная нагрузка эксплуатации BlackLotus CVE-2022-21894 — приложение MokInstaller EFI. |
D6BB89D8734B3E49725362DAE9A868AE681E8BD6 | Нет | ЭФИ/БлэкЛотус.А | Полезная нагрузка эксплуатации BlackLotus CVE-2022-21894 — приложение MokInstaller EFI. |
164BB587109CFB20824303AD1609A65ABB36C3E9 | Нет | Win64/BlackLotus.D | Модуль обхода UAC инсталлятора BlackLotus. |
Сертификаты
Серийный номер | 570B5D22B723B4A442CC6EEEBC2580E8 |
отпечаток большого пальца | C8E6BF8B6FDA161BBFA5470BCC262B1BDC92A359 |
Тема CN | Когда они плачут, Калифорния |
Субъект О | Нет |
Тема Л | Нет |
Предметы | Нет |
Тема С | Нет |
Действует с | 2022-08-13 17:48:44 |
Действителен до | 2032-08-13 17:58:44 |
Cеть
IP | Домен | Хостинг провайдер | Впервые увидели | Подробнее |
---|---|---|---|---|
Нет | xrepositoryx[.]имя | Нет | 2022-10-17 | BlackLotus C&C. https://xrepositoryx[.]name/network/API/hpb_gate.php |
Нет | мой репозиторийx[.]com | Нет | 2022-10-16 | BlackLotus C&C. https://myrepositoryx[.]com/network/API/hpb_gate.php |
104.21.22[.]185 | erdjknfweklsgwfmewfgref[.]com | Cloudflare, Inc. | 2022-10-06 | BlackLotus C&C. https://erdjknfweklsgwfmewfgref[.]com/API/hpb_gate.php |
164.90.172[.]211 | harrysucksdick[.]com | ДиджиталОушен, ООО | 2022-10-09 | BlackLotus C&C. https://harrysucksdick[.]com/API/hpb_gate.php |
185.145.245[.]123 | heikickgn[.]com фрассиришипрок[.]com |
ООО ВЕЕСП | 2022-10-12 | BlackLotus C&C. https://heikickgn[.]com/API/hpb_gate.php https://frassirishiproc[.]com/API/hpb_gate.php |
185.150.24[.]114 | мой репозиторий[.]имя | Дата-центр СкайЛинк Б.В. | 2022-10-14 | BlackLotus C&C. мой репозиторий[.]имя/сеть/API/hpb_gate.php |
190.147.189[.]122 | egscorp[.]net | Telmex Колумбия СА | 2022-08-24 | BlackLotus C&C. https://egscorp[.]net/API/hpb_gate.php |
Техники MITER ATT & CK
Эта таблица была построена с использованием версия 12 фреймворка MITRE ATT&CK.
тактика | ID | Имя | Описание |
---|---|---|---|
Развитие ресурсов | T1587.002 | Возможности разработки: сертификаты подписи кода | Некоторые образцы BlackLotus подписаны самозаверяющим сертификатом. |
T1588.005 | Получить возможности: эксплойты | BlackLotus использовала общеизвестный эксплойт для обхода UEFI Secure Boot. | |
Типы | T1203 | Эксплуатация для клиентского исполнения | Установщики BlackLotus могут использовать CVE-2022-21894 для выполнения произвольного кода в системах с включенной безопасной загрузкой UEFI. |
T1559 | Межпроцессного взаимодействия | Загрузчик HTTP BlackLotus использует именованный раздел для передачи команд компоненту режима ядра. | |
T1106 | Родной API | Загрузчик HTTP BlackLotus использует различные собственные API-интерфейсы Windows для выполнения кода на скомпрометированной машине. | |
T1129 | Общие модули | Загрузчик BlackLotus HTTP может загружать и выполнять библиотеки DLL, полученные с C&C-сервера. | |
Настойчивость | T1542.003 | Загрузка до загрузки ОС: Буткит | Буткит BlackLotus развертывается в системном разделе EFI и выполняется во время загрузки. |
Повышение привилегий | T1548.002 | Злоупотребление механизмом контроля за повышением прав: обход контроля учетных записей пользователей | Установщик BlackLotus пытается повысить привилегии, минуя контроль учетных записей. |
T1134.002 | Управление токеном доступа: создание процесса с токеном | HTTP-загрузчик BlackLotus может использовать WTSQueryUserToken и CreateProcessAsUserW для выполнения загруженных полезных данных в рамках нового процесса с привилегиями локальной системы. | |
Уклонение от защиты | T1622 | Уклонение от отладчика | Компоненты BlackLotus используют различные методы для определения того, работает ли на жертве отладчик режима ядра или пользовательского режима. |
T1574 | Поток выполнения захвата | Буткит BlackLotus захватывает различные компоненты, включенные в ранние этапы процесса загрузки Windows (диспетчер загрузки Windows, загрузчик ОС Windows, ядро Windows и определенные драйверы), чтобы избежать обнаружения, деактивируя различные функции безопасности Windows (VBS, Защитник Windows) и скрытно выполняя свой режим ядра. и компоненты пользовательского режима | |
T1562 | Ослабить защиту | Компоненты BlackLotus могут отключать BitLocker и Защитник Windows, чтобы избежать обнаружения. | |
T1070.004 | Удаление индикатора: удаление файла | Установщик BlackLotus удаляет себя после успешного развертывания файлов в системном разделе EFI. Также после успешной эксплуатации CVE-2022-21894 BlackLotus удаляет следы эксплуатации, удаляя все файлы, включенные в цепочку эксплуатации, из системного раздела EFI. | |
T1070.009 | Удаление индикатора: очистить постоянство | BlackLotus может удалить себя, удалив все файлы буткита из ESP и восстановив оригинальный диспетчер загрузки Windows жертвы. | |
T1036.005 | Маскарадинг: Соответствие законному имени или местоположению | BlackLotus пытается скрыть свои файлы, развернутые на ESP, используя законные имена файлов, такие как grubx64.efi (если безопасная загрузка UEFI включена на скомпрометированной машине) или bootmgfw.efi (если безопасная загрузка UEFI отключена на скомпрометированной машине). | |
T1112 | Изменить реестр | Установщик BlackLotus изменяет реестр Windows, чтобы отключить функцию безопасности Windows HVCI. | |
T1027 | Замаскированные файлы или информация | Почти все встроенные строки в компонентах BlackLotus шифруются с использованием специального комбинированного шифра и расшифровываются только при необходимости. | |
T1027.007 | Замаскированные файлы или информация: разрешение динамического API | Компоненты BlackLotus используют динамическое разрешение API, используя хэши имен API вместо имен. | |
T1027.009 | Замаскированные файлы или информация: встроенные полезные нагрузки | Почти все встроенные файлы в компонентах BlackLotus зашифрованы с помощью AES. | |
T1542.003 | Загрузка до загрузки ОС: Буткит | Буткит BlackLotus развертывается в системном разделе EFI и выполняется на ранних этапах загрузки ОС, что позволяет контролировать процесс загрузки ОС и избегать обнаружения. | |
T1055.012 | Внедрение процесса: внедрение библиотеки динамической компоновки | Загрузчик BlackLotus HTTP может внедрить DLL во вновь созданный svchost.exe процесс с использованием процесса выдалбливания. | |
T1055.002 | Внедрение процесса: внедрение переносимого исполняемого файла | Драйвер BlackLotus внедряет портативный исполняемый файл загрузчика HTTP в winlogon.exe процесс. | |
T1014 | Rootkit | Драйвер ядра BlackLotus защищает файлы буткита на ESP от удаления. | |
T1497.001 | Обход виртуализации/песочницы: проверка системы | BlackLotus использует различные системные проверки, включая проверку значений реестра для песочницы, для обнаружения и предотвращения сред виртуализации и анализа. | |
Открытие | T1622 | Уклонение от отладчика | Компоненты BlackLotus используют различные методы для определения того, работает ли на жертве отладчик режима ядра или пользовательского режима. |
T1082 | Обнаружение системной информации | BlackLotus собирает системную информацию (IP, GPU, CPU, память, версия ОС) на скомпрометированном хосте. | |
T1614 | Обнаружение местоположения системы | BlackLotus может завершить работу, если на скомпрометированном хосте обнаружена одна из следующих системных локалей: ro-MD, ru-MD, ru-RU, uk-UA, be-BY, hy-AM, kk-KZ. | |
T1016 | Обнаружение конфигурации сети системы | Загрузчик BlackLotus HTTP может определить общедоступный IP-адрес скомпрометированного хоста, запросив api.ipify[.]org услуги. | |
T1016.001 | Обнаружение конфигурации сети системы: Обнаружение подключения к Интернету | Загрузчик BlackLotus HTTP проверяет подключение к Интернету, запрашивая www.msftncsi[.]com/ncsi[.]txt | |
T1497.001 | Обход виртуализации/песочницы: проверка системы | BlackLotus использует различные системные проверки, включая проверку значений реестра для песочницы, для обнаружения и предотвращения сред виртуализации и анализа. | |
Управление и контроль | T1071.001 | Протокол прикладного уровня: веб-протоколы | BlackLotus использует HTTPS для связи со своим C&C. |
T1132.001 | Кодирование данных: стандартное кодирование | BlackLotus кодирует зашифрованные данные при обмене данными C&C с безопасным для URL base64. | |
T1573.001 | Зашифрованный канал: симметричная криптография | BlackLotus использует 256-битный AES в режиме CBC для расшифровки сообщений, полученных от его C&C. | |
T1573.002 | Зашифрованный канал: асимметричная криптография | BlackLotus использует встроенный открытый ключ RSA для шифрования сообщений, отправляемых на C&C. |
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://www.welivesecurity.com/2023/03/01/blacklotus-uefi-bootkit-myth-confirmed/
- 000
- 1
- 10
- 11
- 2018
- 2020
- 2022
- 7
- 9
- a
- в состоянии
- О нас
- выше
- злоупотребление
- доступ
- доступной
- доступа
- Учетная запись
- Достигать
- Достигает
- Действие (Act):
- действия
- актеры
- акты
- добавленный
- дополнение
- дополнительный
- адрес
- адреса
- Администратор
- продвинутый
- плюс
- Реклама
- консультативный
- AES
- затрагивающий
- После
- против
- ака
- Все
- выделено
- ассигнования
- Позволяющий
- позволяет
- уже
- Несмотря на то, что
- всегда
- AMD
- среди
- анализ
- анализировать
- и
- Аниме
- Другой
- API
- API
- приложение
- отношение
- Применение
- Приложения
- соответствующий
- APT
- архив
- около
- статьи
- оценки;
- связанный
- попытки
- внимание
- Август
- автор
- доступен
- Восстановление
- Операции резервного копирования
- основанный
- основной
- Основы
- маяк
- , так как:
- до
- начало
- за
- не являетесь
- Беларусь
- верить
- ниже
- Лучшая
- между
- BleepingComputer
- Заблокировать
- Синии
- Бонус
- Сапоги
- ботнеты
- Ломать
- Разрыв
- прорыв
- приносить
- Приведение
- широко
- принес
- буфер
- строить
- построенный
- встроенный
- призывают
- вызова
- Объявления
- возможности
- способный
- заботится
- тщательный
- случаев
- случаев
- казуальная
- Привлекайте
- вызванный
- Причины
- Причинение
- Центр
- сертификат
- цепь
- шанс
- изменение
- Канал
- контроль
- Проверки
- шифр
- требования
- Очистить
- клиент
- Закрыть
- закрыто
- ближе
- закрытие
- код
- коллеги
- Колумбия
- сочетание
- сочетании
- как
- , имея в виду
- Общий
- обычно
- общаться
- общение
- Связь
- сравненный
- сравнение
- совместимость
- полностью
- комплекс
- сложность
- компонент
- компоненты
- скомпрометированы
- Ослабленный
- сама концепция
- обеспокоенный
- доверие
- Конфигурация
- ПОДТВЕРЖДЕНО
- связи
- принимая во внимание
- потребитель
- содержать
- содержит
- содержание
- продолжать
- продолжается
- непрерывно
- контроль
- управление
- кооперация
- Основные
- соответствующий
- может
- "Курс"
- покрытие
- Создайте
- создали
- создает
- Создающий
- ПОЛНОМОЧИЯ
- критической
- Текущий
- В настоящее время
- изготовленный на заказ
- опасно
- данным
- Центр обработки данных
- База данных
- Время
- деактивация
- занимавшийся
- Смерть
- Decrypt
- глубоко
- более глубокий
- По умолчанию
- определенный
- определенно
- зависит
- развертывание
- развернуть
- развертывание
- развертывание
- развертывает
- Производный
- описывать
- описано
- желанный
- Несмотря на
- назначение
- подробность
- подробный
- подробнее
- обнаруженный
- обнаружение
- Определять
- определения
- развитый
- Застройщик
- застройщиков
- устройство
- Устройства
- DID
- разница
- различный
- КОПАТЬ
- направлять
- непосредственно
- каталоги
- инвалид
- раскрытие
- обнаружить
- открытый
- открытие
- распределенный
- распределение
- распределения
- дело
- доменов
- Dont
- скачать
- управлять
- водитель
- драйверы
- Падение
- упал
- Опустившись
- дубликаты
- в течение
- динамический
- каждый
- Рано
- легче
- легко
- экосистема
- edition
- фактически
- усилие
- элементы
- ELEVATE
- возвышенный
- встроенный
- работает
- включен
- зашифрованный
- шифрование
- Проект и
- достаточно
- зачислен
- обеспечивать
- запись
- Окружающая среда
- средах
- существенный
- налаживание
- и т.д
- оценивается
- Даже
- События
- События
- Каждая
- , поскольку большинство сенаторов
- пример
- Примеры
- исключительно
- выполнять
- Выполняет
- проведение
- выполнение
- существующий
- Выход
- Объяснять
- объяснение
- Эксплуатировать
- эксплуатация
- Эксплуатируемый
- использует
- Больше
- расширение
- и, что лучший способ
- выполнимый
- Особенность
- СПЕЦЦЕНА
- Особенности
- человек
- несколько
- Поля
- фигура
- Файл
- Файлы
- фильтр
- окончательный
- Найдите
- обнаружение
- Во-первых,
- фиксированной
- Flash
- поток
- следовать
- после
- следующим образом
- навсегда
- форма
- формат
- Бывший
- форумы
- вперед
- найденный
- от
- полный
- полностью
- функция
- функциональная
- функциональность
- Функции
- далее
- Игры
- шлюз
- генерируется
- получить
- данный
- дает
- цель
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Зелёная
- Группы
- Охрана
- взлом
- Ручки
- Руки
- происходить
- происходит
- Аппаратные средства
- имеющий
- Заголовки
- здесь
- Спрятать
- High
- Хиты
- Крючки
- кашель
- Как
- Однако
- HTTPS
- Сотни
- идентифицированный
- идентификатор
- определения
- изображение
- изображений
- немедленно
- Влияние
- в XNUMX году
- Осуществляющий
- импорт
- что она
- in
- включены
- В том числе
- individual
- информация
- информативный
- начальный
- устанавливать
- установлен
- вместо
- интегрированный
- целостность
- Intel
- Интеллекта
- взаимодействие
- Интернет
- интернет-соединение
- Введение
- ходе расследования,
- вовлеченный
- IP
- вопрос
- IT
- саму трезвость
- январь
- работа
- скачки
- Kaspersky
- Республике Казахстан
- хранение
- Основные
- ключи
- известный
- Фамилия
- В прошлом году
- Поздно
- последний
- запуск
- слой
- вести
- Лиды
- уход
- Lenovo
- Li
- Библиотека
- Вероятно
- ОГРАНИЧЕНИЯ
- Linux
- Список
- Включенный в список
- Списки
- мало
- загрузка
- загрузчик
- погрузка
- грузы
- локальным
- расположенный
- расположение
- Длинное
- много времени
- посмотреть
- терять
- Низкий
- макинтош
- машина
- Продукция
- сделанный
- магия
- Главная
- основной
- сделать
- ДЕЛАЕТ
- Создание
- вредоносных программ
- управляемого
- менеджер
- Манипуляция
- вручную
- многих
- Совпадение
- Вопрос
- макс-ширина
- смысл
- механизм
- Память
- упомянутый
- просто
- сообщение
- Сообщения
- метод
- Microsoft
- может быть
- минимальный
- минут
- смягчение
- режим
- модифицировало
- изменять
- Модули
- момент
- контролируемый
- Мониторы
- месяцев
- БОЛЕЕ
- самых
- мотивации
- двигаться
- с разными
- имя
- Названный
- имена
- родной
- необходимо
- Необходимость
- Излишне
- потребности
- сеть
- Новые
- следующий
- нормально
- номер
- номера
- объекты
- получать
- октябрь
- Предложения
- оффлайн
- Старый
- ONE
- онлайн
- Откроется
- работать
- операционный
- операция
- оператор
- Опция
- Опции
- заказ
- оригинал
- OS
- Другое
- в противном случае
- Преодолеть
- обзор
- собственный
- принадлежащих
- владелец
- параметр
- параметры
- часть
- части
- Патчи
- Патчи
- Заделка
- путь
- шаблон
- паттеранами
- ИДЕАЛЬНОЕ
- Выполнять
- выполнения
- настойчивость
- физический
- кусок
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- PoC
- Точка
- пунктов
- политика
- возможное
- После
- Блог
- потенциал
- мощный
- присутствие
- представить
- предотвращать
- предыдущий
- предварительно
- Принципы
- частная
- Секретный ключ
- привилегии
- Проблема
- проблемам
- доходы
- процесс
- Обработанный
- Процессы
- Продукт
- FitPartner™
- видный
- доказательство
- доказательство концепции
- должным образом
- для защиты
- защищенный
- защищающий
- защиту
- протокол
- при условии
- обеспечение
- что такое варган?
- публичный ключ
- публикациям
- публично
- опубликованный
- цель
- повышение
- Оперативная память
- случайный
- быстро
- достиг
- Читать
- читатель
- Reading
- реальные
- Реальность
- реализовать
- причина
- разумный
- получила
- последний
- Recover
- выздоровление
- Рекомендации
- назвало
- Несмотря на
- регистры
- реестра
- регулярный
- Связанный
- оставаться
- удаление
- удаление
- удален
- удаление
- замещать
- заменить
- Отчеты
- хранилище
- запросить
- обязательный
- исследованиям
- исследователь
- исследователи
- Постановления
- решен
- ресурс
- ответ
- ответственный
- ОТДЫХ
- восстановление
- результат
- возвращают
- обратный
- Роли
- корень
- RSA
- рсаконференция
- Run
- Бег
- Россия
- безопасный
- то же
- песочница
- Мошенничество
- сканирование
- схема
- экран
- поиск
- Во-вторых
- секунды
- Раздел
- разделах
- безопасный
- безопасность
- кажется
- отправка
- смысл
- последовательный
- Серии
- обслуживание
- Услуги
- Сессия
- набор
- Наборы
- установка
- несколько
- Поделиться
- Короткое
- должен
- показанный
- Шоу
- подпись
- сигналы
- подписанный
- подписание
- Признаки
- аналогичный
- просто
- упрощенный
- просто
- с
- ШЕСТЬ
- Размер
- So
- уже
- мягкая
- Software
- проданный
- Решение
- некоторые
- Кто-то
- удалось
- Источники
- Space
- конкретный
- Спецификация
- указанный
- Распространение
- Этап
- этапы
- автономные
- стандарт
- стоит
- Начало
- и политические лидеры
- начинается
- ввод в эксплуатацию
- Статус:
- оставаться
- Шаг
- Шаги
- По-прежнему
- остановившийся
- магазин
- хранить
- простой
- Структура
- представление
- последующее
- успешный
- Успешно
- такие
- Предлагает
- суммировать
- РЕЗЮМЕ
- поддержка
- Поддержанный
- поддержки
- Поддержка
- предполагаемый
- подвесной
- символ
- синтаксис
- система
- системы
- ТАБЛИЦЫ
- взять
- принимает
- с
- говорить
- цель
- задачи
- команда
- Технический
- снижения вреда
- временный
- Ассоциация
- Основы
- информация
- их
- следовательно
- задача
- вещи
- тысячи
- угроза
- актеры угрозы
- угрозы
- три
- Через
- время
- Сроки
- тип
- в
- сегодня
- вместе
- знак
- слишком
- инструменты
- тема
- срабатывает
- надежных
- ОЧЕРЕДЬ
- Оказалось
- Поворот
- типичный
- Украина
- под
- понимание
- новейший
- Обновление ПО
- обновление
- Updates
- us
- Применение
- использование
- Информация о пользователе
- обычно
- утилита
- ценностное
- Наши ценности
- различный
- проверка
- проверено
- проверить
- версия
- с помощью
- Жертва
- жертвы
- НАРУШЕНИЕ
- Нарушения
- видимость
- объем
- тома
- Уязвимости
- уязвимость
- Уязвимый
- Ожидание
- способы
- Web
- известный
- Что
- Что такое
- будь то
- который
- в то время как
- все
- широкий
- Википедия.
- Дикий
- будете
- окна
- Окна 11
- в
- без
- Работа
- работает
- Наихудший
- бы
- письмо
- письменный
- год
- лет
- Ты
- ВАШЕ
- зефирнет
- нуль