mcpField
I
ios-pentest

ios-pentest

github.com/hardw00t安全10739 次安装28 周前更新
代码仓库

关于 ios-pentest

ios-pentest 是一项技能,通过专项操作手册和方法指南组织 iOS 应用安全评估,面向检查应用二进制文件和已安装应用的测试人员。内容覆盖从侦察到报告的 OWASP MASTG 流程。

主要功能

  1. 01覆盖 iOS 评估各阶段的操作手册
  2. 02SSL 固定和越狱检测测试
  3. 03钥匙串及应用存储分析
  4. 04网络、身份验证和加密测试
  5. 05包含 iOS 证据的结构化发现项

适用场景

  1. 01评估 IPA 和已安装的 iOS 应用
  2. 02调查钥匙串或应用文件中的凭据
  3. 03测试 HTTPS、gRPC 或 WebSocket 流量
  4. 04检查 OWASP MASTG 和 MASVS 要求

MCP 相关

该技能提及使用 Mobile MCP 对 iOS 模拟器或设备进行 UI 自动化和截图采集,并提供 Mobile MCP 服务配置示例。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hardw00t/ai-security-arsenal --skill ios-pentest

安装后在 Claude Code 中输入/ios-pentest确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

checklists/
owasp_mastg_ios.md
examples/
initial_setup.md
keychain_dump.md
ssl_bypass_run.md
methodology/
auth_testing.md
crypto_testing.md
data_storage.md
dynamic_analysis.md
network_testing.md
recon.md
static_analysis.md
payloads/
jailbreak_detection_paths.txt
url_scheme_tests.txt
references/
bounty_patterns_2024_2026.md
frida_ios_snippets.md
ios_vulns.md
troubleshooting.md
schemas/
finding.json
scripts/
biometric_bypass.js
crypto_hooks.js
jailbreak_bypass.js
keychain_hooks.js
method_tracer.js
ssl_pinning_bypass.js
templates/
finding_report.md
workflows/
auth_testing.md
complete_assessment.md
ipa_decryption.md
jailbreak_detection_bypass.md
keychain_extraction.md

详细介绍

iOS 移动应用渗透测试

用于 iOS 应用安全评估的精简路由器。全面覆盖 OWASP MASTG(侦察 → 静态分析 → 动态分析 → 网络 → 存储 → 密码学 → 身份验证 → 报告)。详细操作手册位于 workflows/ 和 methodology/ 下;仅在需要时加载。

适用场景

  • 对新的 iOS 应用进行安全评估(IPA + 已安装的应用)。
  • 绕过 SSL pinning、越狱检测、生物识别、反调试机制。
  • 提取并分类整理 keychain / NSUserDefaults / 文件 / SQLite。
  • 拦截并篡改 HTTPS / gRPC / WebSocket 流量。
  • OWASP MASTG / MASVS 合规性测试。
  • 分析已解密或加密的 Mach-O 二进制文件。

触发短语

“渗透测试 iOS 应用”、“测试此 IPA”、“绕过 iPhone 的 SSL pinning”、“提取 keychain”、“MASTG iOS”、“绕过 iOS 越狱检测”、“分析 .ipa”、“测试 iPhone 应用”。

不适用场景

  • Android APK 分析 → 使用 android-pentest。
  • 对后端进行通用 Web API 测试 → 使用 web-pentest / api-pentest。
  • iOS 源代码审查(你拥有代码仓库)→ 使用带有 iOS 语言包的 secure-code-review。
  • macOS 桌面应用分析 → 使用 macos-pentest。

决策树

target acquired?
├── no binary yet → workflows/ipa_decryption.md
└── yes
    ├── need HTTPS visibility? → workflows/ssl_pinning_bypass.md
    ├── app exits on jailbroken device? → workflows/jailbreak_detection_bypass.md
    ├── hunting credentials/tokens? → workflows/keychain_extraction.md
    ├── testing login / biometric? → workflows/auth_testing.md
    └── full engagement → workflows/complete_assessment.md

并行执行提示

可并发运行(I/O 相互独立,无共享状态):

  • class-dump -H App.app/App -o headers/
  • otool -L App.app/App 和 otool -hv App.app/App
  • strings -a App.app/App | grep ...
  • plutil -p App.app/Info.plist
  • 在单独的 spawn 中运行 Objection 枚举。

必须按顺序运行(共享 Frida 会话 / spawn 状态):

  • Frida --no-pause spawn → 等待绕过脚本加载 → 操作应用 → 然后附加其他脚本。
  • Objection ios sslpinning disable → 然后运行任何依赖流量的命令。
  • ideviceimagemounter → 然后运行 frida-ps -U。
  • 提取 keychain 前,必须在安装后至少启动过一次应用。

子 Agent 委派

如果可以清晰地隔离工作范围,请启动子 Agent:

  • 静态二进制子 Agent — 提供已解密的 App.app/,让其并行运行 class-dump + otool + strings + 框架清单检查,并返回结构化摘要,列出感兴趣的类、硬编码机密和不安全的 API 用法。
  • Keychain 提取子 Agent — 提供 <bundle_id>,让其运行 objection ... keychain dump --json,按可访问性 / ACL 对每条记录分类,并按 schemas/finding.json 输出发现项。
  • 可选:让网络捕获子 Agent 通过代理 API 驱动 Burp,同时由主 Agent 操作 UI。

不要将 Frida spawn 和插桩任务拆分给不同子 Agent — Frida 会话有状态,并绑定到单个进程。

推理预算

