analyzing-ios-app-security-with-objection
使用基于 Frida 的工具包 Objection 对 iOS 应用程序进行运行时移动安全探测, 无需越狱即可与应用内部交互。适用于评估 iOS 应用安全态势、绕过客户端防护措施、 转储 Keychain 条目、检查文件系统存储以及评估运行时行为。当请求涉及 iOS 安全测试、 Objection 运行时分析、基于 Frida 的 iOS 评估或移动运行时探测时激活。
Best use case
analyzing-ios-app-security-with-objection is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用基于 Frida 的工具包 Objection 对 iOS 应用程序进行运行时移动安全探测, 无需越狱即可与应用内部交互。适用于评估 iOS 应用安全态势、绕过客户端防护措施、 转储 Keychain 条目、检查文件系统存储以及评估运行时行为。当请求涉及 iOS 安全测试、 Objection 运行时分析、基于 Frida 的 iOS 评估或移动运行时探测时激活。
Teams using analyzing-ios-app-security-with-objection should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/analyzing-ios-app-security-with-objection/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How analyzing-ios-app-security-with-objection Compares
| Feature / Agent | analyzing-ios-app-security-with-objection | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用基于 Frida 的工具包 Objection 对 iOS 应用程序进行运行时移动安全探测, 无需越狱即可与应用内部交互。适用于评估 iOS 应用安全态势、绕过客户端防护措施、 转储 Keychain 条目、检查文件系统存储以及评估运行时行为。当请求涉及 iOS 安全测试、 Objection 运行时分析、基于 Frida 的 iOS 评估或移动运行时探测时激活。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 Objection 分析 iOS 应用安全 ## 适用场景 以下情况使用本 skill: - 在授权渗透测试(penetration test)期间对 iOS 应用程序执行运行时安全评估 - 检查 iOS Keychain、文件系统和内存中的敏感数据暴露情况 - 在安全测试期间绕过客户端安全控制(SSL pinning、越狱检测) - 在无法访问源代码的情况下评估 iOS 应用的运行时行为 **不适用于**:在没有明确授权的情况下在生产设备上使用本 skill——Objection 会修改应用运行时行为,可能触发安全监控。 ## 前置条件 - Python 3.10+ 及 pip - 已安装 Objection:`pip install objection` - 已安装 Frida:`pip install frida-tools` - 目标 iOS 设备(已越狱并安装 Frida server,或已重新打包 IPA 的非越狱设备) - 非越狱设备需使用 `objection patchipa` 向 IPA 注入 Frida gadget - iOS 测试推荐使用 macOS(需要 Xcode、ideviceinstaller) - USB 连接目标设备或网络 Frida server ## 工作流程 ### 步骤 1:准备测试环境 **针对越狱设备:** ```bash # 通过 Cydia/Sileo 在设备上安装 Frida server # SSH 登录设备并启动 Frida server ssh root@<device_ip> "/usr/sbin/frida-server -D" # 验证 Frida 连接 frida-ps -U # 列出 USB 连接设备上的进程 ``` **针对非越狱设备(授权测试):** ```bash # 向 IPA 注入 Frida gadget objection patchipa --source target.ipa --codesign-signature "Apple Development: test@example.com" # 安装已打包的 IPA ideviceinstaller -i target-patched.ipa ``` ### 步骤 2:将 Objection 附加到目标应用 ```bash # 通过 bundle ID 附加到正在运行的应用 objection --gadget "com.target.app" explore # 或启动新的应用进程 objection --gadget "com.target.app" explore --startup-command "ios hooking list classes" ``` 附加成功后,Objection 提供交互式 REPL 进行运行时探测。 ### 步骤 3:评估数据存储安全(MASVS-STORAGE) ```bash # 转储应用可访问的 iOS Keychain 条目 ios keychain dump # 列出应用沙盒中的文件 ios plist cat Info.plist env # 显示应用环境路径 # 检查 NSUserDefaults 中的敏感数据 ios nsuserdefaults get # 列出 SQLite 数据库 sqlite connect app_data.db sqlite execute query "SELECT * FROM credentials" # 检查粘贴板中的敏感数据 ios pasteboard monitor ``` ### 步骤 4:评估网络安全(MASVS-NETWORK) ```bash # 禁用 SSL/TLS 证书固定(certificate pinning) ios sslpinning disable # 通过 Burp Suite 代理观察流量,验证 pinning 是否已绕过 # 监控与网络相关的类方法调用 ios hooking watch class NSURLSession ios hooking watch class NSURLConnection ``` ### 步骤 5:检查身份认证与授权(MASVS-AUTH) ```bash # 列出所有 Objective-C 类 ios hooking list classes # 搜索与认证相关的类 ios hooking search classes Auth ios hooking search classes Login ios hooking search classes Token # Hook 认证方法以观察参数 ios hooking watch method "+[AuthManager validateToken:]" --dump-args --dump-return # 监控生物认证调用 ios hooking watch class LAContext ``` ### 步骤 6:评估二进制保护(MASVS-RESILIENCE) ```bash # 检查越狱检测实现 ios jailbreak disable # 模拟越狱检测绕过 ios jailbreak simulate # 列出已加载的框架和库 memory list modules # 在内存中搜索敏感字符串 memory search "password" --string memory search "api_key" --string memory search "Bearer" --string # 转储特定内存区域 memory dump all dump_output/ ``` ### 步骤 7:检查平台交互(MASVS-PLATFORM) ```bash # 列出应用注册的 URL scheme ios info binary ios bundles list_frameworks # Hook URL scheme 处理程序 ios hooking watch method "-[AppDelegate application:openURL:options:]" --dump-args # 监控剪贴板访问 ios pasteboard monitor # 检查自定义键盘限制 ios hooking search classes UITextField ``` ## 核心概念 | 术语 | 定义 | |------|-----------| | **Objection** | 基于 Frida 构建的运行时移动探测工具包,提供用于常见安全测试任务的预置脚本 | | **Frida Gadget** | 注入到应用进程中的共享库,无需越狱即可实现 Frida 插桩 | | **Keychain** | iOS 安全凭据存储系统;Objection 可转储目标应用 keychain access group 可访问的条目 | | **SSL Pinning 绕过** | 对证书验证逻辑进行运行时修改,允许代理拦截 HTTPS 流量 | | **方法 Hook(Method Hooking)** | 在运行时拦截 Objective-C/Swift 方法调用,以观察参数、返回值并修改行为 | ## 工具与系统 - **Objection**:高级 Frida 驱动的移动安全探测工具包,提供预置命令 - **Frida**:动态插桩(Dynamic instrumentation)框架,向原生应用进程注入 JavaScript - **Frida-tools**:Frida 的 CLI 工具,包括 frida-ps、frida-trace 和 frida-discover - **ideviceinstaller**:通过 USB 安装/管理 iOS 应用的跨平台工具 - **Burp Suite**:SSL pinning 绕过后用于拦截流量的 HTTP 代理 ## 常见陷阱 - **附加时应用崩溃**:某些应用实现了 Frida 检测。使用 `--startup-command` 在应用生命周期早期 hook 反 Frida 检测逻辑。 - **Keychain 访问范围**:Objection 只能转储应用 access group 内的 Keychain 条目。系统级 Keychain 条目需要单独的越狱级工具。 - **Swift 名称混淆(name mangling)**:Swift 方法名在运行时会被混淆。使用 `ios hooking list classes` 配合 grep 查找反混淆后的名称。 - **修改不持久**:所有 Objection 修改仅在运行时生效,应用重启后恢复原状。请立即记录发现的问题。
Related Skills
triaging-security-incident
使用 NIST SP 800-61r3 和 SANS PICERL 框架对安全事件进行初始分类,确定严重性、范围和所需响应行动。 按类型对事件分类,根据业务影响分配优先级,并路由到相应的响应团队。适用于事件分类、 安全告警分类、严重性评估、事件优先级排序或初始事件分析等请求场景。
triaging-security-incident-with-ir-playbook
使用结构化 IR Playbook 对安全事件进行分类和优先排序,确定严重性、分配响应团队并启动适当的响应程序。
triaging-security-alerts-in-splunk
在 Splunk Enterprise Security 中对安全告警进行分类,通过 SPL 查询和事件审查(Incident Review) 仪表板对重要事件进行严重性分类、调查、关联相关遥测并做出升级或关闭决策。 适用于 SOC 分析师需要处理关联搜索产生的告警队列、确定调查优先级, 或需要为交接给二/三级分析师记录分类决策时。
testing-websocket-api-security
测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。
testing-jwt-token-security
在安全测试活动中,评估 JSON Web Token(JWT)实现中的密码学弱点、算法混淆攻击和授权绕过漏洞。
testing-api-security-with-owasp-top-10
使用自动化和手工测试技术,针对 OWASP API 安全 Top 10 风险对 REST 和 GraphQL API 端点进行系统性评估。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-ssl-tls-security-assessment
使用 sslyze Python 库评估 SSL/TLS 服务器配置,评估加密套件、证书链、协议版本、HSTS 头部,以及 Heartbleed 和 ROBOT 等已知漏洞。
performing-soap-web-service-security-testing
通过分析 WSDL 定义,测试 XML 注入(XML Injection)、XXE、WS-Security 绕过和 SOAPAction 欺骗,对 SOAP Web 服务执行安全测试。
performing-serverless-function-security-review
对 AWS Lambda、Azure Functions 和 GCP Cloud Functions 中的无服务器函数(Serverless Function)执行安全审查,识别过度宽松的执行角色(Execution Role)、不安全的环境变量、注入漏洞和缺失的运行时保护措施。
performing-scada-hmi-security-assessment
对 SCADA 人机界面(HMI, Human-Machine Interface)系统进行安全评估,识别基于 Web 的 HMI、瘦客户端配置、认证机制以及 HMI 与 PLC 之间通信信道中的漏洞,符合 IEC 62443 和 NIST SP 800-82 指南要求。
performing-s7comm-protocol-security-analysis
对西门子SIMATIC S7 PLC使用的S7comm和S7CommPlus协议进行安全分析,识别漏洞,包括重放攻击、完整性绕过、未授权的CPU停止命令以及针对S7-300、S7-400、S7-1200和S7-1500控制器弱点的程序下载操控。