微信小程序全自动化渗透工具

admin 2026-08-11 05:09:05 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍一套微信小程序全自动化渗透工具链,通过Python提取偏移量,经WMPFDebugger完成Frida注入,由e0e1-wx提供调试代理,最终经MCP协议对接ClaudeCode实现AI驱动渗透。文中详细说明了环境依赖、五步启动顺序及报错排查。建议使用者务必锁定Node.jsv20版本并严格按序启动以防连接失败。 综合评分: 82 文章分类: 渗透测试,安全工具,WEB安全,AI安全,红队


cover_image

微信小程序全自动化渗透工具

hello-xiaoniao hello-xiaoniao

李白你好

2026年8月11日 00:00 青海

在小说阅读器读本章

去阅读

工具介绍

集成了WMPFDebugger,e0e1-wx,wmpf-offset-adaptation-skill解决了微信小程序更新后偏移值改变导致的注入失败。

一套完整的微信小程序(PC 端)安全评估工具链。 偏移自动提取 → Frida 注入 → CDP 代理 → MCP 工具链 → AI 渗透测试

架构

┌─────────────────────────────────────────────────────────────────┐
│  偏移提取工具 (Python)                                           │
│  文件:偏移提取工具/extract_wmpf_offsets.py                       │
│  依赖:pip install pefile capstone                              │
│  用途:从 flue.dll 自动提取 Frida 偏移量                          │
└──────────────────────┬──────────────────────────────────────────┘
                       │ 生成 addresses.{version}.json
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│  WMPFDebugger (Node.js) — Frida-only 模式                       │
│  文件:WMPFDebugger/src/index.ts(已修改)                       │
│  依赖:npm install && npm install [email protected]                  │
│  用途:只做 Frida 注入,不开 debug/proxy server                   │
│  配置:WMPFDebugger/frida/config/addresses.{version}.json        │
└──────────────────────┬──────────────────────────────────────────┘
                       │ Frida 注入(修改 CDP 过滤器和场景号)
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│  e0e1-wx 引擎 (Python)                                          │
│  文件:e0e1-wx/start_engine.py(手动启动)                       │
│         e0e1-wx/package/devtools/engine.py(已修改)              │
│  用途:启动 debug server (9421) + proxy server (62000)           │
│  注意:engine.py 已跳过 Frida 注入,只保留服务器功能               │
└──────────────────────┬──────────────────────────────────────────┘
                       │ CDP 协议 (ws://127.0.0.1:62000)
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│  e0e1-wx MCP Server (Python)                                    │
│  端口:49999                                                    │
│  用途:通过 MCP 工具连接 CDP,提供安全分析接口                     │
└──────────────────────┬──────────────────────────────────────────┘
                       │ MCP 协议 (Streamable HTTP)
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│  Claude Code / AI Agent                                        │
│  用途:通过 MCP 工具链自动执行渗透测试                             │
└─────────────────────────────────────────────────────────────────┘

前置条件

| 项目 | 要求 | 说明 | | — | — | — | | 操作系统 | Windows 10/11 | 仅支持 Windows | | 微信 PC 版 | 4.x 以上 | 自动安装 WMPF | | Python | 3.10+ | 推荐 3.12 | | Node.js | 20 LTS | [email protected] 需要 Node.js v20 | | 内存 | 至少 16GB | 分析 flue.dll 需要大量内存 |


安装

1. 偏移提取工具

cd 偏移提取工具
pip install -r requirements.txt

验证:

python extract_wmpf_offsets.py --version 25297

2. WMPFDebugger

cd WMPFDebugger
npm install
npm install [email protected]    # 必须锁 v16.6.6,否则 ESM 不兼容!
npm install -g ts-node       # 全局安装 ts-node

重要: frida 的二进制文件与 Node.js 版本强绑定。 如果你使用 Node.js v20,[email protected] 会自动下载对应的二进制。 如果你使用 Node.js v22+,frida 会报 NODE_MODULE_VERSION 错误。 解决方案:降级到 Node.js 20 LTS,或使用 nvm 管理版本。

验证:

node -e "const f = require('frida'); console.log('frida OK:', typeof f.getLocalDevice)"
# 输出: frida OK: function

3. e0e1-wx

cd e0e1-wx
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

启动流程(关键!顺序不能错)

完整启动顺序

第 1 步:启动 WMPFDebugger(Frida 注入)
         双击 WMPFDebugger/一键启动.bat
         或: cd WMPFDebugger && node -r ts-node/register src/index.ts
         等待出现: [frida] script loaded, WMPF version: xxx

第 2 步:启动 e0e1-wx 引擎(debug server + proxy server)
         打开新终端,cd e0e1-wx
         运行: python start_engine.py
         等待出现: [OK] debug server (9421) + proxy server (62000) started

第 3 步:打开微信小程序
         在微信中点击打开一个小程序(不是拖拽)
         小程序会自动连接到 debug server (9421)

第 4 步:启动 e0e1-wx GUI(MCP Server)
         在 e0e1-wx 目录运行: python main.py
         MCP Server 在 49999 端口自动启动

第 5 步:连接 Claude Code
         注册 MCP: claude mcp add wxcdp --transport http http://127.0.0.1:49999/mcp
         开始渗透测试

启动顺序图

时间线 →
┌──────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ WMPFDebugger │    │ e0e1-wx 引擎 │    │ 打开小程序   │    │ e0e1-wx GUI  │
│ (Frida 注入) │ →  │ (9421+62000) │ →  │ (连 9421)    │ →  │ (MCP 49999)  │
└──────────────┘    └──────────────┘    └──────────────┘    └──────────────┘

重要: 如果顺序搞反了(先开小程序再启动引擎),小程序不会自动连接 debug server。 此时需要关掉小程序重新打开,或者重启微信。

微信更新后的操作

第 1 步:双击 WMPFDebugger/auto-extract.bat
         (自动检测最新 flue.dll,提取偏移,写入 config 目录)
         或手动:
         python 偏移提取工具/extract_wmpf_offsets.py --version 新版本号

第 2 步:按上面的启动流程重新启动

端口一览

| 端口 | 用途 | 由谁启动 | 必须先启动 | | — | — | — | — | | 9421 | debug server(小程序连接) | start_engine.py | WMPFDebugger | | 62000 | CDP 代理(DevTools 连接) | start_engine.py | WMPFDebugger | | 49999 | MCP Server(AI 工具链) | python main.py | 引擎 + 小程序 |

修改说明

WMPFDebugger 修改内容

| 文件 | 修改 | | — | — | | src/index.ts | Frida-only 模式 — 不启动 debug/proxy server,由 e0e1-wx 接管 | | src/index.ts | 轮询等待 — frida_server 每 2 秒重试,最多等 60 秒 | | src/index.ts | 异常保护 — .catch() 防止 Frida 注入失败导致进程退出 | | src/index.ts | 保底逻辑 — PPID 查找失败时用第一个 WeChatAppEx 进程 | | 一键启动.bat | [新增] 启动脚本,带 Node.js 版本检查 |

e0e1-wx 修改内容

| 文件 | 修改 | | — | — | | package/devtools/engine.py | start() 跳过 Frida 注入,只启动 debug/proxy server | | package/devtools/engine.py | _start_frida_sync() 返回 (None, None) | | start_engine.py | [新增] 独立启动引擎脚本(不依赖 GUI) |

常见问题

Q: 一键启动.bat 报 frida 加载错误

NODE_MODULE_VERSION 115 → 需要 NODE_MODULE_VERSION 137

原因: frida 二进制与 Node.js 版本不匹配。 解决: 切换到 Node.js 20 LTS,重新安装 npm install [email protected]

Q: CDP 连接不上(62000 端口未监听)

原因: e0e1-wx 引擎未启动。 解决: 运行 python start_engine.py 启动引擎。

Q: CDP 能连上但没响应(超时)

原因: 小程序未连接到 debug server (9421)。 解决: 关掉小程序重新打开,确保 debug server 先于小程序启动。

Q: appservice 上下文不可访问

原因: 小程序未完全打开(拖拽预览状态),或 MCP 缓存了旧 context ID。 解决: 确保在微信中点击打开(不是拖拽)小程序。重启 e0e1-wx GUI。

Q: 偏移提取脚本失败

原因: 新版本 flue.dll 结构变化。 解决: 使用 IDA Pro + 偏移提取工具/SKILL.md 手动分析。

Q: 启动后 WMPFDebugger 窗口一闪而过

原因: ts-node 未安装或 frida 未正确安装。 解决:npm install -g ts-nodenpm install [email protected]

工具下载

https://github.com/hello-xiaoniao/WMP-pentest-automation/tree/main

网络安全情报攻防站

www.libaisec.com

综合性的技术交流与资源共享社区

专注于红蓝对抗、攻防渗透、威胁情报、数据泄露

👇 点击阅读原文,访问网络安全情报攻防站


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:李白你好 hello-xiaoniao hello-xiaoniao《微信小程序全自动化渗透工具》

评论:0   参与:  0