以下情况使用扩展思考:

  • 解读反编译的 Objective-C / Swift(Hopper / Ghidra / IDA 输出)。
  • 通用绕过失效时,设计自定义 Frida hook。
  • 推理加密流程(密钥来源 → 密码算法 → 存储)。
  • 多个细微问题相互叠加时,判断 MASVS 严重性。

以下情况跳过扩展思考:

  • 运行 scripts/ 中现成的 Frida / Objection 脚本。
  • 解析 ios keychain dump --json 输出(按模式匹配)。
  • 执行 otool / class-dump 并收集输出。
  • 下载文件、枚举设备、通过 SSH 拉取文件。

多模态钩子

Mobile MCP(@anthropic/mobile-mcp --ios)提供 iOS 模拟器 / 设备 UI 自动化:

  • 越狱检测弹窗 — 在绕过前截取警告屏幕截图,再在绕过后截取警告消失的截图,保存为 evidence.screenshot。
  • 生物识别提示 — 截取 Face ID / Touch ID 窗口,以证明验证门存在,然后确认绕过后进入受保护的屏幕。
  • 应用切换器快照泄露 — 截取应用转入后台时显示敏感数据的快照缓存条目。
  • WebView 身份验证流程 — 以可视化方式捕获登录重定向链,用于 SSO 发现项。

~/.claude/mcp.json:

{"mcpServers": {"mobile-mcp": {"command": "npx", "args": ["-y", "@anthropic/mobile-mcp", "--ios"]}}}

结构化输出

每个发现项都以符合 schemas/finding.json 的 JSON 格式输出。iOS 专属字段:affected.bundle_id、affected.ios_version、affected.device_udid、affected.jailbroken、mastg_id、evidence.frida_pid、evidence.keychain_dump、evidence.screenshot。

工作流索引

工作流文件
完整评估操作手册workflows/complete_assessment.md
SSL 固定绕过workflows/ssl_pinning_bypass.md
越狱检测绕过workflows/jailbreak_detection_bypass.md
钥匙串提取与分类workflows/keychain_extraction.md
IPA 解密 / 获取workflows/ipa_decryption.md
身份验证与生物识别测试workflows/auth_testing.md

方法论索引

领域文件
信息侦察methodology/recon.md
静态分析methodology/static_analysis.md
动态分析methodology/dynamic_analysis.md
网络测试methodology/network_testing.md
数据存储methodology/data_storage.md
密码学测试methodology/crypto_testing.md
身份验证测试methodology/auth_testing.md

载荷索引

文件用途
payloads/jailbreak_detection_paths.txtiOS 应用用于探测越狱的常见文件 / 方案
payloads/url_scheme_tests.txtURL 方案 / 深层链接测试向量

Frida 脚本索引(scripts/)

脚本用途
ssl_pinning_bypass.js通用 SSL/TLS 固定绕过
jailbreak_bypass.js越狱检测绕过
biometric_bypass.jsTouch ID / Face ID 绕过
keychain_hooks.js钥匙串操作监控
crypto_hooks.js加密操作跟踪
method_tracer.js通用 Objective-C 方法跟踪器

参考资料索引

文件用途
references/ios_vulns.mdiOS 漏洞类别、严重性表、MASVS 映射
references/troubleshooting.mdFrida / 固定 / 代理问题分类
references/frida_ios_snippets.md可复用的 Frida 代码片段
references/bounty_patterns_2024_2026.md2023 年之后的漏洞赏金 TTP(URL 方案 / Universal-Link 劫持、WebView 深层链接 XSS、钥匙串 IAM 令牌安全缺陷)
checklists/owasp_mastg_ios.md完整的 MASTG iOS 检查清单
templates/finding_report.mdMarkdown 漏洞发现报告模板

示例

文件用途
examples/initial_setup.md初次接触操作蓝图
examples/ssl_bypass_run.md固定绕过操作蓝图
examples/keychain_dump.md钥匙串转储与分类操作蓝图

工具

工具用途安装
Frida / frida-tools动态插桩pip install frida-tools(≥ 16.6)
Objection移动端探索 REPLpip install objection(≥ 1.11)
libimobiledevice设备通信brew install libimobiledevice
ios-deploy应用部署brew install ios-deploy
ideviceinstaller应用安装 / 列表brew install ideviceinstaller
class-dumpObjC 头文件提取brew install class-dump
frida-ios-dumpFairPlay 解密github.com/AloneMonkey/frida-ios-dump
Burp SuiteHTTPS 拦截PortSwigger
Hopper / IDA / Ghidra二进制逆向工程Vendor / GitHub
Mobile MCPUI 自动化 + 屏幕截图npx @anthropic/mobile-mcp --ios

前置条件快速检查

每次操作前都要运行——如果实验环境损坏,立即终止。

idevice_id -l               # at least one UDID listed
ideviceinfo | grep ProductVersion
frida-ps -U                 # frida-server reachable
objection -g <bundle_id> explore --startup-command 'ios info binary; exit'

越狱环境:OpenSSH + Frida(Sileo 源 build.frida.re)+ AppSync Unified + Filza。非越狱环境的备用方案:使用 objection patchipa 修补 IPA 以注入 Frida Gadget,或使用 ideviceimagemounter 挂载开发者磁盘映像。

上次验证

2026-04。Frida ≥ 16.6、Objection ≥ 1.11,目标为 iOS 15–17。对于 iOS 18+,越狱方案转向仅用户空间方案(Dopamine/palera1n rootless)——SSH 路径为 /var/jb/usr/bin/ssh,Frida 服务端位于 /var/jb/usr/sbin/frida-server。

评论

支持 Markdown