拓冰建站拓冰建站
首页 / 资讯中心 / 正文

使用 Objection 与 Frida 进行 iOS 应用运行时安全测试:从环境搭建到 MASVS 全面评估

使用 Objection 与 Frida 进行 iOS 应用运行时安全测试从环境搭建到 MASVS 全面评估【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读本指南以 Anthropic-Cybersecurity-Skills 仓库中的 analyzing-ios-app-security-with-objection 技能文档为核心系统讲解如何借助 Objection基于 Frida 的运行时移动探索工具包在授权渗透测试中对 iOS 应用执行运行时安全评估——包括 Keychain 与文件系统敏感数据检查、SSL Pinning 绕过、Jailbreak 检测绕过、认证逻辑 Hook 与二进制防护分析。读者完成后将掌握一套从设备准备、REPL 交互到报告输出的完整可复现评估流程并能结合仓库提供的自动化脚本将常见检查批量执行。该技能定位于移动安全mobile-security子域其 frontmatter 声明覆盖 MITRE ATTCK 的 T1635、T1414、T1417.001、T1409 等移动端技术并映射 NIST CSF、NIST AI RMF 与 ATLAS 框架详见 SKILL.md 头部元数据。本文所有命令与步骤均以该技能文档及其 API 参考、标准映射、工作流 为事实依据。何时使用本技能在以下场景中启用该技能在授权渗透测试中对 iOS 应用执行运行时安全评估非源码审计而是黑盒/灰盒视角的运行时观察检查 iOS Keychain、文件系统与内存中的敏感数据暴露绕过客户端安全控制SSL 证书固定、Jailbreak 检测以验证其有效性在无法获得源码的情况下评估应用运行时行为。技能文档同时给出了明确的红线切勿在未经明确授权的生产设备上使用——Objection 会修改应用运行时行为可能触发安全监控告警。这一点在评估范围界定ROE阶段就必须书面确认。前置条件依据 SKILL.md测试环境需要组件要求Python3.10 且已安装 pipObjectionpip install objectionFrida 工具链pip install frida-tools目标设备已越狱运行 frida-server或未越狱重打包 IPA 注入 Frida Gadget未越狱方案objection patchipa将 Frida Gadget 注入 IPA主机环境推荐 macOSXcode、ideviceinstaller连接方式USB 连接目标设备或网络 Frida server注意pip install objection与pip install frida-tools两条命令缺一不可——Objection 是高层工具而 Frida 是其底层动态插桩引擎frida-ps、frida-trace等 CLI 来自 frida-tools 包。七步运行时评估工作流技能文档给出了一套从环境准备到平台交互的完整评估流水线以下逐步展开并结合仓库参考资料补充参数细节。第一步准备测试环境越狱设备方案通过 Cydia/Sileo 在设备端安装 Frida serverSSH 到设备后启动守护进程并在主机端验证连通性# 在设备端启动 Frida server通过 SSH ssh rootdevice_ip /usr/sbin/frida-server -D # 列出 USB 连接设备上的进程验证 Frida 连通 frida-ps -U未越狱设备方案须授权使用 Objection 将 Frida Gadget 注入 IPA 并重签名安装# 将 Frida Gadget 注入 IPA需提供开发者签名 objection patchipa --source target.ipa --codesign-signature Apple Development: testexample.com # 安装打过补丁的 IPA ideviceinstaller -i target-patched.ipa这一步的决策逻辑可参考 workflows.md 中的决策矩阵设备状态是否有 IPA采用方案已越狱不需要直接 Frida server Objection attach未越狱有objection patchipa重打包未越狱无向客户索取 IPA 或走设备管理流程模拟器N/A受限可考虑 Corellium 等平台上的 Frida第二步将 Objection 附加到目标应用# 按 bundle ID 附加到已运行的应用 objection --gadget com.target.app explore # 或全新启动spawn应用并附带启动命令 objection --gadget com.target.app explore --startup-command ios hooking list classes附加成功后 Objection 会进入交互式 REPL后续所有检查命令都在该 REPL 内执行。--startup-command的典型价值在于某些应用在启动早期就执行 Frida 检测通过启动命令可在生命周期早期挂钩反 Frida 逻辑。第三步数据存储安全评估MASVS-STORAGE这是运行时评估中信息量最大的一环覆盖 Keychain、NSUserDefaults、SQLite 与剪贴板# 转储应用可访问的 Keychain 条目 ios keychain dump ios keychain dump --json # 结构化输出便于后续自动化解析 # 查看应用沙箱环境路径与 Info.plist env ios plist cat Info.plist # 检查 NSUserDefaults 中的敏感数据 ios nsuserdefaults get # 打开并查询 SQLite 数据库 sqlite connect app_data.db sqlite execute query SELECT * FROM credentials # 监控剪贴板敏感数据 ios pasteboard monitorapi-reference.md 补充了同属存储检查的ios cookies get列出 HTTP Cookie并将其纳入 agent.py 的OWASP_MOBILE_CHECKS中M2_Insecure_Data_Storage检查组合keychain dump cookies get nsuserdefaults get。iOS 应用沙箱的典型路径及内容映射可参考 api-reference.md路径内容/Documents用户生成数据/Library/Caches缓存数据/Library/PreferencesPlist 设置/tmp临时文件/Library/CookiesCookie 存储第四步网络安全评估MASVS-NETWORK# 禁用 SSL/TLS 证书固定 ios sslpinning disable ios sslpinning disable --quiet # 静默模式 # 挂钩网络相关类监控方法调用 ios hooking watch class NSURLSession ios hooking watch class NSURLConnection禁用 pinning 后将设备代理指向 Burp Suite即可解密并审查 HTTPS 流量重点观察 API 端点、认证流程与传输中的敏感数据。--quiet参数适用于希望在输出中减少冗余日志的自动化场景。第五步认证与授权检查MASVS-AUTH# 列出所有 Objective-C 类 ios hooking list classes # 按关键词检索认证相关类 ios hooking search classes Auth ios hooking search classes Login ios hooking search classes Token # 挂钩认证方法观察参数与返回值 ios hooking watch method [AuthManager validateToken:] --dump-args --dump-return # 监控生物识别认证调用Face ID / Touch ID ios hooking watch class LAContextLAContext是 iOS 本地认证框架的核心类挂钩它可以观察生物识别校验结果是否可被绕过例如直接篡改evaluatePolicy:localizedReason:reply:的回调结果。第六步二进制防护评估MASVS-RESILIENCE# 检查并绕过 Jailbreak 检测 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/jailbreak_bypass 示例脚本 展示了底层思路拦截NSFileManager - fileExistsAtPath:当路径命中越狱特征/Applications/Cydia.app、/usr/sbin/sshd、/etc/apt时把返回值替换为0从而骗过基于文件存在性的检测。第七步平台交互评估MASVS-PLATFORM# 查看二进制信息与已注册框架 ios info binary ios bundles list_frameworks # 挂钩 URL Scheme 处理器深链安全 ios hooking watch method -[AppDelegate application:openURL:options:] --dump-args # 监控剪贴板访问自 iOS 14 起有系统级粘贴提示此处为应用内行为观测 ios pasteboard monitor # 检索 UITextField 相关类检查自定义键盘/输入限制 ios hooking search classes UITextFieldURL Scheme 处理器的挂钩对应 OWASP MASTG 的 MASTG-TEST-0060用于验证深链是否可被任意参数注入。关键概念速查SKILL.md 给出了五个核心术语的定义它们是理解整个工作流的基础术语定义Objection基于 Frida 的运行时移动探索工具包内置了常见安全测试任务的预制脚本Frida Gadget注入应用进程的共享库使未越狱设备也能进行 Frida 插桩KeychainiOS 安全凭据存储系统Objection 可转储目标应用访问组内的条目SSL Pinning Bypass运行时修改证书校验逻辑允许代理拦截 HTTPS 流量Method Hooking在运行时拦截 Objective-C/Swift 方法调用观察参数、返回值并修改行为关于 Keychain 的访问范围需要强调Objection 只能转储应用 keychain access group 内的条目系统级 Keychain 条目需要越狱级工具处理——这是 常见陷阱 中明确指出的边界。工具链全景工具作用Objection高层 Frida 移动安全探索工具提供预制命令Frida动态插桩框架向原生应用进程注入 JavaScriptFrida-tools提供frida-ps、frida-trace、frida-discover等 CLI 工具ideviceinstaller通过 USB 安装/管理 iOS 应用的跨平台工具Burp SuiteSSL Pinning 绕过后用于拦截流量的 HTTP 代理Frida CLI 底层命令当预制命令无法满足需求时可直接降级使用 Frida CLI见 api-reference.mdfrida -U -n AppName # 按进程名附加 frida -U -f com.app.id # 启动spawn并附加 frida -U -n AppName -l script.js # 加载自定义脚本 frida-ps -U # 列出运行进程 frida-ls-devices # 列出连接的设备自定义 Frida 脚本的典型骨架——用ObjC.choose遍历类实例并挂钩方法ObjC.choose(ObjC.classes.ClassName, { onMatch: function(instance) { Interceptor.attach(instance[- methodName:].implementation, { onEnter: function(args) { console.log(arg1:, ObjC.Object(args[2])); } }); }, onComplete: function() {} });深入源码自动化评估脚本如何实现技能目录下提供两个可直接复用的 Python 脚本将上述手工流程封装为可批量执行的自动化工具展示了 Objection 命令驱动评估的工程化落地方式。agent.pyOWASP Mobile Top 10 检查器agent.py 的核心设计是run_objection(command, app_id)通过subprocess执行objection -g app_id explore -c command并做超时与缺失依赖pip install objection的错误兜底run_frida(script_code, app_id)执行frida -U -n app_id -e script运行单行脚本OWASP_MOBILE_CHECKS字典将 OWASP Mobile Top 10 分类与具体检查命令绑定例如 M2不安全数据存储绑定ios keychain dump、ios cookies get、ios nsuserdefaults getM3不安全通信绑定ios sslpinning disablerun_owasp_assessment(app_id)遍历所有分类逐条执行检查并记录命令输出预览前 200 字符与退出码FRIDA_SCRIPTS内置了 SSL Pinning Bypass、Jailbreak Bypass、Keychain 查询三个可复用的脚本片段。运行方式python agent.py com.example.app无参数时输出可用检查清单。process.py可配置的批量评估与 JSON 报告process.py 面向更正式的评估交付物其亮点在于ObjectionAssessor类将每个检查封装为独立方法且每个 finding 都附带category如MASVS-STORAGE、owasp_mobile如M9与severityHIGH/MEDIUM/INFO/PASS字段直接服务于后续报告check_frida_connectivity()先通过frida-ps -U验证设备连通性失败即退出——防止在错误目标上产生误导性结果check_nsuserdefaults()内置敏感词模式列表password、token、secret、key、auth、session、credential、api_key等自动从 NSUserDefaults 输出中标记敏感条目search_sensitive_memory()对password、Bearer、eyJJWT 前缀、api_key、secret等模式执行memory search统计命中次数generate_report()汇总严重度分布输出结构化 JSON可直接作为正式报告的机器可读底稿。命令行接口python process.py --bundle-id com.target.app [--device-id UDID] [--output report.json] [--checks keychain nsuserdefaults ssl jailbreak memory]支持通过--serial UDID/-D UDID在多设备场景下精确指定目标见 process.py 中的命令构造逻辑。评估结果与框架映射OWASP Mobile Top 10 (2024) 映射api-reference.md 给出了完整的检查对应关系ID类别对应 Objection 检查M1Improper Credential Usageios keychain dumpM2Inadequate Supply Chain Security二进制分析M3Insecure Authentication挂钩认证类M4Insufficient Input/Output Validation挂钩输入方法M5Insecure Communicationios sslpinning disableM6Inadequate Privacy Controlsios nsuserdefaults getM7Insufficient Binary Protections检查 PIE、ARC、栈 canaryM8Security Misconfigurationios plist cat Info.plistM9Insecure Data Storage文件系统 Keychain 审查M10Insufficient Cryptography挂钩加密类OWASP MASVS v2.0 控制映射standards.md 将 Objection 命令映射到 MASVS 六大类别MASVS 类别Objection 命令评估点MASVS-STORAGEios keychain dump、ios nsuserdefaults get、sqlite connectKeychain/NSUserDefaults/数据库中的敏感数据MASVS-CRYPTOmemory search、挂钩加密框架调用密钥存储、算法选择MASVS-AUTH挂钩 LAContext 与认证类生物识别绕过、会话管理MASVS-NETWORKios sslpinning disable、挂钩 NSURLSession证书固定、明文流量MASVS-PLATFORM挂钩 URL Scheme 处理器、剪贴板监控深链安全、剪贴板暴露MASVS-CODEmemory list modules、二进制检查调试符号、框架分析MASVS-RESILIENCEios jailbreak disable、Frida 检测挂钩防篡改、防调试OWASP MASTG 测试用例对应测试 ID描述Objection 方案MASTG-TEST-0053本地存储敏感数据ios keychain dump 文件系统检查MASTG-TEST-0057备份敏感数据检查备份排除属性MASTG-TEST-0060自定义 URL Scheme挂钩application:openURL:options:MASTG-TEST-0063日志敏感数据挂钩 NSLog 调用MASTG-TEST-0066ATS 强制执行检查 Info.plist ATS 配置Apple 平台安全要求核对要求评估方法Keychain 访问控制通过 keychain dump 验证kSecAttrAccessible值App Transport Security检查 Info.plist 中的NSAllowsArbitraryLoads例外Data Protection API验证敏感文件的文件保护属性Secure Enclave 使用挂钩 SecKey 操作检查受生物识别保护的密钥常见陷阱与规避技能文档在 Common Pitfalls 中明确了四个高频问题附加时应用崩溃部分应用实现了 Frida 检测。对策是使用--startup-command在应用生命周期早期挂钩反 Frida 检查逻辑。Keychain 访问范围限制Objection 只能转储应用访问组内的条目系统级 Keychain 条目需越狱级工具处理。Swift 名称修饰name manglingSwift 方法名在运行时是修饰后的形态需用ios hooking list classes配合 grep 查找去修饰demangled名称。修改不持久所有 Objection 修改均为运行时生效应用重启即复位。发现需立即记录否则重启后必须重做整个会话。评估报告输出规范技能目录提供了标准化的 报告模板建议最终交付包含以下板块Engagement Information应用名、Bundle ID、iOS 版本、设备型号、越狱状态、评估日期、分析师、Objection 版本Executive Summary运行时分析发现的高层叙述Keychain AnalysisService / Account / Data Type / Protection Class / Risk 表格Data Storage AssessmentNSUserDefaults、SQLite 数据库、文件系统三个子表Network SecuritySSL Pinning 是否存在、绕过是否成功、ATS 配置严格与否Binary Protection AssessmentJailbreak 检测、Frida 检测、调试检测、代码混淆状态Memory Analysis密码 / 认证令牌 / API Key / JWT 的搜索命中与风险Recommendations按 Critical / High / Medium 分级列出修复建议。同时建议结合 workflows.md 的完整评估流程环境搭建 → 设备准备 → 附加 Objection → 运行时分析 → 记录发现 → 生成报告与第二条 SSL Pinning 绕过流程配置 Burp → 设置设备代理 → 附加 Objection → 禁用 pinning → 抓取流量 → 分析 API 端点来组织测试节奏。结语本技能将零散的手工 Frida 插桩抽象为一套命令化的、可复现的 iOS 运行时安全评估方法论。评估者既可按照七步工作流逐项执行也可直接复用仓库中的 agent.py 与 process.py 将检查自动化并依托 api-reference.md、standards.md 与 template.md 完成从 OWASP Mobile Top 10 / MASVS 映射到正式报告输出的完整闭环。需要强调的是所有运行时修改都不持久、且会改变应用行为评估务必在授权范围内进行并养成“发现即记录”的工作习惯。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门