Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2022-34301 — Демонстрирует обход Secure Boot через CVE-2022-34301 с использованием подписанной Eurosoft UEFI Shell (esdiags.efi), применяя команду mm для обнуления gSecurity2 и загрузки неподписанных UEFI-приложений. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2022-34301
Механизмы персистентностиАнализ уязвимостейЭксплуатацияАппаратная БезопасностьОбучение и ОбразованиеАнализ ПрошивокЭксплуатация Бинарных Файлов
GitHub

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
themalwareguardian/cve-2022-34301

CVE-2022-34301

Демонстрирует обход Secure Boot через CVE-2022-34301 с использованием подписанной Eurosoft UEFI Shell (esdiags.efi), применяя команду mm для обнуления gSecurity2 и загрузки неподписанных UEFI-приложений.

Репозиторий
12020 дней назадЕщё не проверено
Поделиться

🕷️ CVE-2022-34301 - Уязвимость загрузчика Eurosoft

Eurosoft Pc-Check UEFI Diagnostics Shell - Bring Your Own Vulnerable UEFI Application (BYOVUA) - обход Secure Boot через подписанную оболочку UEFI и повреждение gSecurity2.




📑 Содержание

  • Обзор
  • Предыстория
    • Bring Your Own Vulnerable UEFI Application
    • Подписанная оболочка
    • Уязвимость
    • Команда mm
    • gSecurity2 и архитектурный протокол безопасности
    • Параллель с Kernel BYOVD
  • Как это работает
    • Фаза 1 - Загрузка подписанной оболочки
    • Фаза 2 - Перечисление дескрипторов протокола Security2
    • Фаза 3 - Поиск gSecurity2 в памяти
    • Фаза 4 - Обнуление gSecurity2
    • Фаза 5 - Загрузка неподписанных UEFI-приложений
    • Фаза 6 - Закрепление через startup.nsh
    • Дополнительно - Процесс обнаружения
  • Эксплойт
  • Настройка лаборатории
  • Ссылки



Обзор

Этот репозиторий демонстрирует технику BYOVUA (Bring Your Own Vulnerable UEFI Application) путём эксплуатации CVE-2022-34301, уязвимости обхода Secure Boot в диагностической среде Eurosoft Pc-Check UEFI.

В данном случае компонентом, которому доверяет Secure Boot, является esdiags.efi — оболочка UEFI, распространяемая в составе продукта Eurosoft Pc-Check UEFI для аппаратной диагностики, подписанная цепочкой сертификатов, которой доверяет Microsoft UEFI Third Party Certificate Authority. После запуска эта оболочка предоставляет команду mm (memory modify) и, следовательно, обеспечивает возможности произвольного чтения и записи памяти на этапе загрузки до запуска ОС.

Этот примитив затем может быть использован для поиска и обнуления глобального указателя gSecurity2 в ядре DXE. В результате последующая проверка образов UEFI отключается, что позволяет загружать неподписанные UEFI-приложения, буткиты, несмотря на включённый Secure Boot.




Предыстория


Bring Your Own Vulnerable UEFI Application

BYOVUA — это UEFI-эквивалент техники BYOVD (Bring Your Own Vulnerable Driver), используемой на уровне ядра. Вместо того чтобы принести подписанный драйвер ядра с уязвимостью, атакующий приносит подписанное UEFI-приложение — в данном случае полноценную оболочку UEFI — которое содержит функциональность, способную подорвать Secure Boot.

Поскольку приложение подписано цепочкой сертификатов, которой доверяет Secure Boot, оно принимается без вопросов, что делает его доверенным на любой системе, включающей Microsoft UEFI Third Party Certificate Authority в своей базе данных Secure Boot (db) — а это практически каждый UEFI-совместимый ПК, выпущенный за последнее десятилетие. После запуска его встроенные команды предоставляют атакующему прямой доступ к оборудованию и памяти, работающий до загрузки операционной системы, в среде, где современные средства защиты (ASLR, DEP, защиты ядра) просто не существуют.


Подписанная оболочка

esdiags.efi — это оболочка UEFI, распространяемая в составе Eurosoft Pc-Check UEFI, продукта для аппаратной диагностики на этапе до загрузки, используемого производителями ПК, сервисными организациями и ИТ-командами для тестирования систем на «голом железе».

