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

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

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

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

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

Категории

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

CVE-2022-34303

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

Репозиторий
2520 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

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

CryptoPro Secure Disk UEFI Shell - Bring Your Own Vulnerable UEFI Application (BYOVUA) - обход Secure Boot через подписанный UEFI Shell и повреждение gSecurity2.




📑 Содержание

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



Обзор

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

В данном случае компонентом, которому доверяет Secure Boot, является кастомный shim, подписанный Microsoft UEFI Third Party Certificate Authority. После запуска этот shim загружает UEFI Shell в качестве второй стадии, что открывает доступ к команде 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 Shell - содержащее функциональность, способную подорвать Secure Boot.

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


Подписанный Shell

Shell_Full.efi - это UEFI Shell, распространяемый в составе CryptoPro Secure Disk, продукта для предзагрузочной аутентификации и шифрования диска.

СвойствоЗначение
ФайлShell_Full.efi = EFI/Boot/BootX64.efi (SHIM) -> EFI/CPSD/Bootxsa.efi (Shell)
ПроизводительCryptoPro Secure Disk
CVECVE-2022-34303
Подпись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 Shell - это легитимные диагностические инструменты, которые никогда не предназначались для работы в средах Secure Boot. Однако, подписывая их сертификатом, которому доверяет Microsoft, и распространяя их в составе коммерческих продуктов, производители непреднамеренно создали подписанный обход Secure Boot.

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


Команда mm

Команда mm (memory modify) - это стандартная встроенная команда UEFI Shell, обеспечивающая прямой доступ на чтение и запись к системной памяти. Она описана в 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 обеспечивается через [архитектурные протоколы безопасности](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***
Скачать инструмент