Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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.7k292317个月前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 架构。
  • 🚀 独立运行: 自动创建一个新的浏览器进程来承载载荷,无需预先存在的运行实例。
  • 📁 可自定义提取数据的输出目录。
图像

📦 支持与测试版本

浏览器已测试版本(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

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

🔍 功能支持矩阵

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

功能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

🔬 技术工作流程

该工具的执行专注于隐蔽性和效率,围绕 基于直接系统调用的反射式镂空 进程构建。这种方法确保很少进行高级别 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(直接系统调用)将内存区域的权限更改为可执行。
    • 创建一个用于通信的 命名管道,并将管道名称写入目标进程的内存中。
  5. 执行与控制: 使用 NtCreateThreadEx 在目标进程中创建一个新线程。线程的起始地址直接指向载荷的 Bootstrap 导出函数,其参数为远程管道名称的地址。浏览器的原始主线程保持挂起状态,且永远不会被恢复。随后注入器等待载荷回连到管道。

阶段 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 方法,并传入其从 Local State 文件中读取的 app_bound_encrypted_key。COM 服务器忠实地解密该密钥,并将明文 AES-256 主密钥返回给载荷。
  5. 数据窃取: 凭借此 AES 密钥,载荷枚举所有用户配置文件(Default、Profile 1 等)。对于每个配置文件,它查询相关的 SQLite 数据库(Cookies、Login Data、Web Data),使用 AES-256-GCM 解密数据块,并将机密信息格式化为 JSON。结果直接写入注入器指定的输出目录。
  6. 关闭: 处理完所有配置文件后,载荷通过管道向注入器发送完成信号,并调用 FreeLibraryAndExitThread 进行清理。注入器收到信号后,使用 NtTerminateProcess 终止父主机进程。

🔧 构建说明

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

  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

### 选项

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

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