DumpChromeSecrets Chrome数据提取工具技术分析
一、概述
1. 简介
A. 是什么
DumpChromeSecrets 是由 Maldev Academy 开发的 Chrome 浏览器数据提取工具,专门用于从现代版本的 Chrome 中提取敏感数据,包括刷新令牌、Cookie、保存的凭据、自动填充数据、浏览历史和书签。
B. 核心特点
- 支持 Chrome 127+ 的 App-Bound 加密绕过
- 通过进程注入和 DLL 注入技术提取数据
- 使用 Early Bird APC 注入技术
- 通过命名管道进行进程间通信
C. 项目状态
该项目已停止维护,推荐使用其继任者 DumpBrowserSecrets,支持更多浏览器。
2. 技术背景
A. Chrome 加密机制演进
从 Chrome 127 版本开始,Google 引入了 App-Bound Encryption(应用绑定加密)机制,将 Cookie 加密密钥与 Chrome 应用身份绑定。这一机制显著提高了数据提取的难度。
B. 传统的数据提取方式
在 Chrome 127 之前,主要使用 DPAPI(Data Protection API)解密主密钥,然后使用该密钥解密 Cookie 和登录数据。
二、Chrome 加密机制分析
1. App-Bound Encryption 原理
A. 加密密钥存储
App-Bound 加密密钥(名为 app_bound_encrypted_key)存储在用户数据目录的 Local State 文件中,格式为 JSON。
graph TD
A[Local State 文件] --> B[app_bound_encrypted_key]
B --> C[DPAPI 加密]
C --> D[需要 IElevator 解密]
D --> E[最终密钥]
E --> F[解密 Cookie/登录数据]B. IElevator COM 接口
Chrome 的提升服务通过 IElevator COM 接口提供了解密能力,只有 Chrome 自身的进程上下文才能调用该接口。这是 App-Bound 加密保护的核心机制。
2. 数据存储结构
| 数据类型 | 数据库路径 | 格式 | 加密方式 |
|---|---|---|---|
| App-Bound 密钥 | User Data\Local State | JSON | DPAPI + IElevator |
| Cookie | User Data\Default\Network\Cookies | SQLite | AES-256-GCM (v20) |
| 登录凭据 | User Data\Default\Login Data | SQLite | AES-256-GCM (v20) |
| 令牌 | User Data\Default\Web Data | SQLite | AES-256-GCM (v20) |
| 自动填充 | User Data\Default\Web Data | SQLite | 无 |
| 历史记录 | User Data\Default\History | SQLite | 无 |
| 书签 | User Data\Default\Bookmarks | JSON | 无 |
三、工具架构设计
1. 组件结构
graph TB
A[DumpChromeSecrets.exe] --> B[创建 Chrome 进程]
B --> C[Early Bird APC 注入]
C --> D[DllExtractChromeSecrets.dll]
D --> E[调用 IElevator]
E --> F[解密 App-Bound 密钥]
F --> G[提取 SQLite 数据]
G --> H[命名管道]
H --> I[输出 JSON 文件]2. 核心组件
A. 可执行文件
- 创建无头 Chrome 进程
- 通过 Early Bird APC 注入技术加载 DLL
- 通过命名管道接收提取的数据
B. DLL 模块
- 在 Chrome 进程上下文中运行
- 调用 IElevator COM 接口解密密钥
- 从 SQLite 数据库提取并解密数据
四、技术实现细节
1. Early Bird APC 注入
Early Bird APC 注入是一种进程注入技术,其原理是在进程初始化的早期阶段通过异步过程调用(APC)队列注入代码。
sequenceDiagram
participant EXE as 可执行文件
participant CP as Chrome 进程
participant DLL as 注入的 DLL
participant IE as IElevator 服务
EXE->>CP: 创建挂起的 Chrome 进程
EXE->>DLL: 通过 APC 队列注入 DLL
DLL->>CP: 在进程上下文中执行
DLL->>IE: 调用 DecryptData
IE-->>DLL: 返回解密后的密钥
DLL->>DLL: 解密 SQLite 数据
DLL->>EXE: 通过命名管道传输数据2. IElevator 调用机制
通过在 Chrome 进程上下文中注入代码,工具能够以正确的应用身份调用 IElevator::DecryptData 方法,从而绕过 App-Bound 加密保护。
3. 数据提取流程
A. 解密密钥获取
- 从 Local State 文件读取加密的 App-Bound 密钥
- 调用 IElevator COM 接口解密
- 获得主密钥用于后续数据解密
B. SQLite 数据提取
- 使用 SQLite amalgamation 库打开数据库文件
- 执行 SQL 查询提取敏感数据
- 使用 AES-256-GCM 解密加密字段
- 将数据序列化为 JSON 格式
五、使用方法
1. 命令行参数
Usage: DumpChromeSecrets.exe [options]
Options:
/o <file> 输出 JSON 文件(默认:ChromeData.json)
/all 导出所有条目(默认:每类最多 16 条)
/? 显示帮助信息
Examples:
DumpChromeSecrets.exe 提取 16 条数据到 ChromeData.json
DumpChromeSecrets.exe /all 导出所有条目
DumpChromeSecrets.exe /o Output.json /all 导出所有数据到 Output.json2. 输出格式
提取的数据以 JSON 格式输出,包含以下字段:
- Cookies:Cookie 名称、值、域名、路径等
- Logins:保存的用户名和密码
- Tokens:各种认证令牌
- Autofill:自动填充表单数据
- History:浏览历史记录
- Bookmarks:书签列表
六、安全防护建议
1. 用户层面防护
A. 减少敏感数据存储
- 避免在浏览器中保存重要密码
- 使用密码管理器而非浏览器内置保存功能
- 定期清理 Cookie 和浏览数据
B. 启用安全模式
- 启用 Chrome 的安全浏览功能
- 使用硬件级别的密钥存储(如 TPM)
2. 企业层面防护
A. 端点检测与响应
- 部署 EDR 解决方案监控进程注入行为
- 监控异常的 Chrome 进程启动
- 检测命名管道通信模式
B. 数据保护策略
- 实施企业密码管理策略
- 使用浏览器隔离技术
- 定期审计浏览器扩展
七、技术影响分析
1. 攻击场景
A. 红队测试
- 渗透测试中模拟内部威胁
- 验证端点安全控制的有效性
- 评估数据泄露风险
B. 恶意滥用
- 信息窃取类恶意软件
- 针对性的定向攻击
- 数据经纪人非法采集
2. 防御演进
Chrome 的 App-Bound Encryption 是防御演进的一个例子,但 DumpChromeSecrets 证明了任何客户端保护都可能被绕过。
graph LR
A[Chrome 加密升级] --> B[攻击者寻找新方法]
B --> C[防御方进一步增强]
C --> D[持续的攻防博弈]八、相关工具与资源
1. 继任项目
- DumpBrowserSecrets:支持更多浏览器的数据提取
2. 相关研究
- luci4 的浏览器 Cookie 转储研究
- snovvcrash 的 IElevator COM 接口研究
3. 技术模块
- SQLite amalgamation:sqlite.org 提供的 SQLite 库
九、总结
DumpChromeSecrets 展示了现代浏览器数据保护机制的局限性,即使在引入了 App-Bound Encryption 这样的强化保护后,通过进程注入等技术仍然可以提取敏感数据。
该项目对于安全研究人员和红队从业者有价值,可以用于评估和测试端点安全控制的有效性。同时,它也提醒用户和企业需要采取多层防御策略,不能仅依赖客户端保护机制。