СвойствоЗначение
ФайлEFI/Boot/Bootx64.efi (Microsoft) -> EFI/Boot/esdiags.efi (Shell)
ПроизводительEurosoft (UK) Ltd
CVECVE-2022-34301
ПодписьMicrosoft Corporation UEFI CA 2011 (Third Party)
ОбнаружениеEclypsium (Mickey Shkatov, Jesse Michael) - август 2022
ПрезентацияDEF CON 30 - "One Bootloader to Load Them All"
ОтзывДобавлено в DBX через Microsoft KB5012170 (август 2022)

Уязвимость

Уязвимость — это не баг, а дефект проектирования. Оболочки UEFI — это легитимные диагностические инструменты, которые никогда не предназначались для работы в средах Secure Boot. Однако, подписывая их сертификатом, которому доверяет Microsoft, и распространяя их в составе коммерческих продуктов, производители непреднамеренно создали подписанный обход Secure Boot.

Основная проблема: подписанный бинарный файл, которому доверяет Secure Boot, предоставляет неограниченные возможности чтения/записи памяти через свои встроенные команды. Это сочетание разрушает всю модель доверия Secure Boot.


Команда mm

Команда mm (memory modify) — это стандартная встроенная команда оболочки UEFI, обеспечивающая прямой доступ на чтение и запись к системной памяти. Она описана в UEFI Shell Specification (раздел 5.3).``` MM Address [Value] [-w 1|2|4|8] [-MEM | -MMIO | -IO | -PCI | -PCIE] [-n]

| Параметр | Описание |
|-----------|-------------|
| `Address` | Целевой адрес памяти |
| `Value` | Значение для записи (опустите для режима только чтения) |
| `-w` | Ширина: 1, 2, 4 или 8 байт |
| `-MEM` | Доступ к системной памяти |
| `-MMIO` | Отображённый в память ввод-вывод (MMIO) |
| `-IO` | Доступ к портам ввода-вывода |
| `-n` | Неинтерактивный режим (без запроса следующего адреса) |

---

<div id='gsecurity2'/>

### ***gSecurity2 и архитектурный протокол безопасности***

Проверка образов Secure Boot в UEFI обеспечивается через [архитектурные протоколы безопасности (Security Architectural Protocols)](https://uefi.org/specs/PI/1.8/V2_DXE_Architectural_Protocols.html#security-architectural-protocols), определённые в спецификации UEFI Platform Initialization (PI).

Ядро DXE (DxeMain) поддерживает глобальный указатель [`gSecurity2`](https://github.com/tianocore/edk2/blob/edk2-stable202608/MdeModulePkg/Core/Dxe/DxeMain.h#L252), который указывает на структуру `EFI_SECURITY2_ARCH_PROTOCOL`. Этот протокол содержит единственный указатель на функцию — `FileAuthenticationState` — которая вызывается `LoadImage()` при каждой загрузке образа UEFI:```c
// EFI_SECURITY2_ARCH_PROTOCOL structure (PI Specification)
typedef struct _EFI_SECURITY2_ARCH_PROTOCOL {
	EFI_SECURITY_FILE_AUTHENTICATION_STATE FileAuthenticationState;
} EFI_SECURITY2_ARCH_PROTOCOL;

// GUID: 94AB2F58-1438-4EF1-9152-18941A3A0E68

При вызове LoadImage() ядро DXE проверяет:```c if (gSecurity2 != NULL) { Status = gSecurity2->FileAuthenticationState(gSecurity2, DevicePath, FileBuffer, FileSize, BootPolicy ); if (EFI_ERROR(Status)) { // Image rejected - signature verification failed } }

Установив `gSecurity2 = NULL`, проверка `if` завершается неудачей, и `FileAuthenticationState` никогда не вызывается. Проверка образа полностью пропускается — **Secure Boot остаётся «включённым», но больше не применяется**. Неподписанные UEFI-приложения после этого могут загружаться свободно.

Для глубокого технического понимания этой техники, включая специально созданное UEFI-приложение, которое автоматически находит и патчит gSecurity2, см. сопутствующий проект: [Exploitation Technique - UEFI Secure Boot Bypass via gSecurity2 Corruption](https://github.com/TheMalwareGuardian/Exploitation-Technique-UEFI-SecureBoot-Bypass-gSecurity2-Corruption).

---

<div id='BYOVD'/>

### ***Параллель с ядерным BYOVD***
Скачать инструмент