游乐游手机版
首页/AI教程/文章详情

利用Chrome MCP与AI的红队自动化加解密工作流

时间:2026-06-24 12:00
针对前端AES-CBC与SM2双重加密,利用ChromeMCP自动化提取密钥与加密函数,结合AI分析生成合法加密载荷,并通过BurpSuitejsrpc桥接浏览器实现实时加解密,构建端到端自动化攻击链路,将前端加密防线转化为进攻通道。
好的,作为一名在红队攻防与安全研究领域深耕多年的资深专家,我很高兴能为你深入剖析并重新构建这篇关于如何突破前端加密的实战技术文章。我们直接切入核心,看看这套将前端防御工事转变为进攻跳板的创新技术是如何运作的。 --- 基于Chrome MCP与AI的红队自动化加解密工作流 当目标登录接口被AES-CBC与SM2双重加密联手封锁时,传统的暴力破解工具几乎瞬间失效。问题非常现实:你发送的请求,服务端根本不认可,返回的全是无效响应。本文将分享一套将前端加密防线反向利用的创新攻击工作流。该方案借助Chrome MCP逆向提取密钥,结合AI智能生成加密载荷,并通过BurpSuite jsrpc实现实时加解密。简单来说,就是将敌人的坚固盾牌,转变为我们手中的进攻利器。 # 基于Chrome MCP与AI的红队自动化加解密工作流 ## 一、研究背景与攻击动机 前端加密技术如今几乎成为标配,这对红队渗透测试而言,意味着过去那些“万能”的撞库、暴力破解手段大多已失效。根本原因在于:登录接口不再接收明文密码,而是要求提交经过AES-CBC或SM2等算法处理后的密文。部分高安全系统甚至直接采用双重加密——先用SM2将AES密钥封装,再用这个AES密钥去加密实际业务数据。 这一趋势直接导致传统攻击工具集体“失灵”: | 工具/方法 | 失效原因 | 表现 | | :---: | :---: | :---: | | BurpSuite Intruder | 无法生成合法密文 | 所有爆破请求均返回400/403错误 | | Hydra/Medusa | 不支持加密预处理 | 甚至无法与目标完成握手 | | 自定义字典攻击 | 明文载荷被服务端直接拒收 | 无任何有效响应返回 | | 自动化扫描器 | 缺乏加密载荷生成能力 | 探测功能完全丧失 | 因此,红队迫切需要一套全新方案,能够穿透前端加密黑箱,自动化提取密钥,并伪造合法的加密请求。本文基于Chrome DevTools MCP、AI逆向分析以及BurpSuite jsrpc,构建了一条端到端自动化的加解密攻击链路。其核心思路极为巧妙:**将前端加密防线,直接转变为我们的进攻通道**。 ## 二、双重加密的技术剖析 ### 2.1 常见的双重加密架构 高安全等级的系统,通常采用混合加密来平衡安全性与性能。整个流程大致如下: ``` ┌─────────────────────────────────────────────────────────────┐ │ 客户端加密流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 明文数据 ──→ AES-CBC加密 ──→ Base64编码 ──→ 请求体 │ │ ↑ │ │ │ │ │ AES密钥 ──→ SM2公钥加密 ──→ 密钥密文 ──→ 请求头 │ │ │ └─────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────┐ │ 服务端解密流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 密钥密文 ──→ SM2私钥解密 ──→ AES密钥 │ │ ↓ │ │ 请求体 ──→ Base64解码 ──→ AES-CBC解密 ──→ 明文数据 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` - **第一层:非对称加密(SM2/RSA)** — 保护对称密钥的传输安全。前端使用服务端下发的公钥加密AES密钥,确保只有持有私钥的服务端才能解密。 - **第二层:对称加密(AES-CBC)** — 保护业务数据的机密性与完整性。使用随机生成的AES密钥加密请求体,而密钥本身又被非对称加密所保护。 从理论上看,这套架构相当安全:即便攻击者截获了完整的请求包,没有SM2私钥,也无法解开AES密钥,更无法查看明文数据。 ### 2.2 攻击面的重新审视 然而,从红队的视角审视,这套架构存在一个根本性的脆弱点——**所有加密过程均发生在客户端**。 这意味着什么? - 加密算法的实现细节、公钥、IV等所有密码学参数,都清晰地写在前端代码中。 - 这些加密函数本身就是JavaScript运行时中可被调用的公开接口。 - 因此,攻击者完全可以**直接调用前端的加密函数**,而无需自行重新实现算法。 这正是我们整个攻击方法论的核心:**与其逆向算法,不如重用算法;与其提取密钥,不如调用函数**。 ## 三、自动化攻击架构 ### 3.1 整体工作流 这套自动化攻击链路由三个核心组件协同完成,每个阶段环环相扣: ``` ┌─────────────────────────────────────────────────────────────┐ │ 阶段一:密钥与逻辑提取 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ Chrome MCP ──→ 自动导航至登录页 │ │ ↓ │ │ AI自动分析 ──→ 定位加密函数、提取公钥/AES密钥/IV │ │ ↓ │ │ jsrpc注入 ──→ 将加密函数暴露为全局可调用接口 │ │ │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段二:载荷自动生成 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ AI生成Payload ──→ SQL注入/XSS/越权测试载荷 │ │ ↓ │ │ 调用原生加密函数 ──→ 通过jsrpc调用浏览器内加密 │ │ ↓ │ │ 生成合法密文 ──→ 可直接提交的有效请求 │ │ │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 阶段三:BurpSuite集成 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ BurpSuite插件 ──→ 拦截请求,识别待加密字段 │ │ ↓ │ │ jsrpc调用 ──→ 将明文载荷发送至浏览器加密 │ │ ↓ │ │ 替换密文 ──→ 自动完成请求加密并转发 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### 3.2 Chrome MCP:自动化逆向的抓手 Chrome DevTools MCP作为MCP协议的浏览器控制实现,能够让AI以程序化方式操控Chrome浏览器。在攻击流程中,它主要承担以下任务: **任务一:自动导航与状态准备** ``` // AI通过MCP执行的自动化操作序列 1. na vigate_to("https://target.com/login") 2. wait_for_element("#username", timeout=5000) 3. fill_input("#username", "test_user") 4. fill_input("#password", "任意测试密码") 5. click_button("登录") 6. capture_network_request("/api/login") ``` **任务二:加密函数定位** ``` // AI在控制台执行的代码 // 搜索加密相关全局对象 const cryptoKeys = Object.keys(window).filter(k => k.toLowerCase().includes('encrypt') || k.toLowerCase().includes('sm2') || k.toLowerCase().includes('aes') ); console.log('候选加密对象:', cryptoKeys); // 遍历Vue/React组件树查找加密服务 const app = document.querySelector('#app').__vue_app__; const cryptoService = app.config.globalProperties.$crypto; ``` **任务三:参数提取** ``` // 断点提取密钥与IV debugger; // 在加密函数入口处执行 console.log('AES Key:', key); console.log('IV:', iv); console.log('SM2 Public Key:', publicKey); ``` ### 3.3 AI驱动的加密逻辑分析 AI模型在接收到MCP捕获的请求和源码后,会执行以下分析流程: **第一步:加密类型识别** | 特征 | 判定 | 后续动作 | | :---: | :---: | :---: | | 密文以`04`开头,长度130字符 | SM2 | 提取公钥,准备SM2加密调用 | | 密文为Base64,解码后长度16倍数 | AES-CBC | 提取Key和IV,确认填充模式 | | 同时存在两种密文 | 双重加密 | 定位密钥封装与数据加密的两层逻辑 | **第二步:调用链追踪** AI通过MCP的`evaluate_script`能力,在浏览器中执行JavaScript来追踪加密调用栈: ``` // 注入Hook,拦截所有加密相关调用 const originalEncrypt = window.encryptFunction; window.encryptFunction = function(...args) { console.trace('Encrypt called with:', args); debugger; // 触发断点,供AI分析上下文 return originalEncrypt.apply(this, args); }; ``` **第三步:自动化脚本生成** AI根据分析结果,自动生成jsrpc注入脚本,将加密函数暴露给外部的BurpSuite调用。 ### 3.4 jsrpc:浏览器与BurpSuite的加密桥梁 jsrpc技术的核心,是在浏览器中维持一个常驻的加密服务,通过WebSocket或HTTP与BurpSuite插件进行通信。 **浏览器端注入脚本**: ``` // 通过Chrome MCP注入 (function(){ // 定位原始加密函数 const aesKey = "7f3a8b2c5d1e9f4a"; const iv = "3c5f7a9b1d3e5f7a"; const sm2PublicKey = "04b9364f5c8a3e2d..."; // 封装加密接口 window.encryptService = { // AES-CBC加密 aesEncrypt: function(plaintext) { const encrypted = CryptoJS.AES.encrypt(plaintext, CryptoJS.enc.Utf8.parse(aesKey), { iv: CryptoJS.enc.Utf8.parse(iv), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); return encrypted.ciphertext.toString(CryptoJS.enc.Base64); }, // SM2加密 sm2Encrypt: function(plaintext) { return SM2Utils.encrypt(sm2PublicKey, plaintext); }, // 双重加密:SM2封装密钥 + AES加密数据 doubleEncrypt: function(plaintext) { const sessionKey = this.generateSessionKey(); const encryptedKey = this.sm2Encrypt(sessionKey); const encryptedData = this.aesEncryptWithKey(plaintext, sessionKey); return { key: encryptedKey, data: encryptedData }; } }; // 启动RPC服务 const ws = new WebSocket("ws://localhost:8080/encrypt"); ws.onmessage = function(msg) { const request = JSON.parse(msg.data); const result = window.encryptService[request.method](request.payload); ws.send(JSON.stringify({id: request.id, result: result })); }; })(); ``` **BurpSuite插件端**: 插件拦截请求后,识别出需要加密的字段,将明文通过WebSocket发送至浏览器进行加密,收到密文后再替换掉原始请求内容。 ## 四、实战案例:突破双重加密登录接口 ### 4.1 目标分析 某企业后台系统的登录接口采用了双重加密架构: **请求格式**: ``` POST /api/auth/login HTTP/1.1 Host: admin.target.com Content-Type: application/json { "key": "04a3b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4", "data": "xK8rP4sL2mN9qR5tY7uW1iE3aG6bH8jK0lZ2xC4vB6nM8pQ0rS2tU4vW6xY8zA0bC2dE4fG6hI8jK0lL2mN4oP6qR8sT0uV2wX4yZ6", "timestamp": 1704067200 } ``` 其中: - `key`字段:SM2加密的AES会话密钥 - `data`字段:AES-CBC加密的业务数据(包含username/password) - `timestamp`:时间戳(明文) ### 4.2 红队工作流执行 **步骤一:Chrome MCP自动化逆向** 使用以下提示词驱动AI完成自动化分析: ``` 使用 Chrome DevTools MCP + js-reverse-automation Skill 对目标站点进行深度登录逆向分析。 目标: 完整分析登录接口的双重加密逻辑,包括SM2公钥提取、AES密钥生成方式、参数构造流程。 目标站点: https://admin.target.com/login 任务: 1. 自动打开登录页,填写测试账号 admin / 123456 2. 抓取登录请求,识别 key 和 data 字段的生成逻辑 3. 在 Sources 中定位加密函数,判断是否使用 SM2 + AES-CBC 双重加密 4. 提取 SM2 公钥、AES 密钥生成算法、IV 固定值或生成方式 5. 自动生成 jsrpc 注入脚本,将加密函数暴露为外部可调用接口 ``` **步骤二:AI自动定位加密逻辑** AI通过MCP执行以下定位代码: ``` // 搜索SM2相关对象 window.sm2; // 输出: {encrypt: ƒ, decrypt: ƒ, utils: {…}} // 搜索AES加密调用 // 在network面板的initiator中追踪到 encryptRequest 函数 function encryptRequest(params) { const sessionKey = generateRandomKey(16); // 随机AES密钥 const encryptedKey = sm2.encrypt(publicKey, sessionKey); const encryptedData = aesCbcEncrypt(JSON.stringify(params), sessionKey, iv); return {key: encryptedKey, data: encryptedData}; } ``` **关键发现**: - AES密钥**每次请求随机生成**,无法通过静态提取获得 - 但加密函数**完全暴露在客户端**,可被直接调用 - IV为**固定值** `3c5f7a9b1d3e5f7a` **步骤三:jsrpc注入与BurpSuite集成** AI自动生成注入脚本,将`encryptRequest`函数暴露为RPC服务: ``` // 注入脚本 window.rpc = { encryptLogin: function(username, password, timestamp) { const params = { username: username, password: password, timestamp: timestamp }; return window.encryptRequest(params); } }; ``` BurpSuite插件配置为:拦截登录请求 → 提取明文字段 → 通过WebSocket调用`rpc.encryptLogin` → 替换`key`和`data`字段。 **步骤四:自动化攻击测试** 完成集成后,红队可以在BurpSuite Intruder中直接使用明文词典: | 明文字典 | 自动加密后 | 攻击效果 | | :---: | :---: | :---: | | `admin' OR '1'='1` | 合法SM2+AES密文 | SQL注入探测 | | `admin` + 密码字典 | 每个请求独立加密 | 身份爆破 | | `../../etc/passwd` | 合法密文 | 路径遍历测试 | ## 五、攻击技术深度解析 ### 5.1 为什么“调用加密函数”优于“复现加密算法” | 对比维度 | 传统逆向复现 | jsrpc调用原生函数 | | :---: | :---: | :---: | | 算法复杂度 | 需完整逆向算法实现 | 无需理解算法细节 | | 密钥提取 | 需从内存/源码提取 | 函数内部自动处理 | | 动态密钥 | 无法处理随机生成场景 | 原生支持,每次调用自动生成 | | 维护成本 | 目标更新需重新逆向 | 浏览器自动加载最新版本 | | 准确率 | 可能存在实现偏差 | 100%与真实请求一致 | ### 5.2 绕过加密边界的本质 这套方法论的实质在于:**将加密边界从“客户端-服务端之间”重新定义为“浏览器-攻击工具之间”**。 传统视角下,加密边界是客户端与服务端的协议边界,攻击者被隔离在密文空间之外,只能看到一堆乱码。而通过jsrpc,攻击工具被“接入”到浏览器内部,与加密函数处于同一个信任域,从而获得了直接操作明文的能力。 ``` 传统攻击模型: 攻击工具 --(明文)--> [加密边界] --(密文)--> 服务端 ↑ 攻击者无法穿透 本文攻击模型: 攻击工具 --(明文)--> jsrpc --(明文)--> 浏览器加密函数 --(密文)--> 服务端 ↑ 攻击工具与加密函数同处信任域 ``` ### 5.3 对抗前端混淆与代码加密 面对经过Obfuscator.io等工具混淆过的前端代码,AI可以通过以下策略突破: 1. **运行时追踪而非静态分析**:通过MCP触发实际的加密调用,观察输入与输出的对应关系。 2. **Hook关键API**:拦截`Function.prototype.call`、`eval`等动态执行函数。 3. **内存快照分析**:在加密函数执行后,读取闭包变量中存储的值。 ## 六、防御视角的思考 从蓝队角度出发,理解了这套攻击手法,才能构建更有效的防御措施。 ### 6.1 服务端加固方案 | 问题 | 攻击方式 | 防御方案 | | :---: | :---: | :---: | | 加密函数可被外部调用 | jsrpc远程调用 | 增加环境指纹校验(检测WebSocket外连) | | 请求可被重放 | 拦截合法请求并替换载荷 | 绑定请求时间戳 + 一次性Nonce | | 加密算法完全暴露 | 攻击者直接调用 | 将核心加密逻辑迁移至服务端(如WebCrypto + 签名) | ### 6.2 检测jsrpc攻击的特征 蓝队可以通过以下指标来检测自动化加密攻击: - **WebSocket外连**:浏览器向localhost或非业务域名发起WebSocket连接。 - **异常的函数调用模式**:加密函数在短时间内被高频调用,明显超出正常用户行为模式。 - **Headless浏览器特征**:检测`na vigator.webdriver`、`--headless`等自动化标记。 ## 七、总结 本文的核心,是提出并验证了一套突破前端双重加密防线的自动化红队工作流。核心结论如下: | 组件 | 作用 | 关键价值 | | :---: | :---: | :---: | | Chrome MCP | 自动化导航、代码定位、断点调试 | 将人工逆向转化为程序化操作 | | AI分析引擎 | 加密类型识别、函数定位、脚本生成 | 数分钟完成数小时的逆向工作 | | jsrpc + BurpSuite | 保持浏览器加密上下文,实时加解密 | 将明文攻击载荷自动转换为合法密文 | 这套工作流最根本性的突破在于:**不再试图“破解”加密,而是“接入”加密**。通过将攻击工具置于与加密函数相同的信任域,前端加密防线反而被转化为了进攻通道。 对红队而言,这意味着即使面对SM2+AES-CBC双重加密、随机密钥、代码混淆等高级防护,攻击链路依然可以自动化完成。对蓝队来说,这提醒我们:真正的安全边界,其实不在于前端加密的强度,而在于服务端对请求合法性校验的完备性——包括环境指纹、行为模式、请求完整性的多维度验证。
来源:https://cloud.tencent.com.cn/developer/article/2695082
上一篇阿里云管理控制台DDoS攻击识别操作指南 下一篇多Agent框架设计方法及划分依据详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网