L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

analyzing-ios-app-security-with-objection

analyzing-ios-app-security-with-objection

使用基于 Frida 的工具包 Objection 对 iOS 应用程序进行运行时移动安全探测, 无需越狱即可与应用内部交互。适用于评估 iOS 应用安全态势、绕过客户端防护措施、 转储 Keychain 条目、检查文件系统存储以及评估运行时行为。当请求涉及 iOS 安全测试、 Objection 运行时分析、基于 Frida 的 iOS 评估或移动运行时探测时激活。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: analyzing-ios-app-security-with-objection description: > 使用基于 Frida 的工具包 Objection 对 iOS 应用程序进行运行时移动安全探测, 无需越狱即可与应用内部交互。适用于评估 iOS 应用安全态势、绕过客户端防护措施、 转储 Keychain 条目、检查文件系统存储以及评估运行时行为。当请求涉及 iOS 安全测试、 Objection 运行时分析、基于 Frida 的 iOS 评估或移动运行时探测时激活。 domain: cybersecurity subdomain: mobile-security author: mahipal tags: [mobile-security, ios, objection, frida, owasp-mobile, penetration-testing] version: 1.0.0 license: Apache-2.0

使用 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:准备测试环境

针对越狱设备:

# 通过 Cydia/Sileo 在设备上安装 Frida server
# SSH 登录设备并启动 Frida server
ssh root@<device_ip> "/usr/sbin/frida-server -D"

# 验证 Frida 连接
frida-ps -U  # 列出 USB 连接设备上的进程

针对非越狱设备(授权测试):

# 向 IPA 注入 Frida gadget
objection patchipa --source target.ipa --codesign-signature "Apple Development: test@example.com"

# 安装已打包的 IPA
ideviceinstaller -i target-patched.ipa

步骤 2:将 Objection 附加到目标应用

# 通过 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)

# 转储应用可访问的 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)

# 禁用 SSL/TLS 证书固定(certificate pinning)
ios sslpinning disable

# 通过 Burp Suite 代理观察流量,验证 pinning 是否已绕过
# 监控与网络相关的类方法调用
ios hooking watch class NSURLSession
ios hooking watch class NSURLConnection

步骤 5:检查身份认证与授权(MASVS-AUTH)

# 列出所有 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)

# 检查越狱检测实现
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)

# 列出应用注册的 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 插桩
KeychainiOS 安全凭据存储系统;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 修改仅在运行时生效,应用重启后恢复原状。请立即记录发现的问题。
Skills enregistrées