Corellium MCP+Parley MCP
版本:2.0.0
为什么这种组合是毁灭性的
传统的移动渗透测试工具是孤立运行的。您可以使用Burp捕获流量,检查有异议的文件,使用Frida跟踪系统调用——所有这些都是手动的,都是断开连接的。此仓库提供了一个AI代理 对网络层、设备内部和取证数据分析的同时编程控制,创建闭环自动攻击平台。
| 层 | Parley MCP | 核心MCP | 设备控制MCP | 分析MCP |
|---|---|---|---|---|
| 网络 | 主动MITM——拦截、重写、搜索、扫描、重放流量;用于完整TLS MITM的自动证书CA;上游代理链 | 被动PCAP下载,带自动SSL旁路的网络监视器 | Logcat流/grep用于网络日志输出(Android) | -- |
| 应用 | HTTP请求/扫描/回放工具;WebSocket检测;结构化HTTP解析 | 查看应用程序内部——文件系统、系统调用、崩溃、恐慌 | Frida附加/生成/脚本注入;可访问性树转储(iOS);UI层次转储(Android);用logcat watch进行意图模糊 | -- |
| 数据 | 饼干罐管理;用于Burp/ZAP互操作的HAR导出;预构建的安全模块 | 原始base64文件下载;CoreTrace数据检索与PID过滤 | 批量偏好提取与模式扫描;iOS捆绑检查;ADB文件拉取;发现分类账 | 解码和编码plist、Cookie、JWT、配置文件、SQLite、AEP配置、密钥链转储、Akamai传感器数据、屏幕截图元数据 |
| 控制 | 修改应用程序 接收 从其后端;直接回放/扫描端点 | 修改应用程序 包含 在设备上 | 像素精确点击/滑动/键入;硬件按钮;人类敲击回退;Frida方法挂钩;发现跟踪 | 解析、分析和重新编码应用程序 商店 (下载→ 解码→ 修改→ 编码→ 上传) |
关键见解:Parley让AI *原因* 事情(篡改API流量、发送HTTP请求、扫描端点)。Corellium让AI *观察* 和 *提取* (应用程序的内部反应、原始文件下载、CoreTrace系统调用数据)。设备控制MCP让AI *互动* 和 *仪器* (点击UI流,运行Frida脚本,转储可访问性树,模糊意图,并跟踪结果)。分析MCP让AI *理解* 和 *重编码* 提取的数据(解码专有格式、修改、回编码以供上传)。合在一起:闭环自动化测试。
杀手工作流程
自动授权边界映射(OWASP M3)
AI使用Parley的 module_create 编写一个递增的Python模块 user_id 在每个API请求中。Corellium的CoreTrace显示应用程序是处理还是拒绝未经授权的数据。AI会自动读取两侧并映射每个端点的授权边界。
客户端逻辑旁路响应篡改(OWASP M7)
Parley重写服务器响应: "isPremium": false 成为 true, "isJailbroken": true 成为 falseCorellium的CoreTrace观察应用程序是在服务器端执行这些检查还是盲目信任它们。文件系统提取显示篡改的值是持久化到SharedPreferences还是NSUserDefaults。
双面凭证审核(OWASP M1、M9)
帕利 traffic_search 图案如 Authorization, Bearer, password, token 找到所有通过网络的凭证。Corellium的 corellium_download_file 检查这些相同的凭据是否不安全地存储在磁盘上。一次性完成凭证审核——网络和存储。
SSL固定验证(OWASP M5)
Corellium的网络监视器在boringsl级别透明地绕过了固定。但这款应用程序真的 *实施* 钉?改为通过Parley路由流量(Parley提供自己的证书)——如果应用程序仍然正常工作,则 无固定。如果它拒绝Parley的证书,则确认锁定,您可以使用Corellium的旁路进行进一步测试。
具有碰撞相关性的引信(OWASP M4)
Parley的模块管道将格式错误的数据(过大的字符串、格式字符串、SQL注入、空字节)注入API响应。Corellium的 corellium_get_kernel_panics 和 corellium_console_log 立即显示应用程序是否崩溃,CoreTrace会准确显示它死于哪个系统调用。完整的因果关系可见性。
闭环迭代测试
AI可以自主创建Parley重写模块→ 在Corellium上运行应用程序→ 通过CoreTrace/files/panics观察结果→ 优化模块→ 重复。这是自动自适应渗透测试。
建筑
+-------------------+
| AI Agent | Orchestrates all four MCPs simultaneously
| (Cursor) |
+--------+----------+
|
MCP Protocol
|
+--------+----------+--------------------+------------------+------------------+
| | | | |
| Corellium-MCP | Device-Control-MCP | Parley-MCP | Analysis-MCP |
| (72 tools) | (31 tools) | (23 tools) | (22 tools) |
| | | | |
| Virtual Device | Session state | TCP/TLS Proxy | Plist decode/ |
| Management | (instance_id, | + Python Mods | encode |
| App Lifecycle | serviceIp) | + SQLite DB | Cookie parser |
| Filesystem I/O | Artifact dir | + HTTP Tools | JWT decoder |
| CoreTrace | Tap/swipe/type | + Auto-Cert CA | SQLite analyzer |
| MATRIX Assess. | Screenshot+grid | + Cookie Jar | Provisioning |
| Hypervisor Hooks | Session-aware | + HAR Export | profiles |
| Network Capture | SSH exec | + Replay/Scan | Keychain dumps |
+--------+----------+---------+----------+--------+---------+------------------+
| | |
| +----------------+ |
v v v
+------------------+ +------------------+
| Corellium Cloud | | Target Backend |
| Virtual Device || API Server |
| (iOS / Android) | | |
+------------------+ +------------------+
Mobile App Traffic ------> Parley Proxy ------> Backend
(routed via proxy) (intercept/rewrite)组合工作流示例
# --- PHASE 1: Setup ---
# Parley-MCP: Stand up a TLS-decrypting proxy for the target backend
web_proxy_setup(target_domain="api.targetapp.com", listen_port=8080)
# Corellium-MCP: Create device, install app, baseline snapshot
corellium_connect()
corellium_create_instance(project_id="...", flavor="iphone16pm", os_version="18.0", name="pentest")
corellium_agent_ready(instance_id="...")
corellium_create_snapshot(instance_id="...", name="clean-state")
# Corellium-MCP: Install Parley's proxy CA cert on the device
corellium_install_profile(instance_id="...", base64_profile="
")
# Corellium-MCP: Upload and install the target app
corellium_upload_file(instance_id="...", device_path="/tmp/target.ipa", base64_content="...")
corellium_install_app(instance_id="...", file_path="/tmp/target.ipa")
# --- PHASE 2: Reconnaissance ---
# Corellium-MCP: Start syscall tracing + launch the app
corellium_start_core_trace(instance_id="...")
corellium_run_app(instance_id="...", bundle_id="com.target.app")
# Parley-MCP: Watch traffic flow in, get summary
traffic_summary(instance_id="...")
traffic_search(instance_id="...", pattern="password|token|api_key|Bearer")
# --- PHASE 3: Active Testing ---
# Parley-MCP: Deploy IDOR testing module
module_create(name="IDOR_Probe", direction="client",
code="def module_function(n, si, sp, di, dp, data):\n return data.replace(b'user_id=123', b'user_id=456')")
# Corellium-MCP: Check app's reaction
corellium_download_file(instance_id="...", device_path="/data/data/com.target.app/databases/app.db")
corellium_get_kernel_panics(instance_id="...")
# Parley-MCP: Compare original vs modified traffic
traffic_query(instance_id="...", show_modified=True)
# --- PHASE 4: Automated Assessment ---
# Corellium-MCP: Run MATRIX while Parley captures everything
corellium_create_assessment(instance_id="...", bundle_id="com.target.app")
corellium_start_monitoring(instance_id="...", assessment_id="...")
# ... interact with app ...
corellium_stop_monitoring(instance_id="...", assessment_id="...")
corellium_run_security_tests(instance_id="...", assessment_id="...")
corellium_download_security_report(instance_id="...", assessment_id="...")
# --- PHASE 5: Cleanup ---
corellium_restore_snapshot(instance_id="...", snapshot_id="...")
proxy_stop(instance_id="...")
corellium_disconnect()此回购中有什么内容
Corellium-MCP/
├── README.md # This file
├── MCP_SETUP.md # Detailed setup instructions
├── requirements.txt # Corellium-MCP + Analysis-MCP dependencies
├── LICENSE # GNU General Public License v3
├── MCPs/
│ ├── corellium_mcp/ # Corellium MCP server (72 tools)
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── client.py # REST API client (httpx)
│ │ └── server.py # MCP tool definitions
│ ├── device_control_mcp/ # Device Control MCP server (31 tools)
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── server.py # MCP tool definitions
│ │ ├── session.py # Session & engagement management
│ │ ├── input_codec.py # Touch/swipe/text input encoding
│ │ ├── ios_tools.py # iOS SSH & bundle inspection
│ │ ├── android_tools.py # Android ADB & intent fuzzing
│ │ ├── frida_runner.py # Frida dynamic instrumentation
│ │ └── frida_scripts/ # Frida JS snippets
│ ├── analysis_mcp/ # Analysis MCP server (22 tools)
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ └── server.py # Forensic decoding/encoding tools
│ └── parley_mcp/ # Parley MCP server (23 tools)
│ ├── run_server.py # Entry point
│ ├── requirements.txt # Parley dependencies
│ ├── README.md # Full Parley documentation
│ └── parley_mcp/ # Core package
│ ├── server.py # MCP tool definitions
│ ├── proxy_engine.py # Multi-threaded proxy engine
│ ├── database.py # SQLite3 data layer
│ ├── module_manager.py # Dynamic Python module system
│ └── module_libs/ # Protocol libraries (JWT, HTTP, etc.)
├── .mcp.json # Claude Code MCP server config
├── .cursor/
│ ├── mcp.json # Cursor MCP server config
│ └── skills/
│ └── corellium-mcp/
│ ├── SKILL.md # Pentesting methodology + tool guide
│ └── pentest-reference.md # Deep-dive reference (OWASP, paths, etc.)
└── .claude/
├── CLAUDE.md # Claude Code project context
└── skills/
└── corellium-mcp/ # Mirror of .cursor/skills/
├── SKILL.md
└── pentest-reference.md先决条件
- Python 3.10+
- A. 科力安 带有API令牌的帐户
- 从Parley代理到目标应用后端的网络路由
安装
cd Corellium-MCP
pip install -r requirements.txt
pip install -r MCPs/parley_mcp/requirements.txt配置
在中设置您的Corellium凭据 .cursor/mcp.json (光标)或 .mcp.json (克劳德代码):
{
"mcpServers": {
"corellium-mcp": {
"command": "python",
"args": ["-m", "corellium_mcp"],
"env": {
"PYTHONPATH": "MCPs",
"CORELLIUM_API_ENDPOINT": "https://app.corellium.com/api",
"CORELLIUM_API_TOKEN": "your-token-here"
}
},
"device-control-mcp": {
"command": "python",
"args": ["-m", "device_control_mcp"],
"env": {
"PYTHONPATH": "MCPs",
"CORELLIUM_API_ENDPOINT": "https://app.corellium.com/api",
"CORELLIUM_API_TOKEN": "your-token-here",
"DEVICE_CONTROL_ARTIFACTS_ROOT": "./artifacts"
}
},
"parley-mcp": {
"command": "python",
"args": ["MCPs/parley_mcp/run_server.py"]
},
"analysis-mcp": {
"command": "python",
"args": ["-m", "analysis_mcp"],
"env": {
"PYTHONPATH": "MCPs"
}
}
}
}或设置环境变量 CORELLIUM_API_ENDPOINT 和 CORELLIUM_API_TOKEN.
看 MCP_SETUP.md 有关详细的设置说明。
工具清单
Corellium MCP(72个工具)
| 类别 | 计数 | 亮点 |
|---|---|---|
| 连接 | 3 | 连接、断开连接、列出连接 |
| 项目 | 2 | 列出并检查项目 |
| 型号 | 2 | 浏览设备型号和固件版本 |
| 实例 | 13 | 创建/启动/停止/重新启动/暂停/删除、屏幕截图、控制台日志、代理就绪 |
| 应用程序 | 5 | 安装、卸载、运行、终止、枚举 |
| 文件 | 5 | 在越狱/root文件系统上上传、下载、删除、列表;按包ID查找应用程序数据容器 |
| 快照 | 4 | 创建、列出、还原、删除 |
| 网络 | 4 | 启动/停止网络监控、PCAP捕获下载、网络信息 |
| SSH | 1 | 通过paramiko执行shell命令(密钥链转储器、FRIDA、异议、应用程序启动) |
| UI自动化 | 1 | 注入触摸、键盘和文本输入事件 |
| MATRIX | 7 | 全自动安全评估管道 |
| 钩子 | 5 | 管理程序级执行钩子 |
| CoreTrace | 4 | 启动、停止、获取(带PID过滤器)、清除管理程序级系统调用跟踪 |
| 系统 | 9 | 锁定/解锁、属性、外围设备、死机、主机名、关机 |
| 端口 | 2 | 暴露SSH(22)、FRIDA(27042)、ADB(5555) |
| 配置文件 | 3 | iOS配置文件管理 |
设备控制MCP(31个工具)
| 类别 | 计数 | 亮点 |
|---|---|---|
| 会话 | 3 | Session_set/get/clear——缓存实例_id、捆绑_id、服务Ip;创建工件目录 |
| 输入 | 4 | 点击、滑动、键入文本、按下按钮——更正/输入有效载荷格式 |
| 截图 | 1 | 写入工件目录,可选坐标网格覆盖 |
| 结果 | 3 | finding_add、Findings_list、Findings_export——仅通过markdown导出附加JSONL |
| iOS | 4 | SSH执行,get_app_state,pull_nsuserdefaults,inspect_iOS_bundle |
| 安卓 | 10 | adb_connect/shell/lull、pull_shared_prefs、ui_dump/ui_tap、intent_send、logcat生命周期 |
| Frida | 5 | Frida_connect、Frida_ps、Frida_run_script、Frida_spawn、ax_dump |
| 回退 | 1 | request_human_tap——抵抗UI元素的L4回退 |
Parley MCP(23个工具)
| 类别 | 计数 | 亮点 |
|---|---|---|
| Web代理 | 1 | 一个调用TLS解密代理,具有完整的HTTP重写功能 |
| 代理生命周期 | 4 | 启动(使用自动证书、上游代理)、停止、列表、状态 |
| 模块管理 | 6 | 创建/更新/删除/启用/列出Python重写模块;部署预构建的安全模板 |
| 流量分析 | 7 | 查询(HTTP解码)、摘要、连接、清除、搜索、导出(HAR)、重放 |
| HTTP工具 | 2 | 使用cookie jar通过代理直接发送HTTP请求;多路径端点扫描 |
| 证书 | 1 | 生成MITM根CA(每个主机自动生成证书) |
| Cookie罐 | 2 | 显示并清除自动交叉请求Cookie持久性 |
分析MCP(22个工具)
| 类别 | 计数 | 亮点 |
|---|---|---|
| Plist/Config | 3 | 解码二进制/XML Plist,将JSON编码为Plist,解码配置文件 |
| 数据格式 | 4 | 解码base64 JSON、iOS二进制Cookie、JWT、Adobe AEP配置 |
| 二进制分析 | 3 | 使用关键字过滤、二进制搜索、SQLite模式+字符串提取提取字符串 |
| Android | 5 | 解码Android清单(AXML)、APK结构、网络安全配置、资产列表/提取 |
| Keychain | 1 | 通过安全分析解析iOS Keychain转储器输出 |
| 反机器人 | 1 | 解码Akamai BMP传感器有效载荷 |
| 截图 | 1 | 分析PNG/JPEG元数据是否存在SplashBoard数据泄漏 |
| 混淆 | 1 | 卡方变换叠加检测编码链 |
| APK元数据 | 1 | Kotlin模块构建变体检测 |
| 文件实用程序 | 1 | 将base64编码数据(屏幕截图、二进制文件、数据库)保存到本地文件 |
| HSTS | 1 | 分析HSTS预加载数据 |
总共148个工具 在四台服务器上进行全面的人工智能驱动的移动渗透测试。
光标技能
技能在 .cursor/skills/corellium-mcp/ (也反映在 .claude/skills/)向AI代理传授所有四种MCP的完整渗透测试方法:
- 技能.md --8阶段与OWASP一致的工作流程、移动十大工具映射、四种MCP集成模式、来自真实世界测试的82条关键规则
- pentest-reference.md --iOS/Android文件系统路径、MASTG测试映射、MATRIX类别、CoreTrace模式、核心数据分析、FRIDA目标、Parley模块示例、设备控制工作流、发现分类账、23种以上高收益发现模式
作者
加兰德·格莱斯纳-- gglessner@gmail.com
学分
- Corellium MCP -Corellium REST API集成用于虚拟设备管理
- MCP分析 --移动取证数据解码、编码和分析工具包
- 基于 谈判 作者:加兰德·格莱斯纳
许可证
版权所有(C)2025加兰德·格莱斯纳(gglessner@gmail.com)
此程序是自由软件:您可以在下面重新分发和/或修改它 自由软件发布的GNU通用公共许可证条款 Foundation,许可证版本3,或(由您选择)任何更高版本 版本。
分发此程序是希望它有用,但没有 任何保证;甚至没有对适销性或适用性的暗示保证 为了特定的目的。有关更多详细信息,请参阅GNU通用公共许可证。
您应该已经收到GNU通用公共许可证的副本以及 这个节目。如果没有,请参阅 https://www.gnu.org/licenses/.
