Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-34302 — CVE-2022-34302を実演します。これはNew Horizon Datasys署名済みブートローダーを介したSecure Bootバイパスであり、その組み込みカスタムPE/COFFローダーが未署名のUEFIアプリケーションを実行します。 | Kitploit
ツール/GitHubGitHub/themalwareguardian/cve-2022-34302
組み込みシステムセキュリティ永続化メカニズム脆弱性分析エクスプロイトリバースエンジニアリングハードウェアセキュリティ論文と研究ペイロード開発ファームウェア解析

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
バイナリエクスプロイト
GitHubthemalwareguardian/cve-2022-34302

CVE-2022-34302

CVE-2022-34302を実演します。これはNew Horizon Datasys署名済みブートローダーを介したSecure Bootバイパスであり、その組み込みカスタムPE/COFFローダーが未署名のUEFIアプリケーションを実行します。

リポジトリを見る
2420日前未レビュー

🕷️ CVE-2022-34302 - New Horizon Datasys ブートローダー脆弱性

New Horizon Datasys Reboot Restore ブートローダー - Bring Your Own Vulnerable UEFI Application (BYOVUA) - 署名済みブートローダーに組み込まれたカスタム PE/COFF ローダーが未署名の UEFI アプリケーションをロードすることによる Secure Boot バイパス。




📑 目次

  • 概要
  • 背景
    • Bring Your Own Vulnerable UEFI Application
    • 署名済みブートローダー
    • 脆弱性
    • カスタム PE/COFF ローダー
    • LoadImage とカスタムローダーの比較
    • PE/COFF 互換性要件
    • カーネル BYOVD との類似性
  • 動作原理
    • フェーズ 1 - 署名済みブートローダーの起動
    • フェーズ 2 - カスタム PE ローダーの起動
    • フェーズ 3 - 未署名コードの実行
    • フェーズ 4 - 永続化
  • エクスプロイト
  • ラボ環境のセットアップ
  • 参考文献



概要

本リポジトリは、New Horizon Datasys ブートローダーにおける Secure Boot バイパス脆弱性である CVE-2022-34302 を悪用することで、BYOVUA (Bring Your Own Vulnerable UEFI Application) テクニックを実証するものです。

UEFI Shell ベースの脆弱性 (CVE-2022-34301 および CVE-2022-34303) とは異なり、このブートローダーは UEFI Shell を公開していません。代わりに、shdloader.efi は独自のカスタム PE/COFF ローダーを実装しており、ファームウェアの LoadImage() 関数を使用せず、かつ署名検証を一切行わずに、セカンドステージバイナリ (shdmgr.ef_) をロードします。攻撃者は shdmgr.ef_ を互換性のある任意の UEFI アプリケーションに置き換えるだけで、Secure Boot が有効な状態で任意のコード実行を達成できます。

これは「One Bootloader to Load Them All」の研究で公表された 3 つの脆弱性の中で最も危険なものです。Eclypsium が指摘したように、このバイパスは組み込み済みで、完全にサイレントであり、画面上に視覚的な兆候を一切残しません。そのため、モニターを備えたシステムでも目視できず、サーバーや産業機器などのヘッドレスシステムでは検出不可能です。




背景


Bring Your Own Vulnerable UEFI Application

BYOVUA は、カーネルレベルで使用される BYOVD (Bring Your Own Vulnerable Driver) テクニックの UEFI 版です。脆弱性を持つ署名済みカーネルドライバーを持ち込む代わりに、攻撃者は Secure Boot を無効化する機能を含む署名済み UEFI アプリケーションを持ち込みます。

shdloader.efi は Microsoft が信頼する証明書で署名されているため、Secure Boot に無条件で受け入れられ、この証明書を Secure Boot データベース (db) に含むあらゆるシステムで信頼されます。これは過去 10 年間に出荷されたほぼすべての UEFI 対応 PC に該当します。一度実行されると、その組み込みのカスタム PE ローダーにより、攻撃者はオペレーティングシステムがロードされる前に任意の未署名コードをロードおよび実行できるようになります。これは、最新のセキュリティ制御 (ASLR、DEP、カーネル保護) が単純に存在しない環境です。


署名済みブートローダー

shdloader.efi は、New Horizon Datasys のシステム復元およびリカバリ製品 (Reboot Restore Rx、RollBack Rx) の一部として配布される UEFI ブートローダーです。正規のブートチェーンにおける役割は、オペレーティングシステムが起動する前にスナップショットおよび復元操作を処理するプリ OS 管理コンポーネント (shdmgr.ef_) をロードすることです。

