mcpField
A
analyzing-ios-app-security-with-objection

analyzing-ios-app-security-with-objection

github.com/mukul975安全35.2k438 次安装8 周前更新
代码仓库

关于 analyzing-ios-app-security-with-objection

使用 Objection 和 Frida 对 iOS 应用进行运行时安全评估的技能,面向授权渗透测试人员。涵盖应用数据、网络控制、身份验证和平台行为,无需访问源代码。

主要功能

  1. 01检查应用钥匙串和沙盒数据
  2. 02测试 SSL Pinning 与网络行为
  3. 03审查身份验证和授权
  4. 04检查越狱检测与二进制保护
  5. 05Hook 方法并监控应用行为
  6. 06评估 URL Scheme 和平台交互

适用场景

  1. 01在授权渗透测试中评估 iOS 应用
  2. 02检查应用存储和内存中的敏感数据
  3. 03测试 SSL Pinning 等客户端控制
  4. 04无源代码时观察运行时行为

安装

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill analyzing-ios-app-security-with-objection

安装后在 Claude Code 中输入/analyzing-ios-app-security-with-objection确认已加载。

包含的文件

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

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

使用 Objection 分析 iOS 应用安全性

适用场景

在以下情况下使用此技能:

  • 在经授权的渗透测试期间,对 iOS 应用进行运行时安全评估
  • 检查 iOS 钥匙串、文件系统和内存中是否暴露了敏感数据
  • 在安全测试期间绕过客户端安全控制(SSL 固定、越狱检测)
  • 无法访问源代码时,评估 iOS 应用的运行时行为

未经明确授权,切勿在生产设备上使用此技能——Objection 会修改应用的运行时行为,并可能触发安全监控。

先决条件

  • Python 3.10+ 和 pip
  • 已安装 Objection:pip install objection
  • 已安装 Frida:pip install frida-tools
  • 目标 iOS 设备(已越狱并运行 Frida 服务端,或未越狱但已重新打包 IPA)
  • 对于未越狱设备:使用 objection patchipa 将 Frida gadget 注入 IPA
  • 建议使用 macOS 进行 iOS 测试(Xcode、ideviceinstaller)
  • 通过 USB 连接目标设备,或使用网络 Frida 服务端

工作流

步骤 1:准备测试环境

对于已越狱的设备:

# Install Frida server on device via Cydia/Sileo
# SSH to device and start Frida server
ssh root@<device_ip> "/usr/sbin/frida-server -D"

# Verify Frida connectivity
frida-ps -U  # List processes on USB-connected device

对于未越狱的设备(经授权的测试):

# Patch IPA with Frida gadget
objection patchipa --source target.ipa --codesign-signature "Apple Development: [email protected]"

# Install patched IPA
ideviceinstaller -i target-patched.ipa
步骤 2:将 Objection 连接到目标应用
# Attach to running app by bundle ID
objection --gadget "com.target.app" explore

# Or spawn the app fresh
objection --gadget "com.target.app" explore --startup-command "ios hooking list classes"

连接后,Objection 会提供一个交互式 REPL,用于探索运行时。

步骤 3:评估数据存储安全性(MASVS-STORAGE)
# Dump iOS Keychain items accessible to the app
ios keychain dump

# List files in app sandbox
ios plist cat Info.plist
env  # Show app environment paths

# Inspect NSUserDefaults for sensitive data
ios nsuserdefaults get

# List SQLite databases
sqlite connect app_data.db
sqlite execute query "SELECT * FROM credentials"

# Check for sensitive data in pasteboard
ios pasteboard monitor
步骤 4:评估网络安全性(MASVS-NETWORK)
# Disable SSL/TLS certificate pinning
ios sslpinning disable

# Verify pinning is bypassed by observing traffic in Burp Suite proxy
# Monitor network-related class method calls
ios hooking watch class NSURLSession
ios hooking watch class NSURLConnection
步骤 5:检查身份验证和授权(MASVS-AUTH)
# List all Objective-C classes
ios hooking list classes

# Search for authentication-related classes
ios hooking search classes Auth
ios hooking search classes Login
ios hooking search classes Token

# Hook authentication methods to observe parameters
ios hooking watch method "+[AuthManager validateToken:]" --dump-args --dump-return

# Monitor biometric authentication calls
ios hooking watch class LAContext
步骤 6:评估二进制保护措施(MASVS-RESILIENCE)
# Check jailbreak detection implementation
ios jailbreak disable

# Simulate jailbreak detection bypass
ios jailbreak simulate

# List loaded frameworks and libraries
memory list modules

# Search memory for sensitive strings
memory search "password" --string
memory search "api_key" --string
memory search "Bearer" --string

# Dump specific memory regions
memory dump all dump_output/
步骤 7:审查平台交互(MASVS-PLATFORM)
# List URL schemes registered by the app
ios info binary
ios bundles list_frameworks

# Hook URL scheme handlers
ios hooking watch method "-[AppDelegate application:openURL:options:]" --dump-args

# Monitor clipboard access
ios pasteboard monitor

# Check for custom keyboard restrictions
ios hooking search classes UITextField

核心概念

术语定义
Objection基于 Frida 构建的移动端运行时探索工具包,提供用于常见安全测试任务的预构建脚本
Frida Gadget注入应用进程的共享库,可在无需越狱的情况下启用 Frida 插桩
钥匙串iOS 安全凭据存储系统;Objection 可以转储目标应用钥匙串访问组中可访问的项目
绕过 SSL 固定在运行时修改证书验证逻辑,以允许通过代理拦截 HTTPS 流量
方法 Hook在运行时拦截 Objective-C/Swift 方法调用,以观察参数、返回值并修改行为

工具与系统

  • Objection:由 Frida 驱动的高级移动安全探索工具包,提供预构建命令
  • Frida:动态插桩框架,可将 JavaScript 注入原生应用进程
  • Frida-tools:Frida 的命令行工具,包括 frida-ps、frida-trace 和 frida-discover
  • ideviceinstaller:用于通过 USB 安装和管理 iOS 应用的跨平台工具
  • Burp Suite:绕过 SSL 固定后用于拦截流量的 HTTP 代理

常见问题

  • 连接时应用崩溃:某些应用会检测 Frida。使用 --startup-command 在应用生命周期早期 Hook 反 Frida 检查。
  • 钥匙串访问范围:Objection 只能转储应用访问组内的钥匙串项目。系统钥匙串项目需要使用单独的越狱级工具。
  • Swift 名称修饰:Swift 方法名在运行时会经过修饰。使用 ios hooking list classes 配合 grep 查找反修饰后的名称。
  • 更改不会持久化:Objection 所做的修改仅在运行时生效,应用重启后会重置。请立即记录发现。

评论

支持 Markdown