移动端渗透测试平台

AI驱动的移动端渗透测试平台,整合虚拟设备控制、流量拦截、UI自动化和法医数据分析功能,实现闭环自动化安全测试。

  • by gglessner
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 gglessner/Corellium-MCP

使用说明

Corellium MCP+Parley MCP

版本:2.0.0

人工智能驱动的移动渗透测试 结合 科力安 虚拟设备控制、设备控制MCP会话感知UI自动化和Frida仪器, Parley MCP 主动流量拦截和分析MCP取证数据解码——所有这些都是由AI代理通过模型上下文协议编排的。

为什么这种组合是毁灭性的

传统的移动渗透测试工具是孤立运行的。您可以使用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="<parley-ca-cert-base64>")

# 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分析 --移动取证数据解码、编码和分析工具包
  • Parley MCP --AI控制TCP/TLS渗透测试代理 加兰德·格莱斯纳
  • 基于 谈判 作者:加兰德·格莱斯纳

许可证

版权所有(C)2025加兰德·格莱斯纳(gglessner@gmail.com)

此程序是自由软件:您可以在下面重新分发和/或修改它 自由软件发布的GNU通用公共许可证条款 Foundation,许可证版本3,或(由您选择)任何更高版本 版本。

分发此程序是希望它有用,但没有 任何保证;甚至没有对适销性或适用性的暗示保证 为了特定的目的。有关更多详细信息,请参阅GNU通用公共许可证。

您应该已经收到GNU通用公共许可证的副本以及 这个节目。如果没有,请参阅 https://www.gnu.org/licenses/.