プロパティ値
ファイルshdloader.efi = EFI/Boot/bootx64.efi
ベンダーNew Horizon Datasys Inc
製品Reboot Restore Rx / RollBack Rx
CVECVE-2022-34302
署名Microsoft Windows UEFI Driver Publisher → Microsoft Corporation UEFI CA 2011
発見Eclypsium (Mickey Shkatov、Jesse Michael) - 2022 年 8 月
プレゼンテーションDEF CON 30 - 「One Bootloader to Load Them All」
失効Microsoft KB5012170 により DBX に追加 (2022 年 8 月)

脆弱性

この脆弱性は、ブートローダーのアーキテクチャにおける設計上の欠陥です。Secure Boot の署名検証を強制するファームウェアの LoadImage() および StartImage() ブートサービスを使用する代わりに、shdloader.efi は独自のカスタム PE/COFF ローダーを実装しており、生のディスクバイトから shdmgr.ef_ を直接読み取り、再配置し、実行することで、ファームウェアのセキュリティチェックを完全にバイパスします。

核心的な問題は、Secure Boot に信頼されている署名済みバイナリが、署名を検証しない独自のイメージローダーを含んでいることです。ファームウェアは shdloader.efi を署名済みとして検証しますが、一度実行されると、shdmgr.ef_ を一切の検証なしにロードします。shdmgr.ef_ を任意の UEFI アプリケーションに置き換えると、Secure Boot が有効と報告されたまま、そのアプリケーションが完全なハードウェアアクセスで実行されます。

これは CVE-2022-34301 および CVE-2022-34303 とは根本的に異なります。これらの脆弱性では、攻撃者は UEFI Shell と対話し、gSecurity2 を手動で破壊して検証を無効化する必要があります。ここでは、バイパスは自動的かつサイレントです - ユーザー操作も、目に見える出力も、シェルプロンプトもありません。


カスタム PE/COFF ローダー

署名済みの shdloader.efi は、PE/COFF イメージローダーの独自実装を含んでいます。ファームウェアの LoadImage() ブートサービスを呼び出すと、Security Architectural Protocols が呼び出され、イメージの署名が Secure Boot データベースに対して検証されますが、このブートローダーは代わりに以下の処理を行います:

  1. EFI_SIMPLE_FILE_SYSTEM_PROTOCOL を使用して \EFI\Boot\shdmgr.ef_ を開く
  2. 生のファイル内容をメモリバッファに読み込む
  3. PE/COFF ヘッダー (MZ シグネチャ、PE シグネチャ、Optional Header) を解析する
  4. 任意のアドレスにメモリを割り当てる
  5. セクションテーブルに従ってセクションをコピーする
  6. .reloc セクションを処理し、ベース再配置を適用する
  7. エントリポイントアドレスを解決する
  8. エントリポイントにジャンプする

このプロセスのどの時点でも、ローダーはイメージの Authenticode 署名を検証したり、Secure Boot データベース (db/dbx) をチェックしたり、EFI_SECURITY2_ARCH_PROTOCOL を呼び出したりしません。イメージは純粋にその PE/COFF 構造の妥当性に基づいてロードされます。```c // Pseudocode of what shdloader.efi does internally // // NOTE: This is a simplified representation. The actual // implementation was derived from reverse engineering.

EFI_STATUS LoadShdmgr(VOID) { // Step 1: Open the file File = OpenFile(L"\EFI\Boot\shdmgr.ef_");

// Step 2: Read raw bytes (no signature check)
ReadFile(File, &Buffer, &Size);

// Step 3: Parse PE/COFF headers
DosHeader = (EFI_IMAGE_DOS_HEADER *)Buffer;
PeHeader  = (EFI_IMAGE_NT_HEADERS *)(Buffer + DosHeader->e_lfanew);

// Step 4: Allocate memory and copy sections
ImageBase = AllocatePages(...);
CopySections(ImageBase, Buffer, PeHeader);

// Step 5: Apply base relocations from .reloc
Delta = ImageBase - PeHeader->OptionalHeader.ImageBase;
ApplyRelocations(ImageBase, PeHeader, Delta);

// Step 6: Jump to entry point
//         NO SIGNATURE VERIFICATION ANYWHERE
EntryPoint = ImageBase + PeHeader->OptionalHeader.AddressOfEntryPoint;
((EFI_IMAGE_ENTRY_POINT)EntryPoint)(ImageHandle, SystemTable);

}

---

<div id='LoadImageVsCustomLoader'/>

### ***LoadImage とカスタムローダー***
ツールをダウンロード