iOS App 渗透测试工具 Grapefruit

admin 2023年5月15日23:45:31评论82 views字数 1739阅读5分47秒阅读模式

这是一篇开源项目的软文。

iOS App 渗透测试工具 Grapefruit


Grapefruit 的前身是 passionfruit,目前在 GitHub 有 1.5k 的星标,最早是笔者仿照 idb tool 的功能用 node.js 和 frida 重写的一个带界面的工具。idb Tool 早已年久失修,而一些替代框架例如 FSecureLABS/needle(目前停止维护)和 sensepost/objection(还支持 Android,仍在积极开发)都是字符界面,体验和 Web 各有千秋。


重写之后的 Grapefruit 在界面交互和代码架构上都完全推翻了前者的设计,我也打算停止维护前者而转向新项目的开发。因为实在懒得维护多语言,所以很抱歉只提供了英文的界面。




功能


Grapefruit 目前的功能大体如下:


  • 查看 App 的基本信息,包括是否启用了常见的缓解措施、沙箱路径、entitlements,以及 Info.plist 的内容

  • 枚举 URL schemes 入口并测试

  • 应用存储,包括 Cookies、KeyChain 和 UserDefaults(偏好设置)

  • 直接浏览和下载沙盒内的数据

  • 无需下载,直接查询沙盒内 SQLite3 数据库

  • 枚举和检索所有的 Objective-C 类,查看类信息和方法

  • 查看模块信息和导出符号

  • 反汇编

  • 基本的界面审查,可以直达 delegate 方法的代码实现

  • 枚举所有的 UIWebView 和 WKWebView 实例并注入 js 代码(在没有完整版 F12 的时候可以凑合一下)


虽然是作为 Passionfruit 的替代品,笔者精力有限并没有能完全重写之前的功能,例如 hook 生成和日志输出都还在开发当中。




安装配置


frida 可以通过 gadget 和重打包的方式在非越狱设备上使用,不过笔者没有深入测试过。推荐的配置直接用越狱 iOS 安装 frida 框架,然后在电脑端(支持 Windows、Linux 和 Mac,包括新出的 Apple Silicon,甚至树莓派上也试过了)通过 USB 或者局域网连接。


首先越狱 iOS 和 frida 的配置就不必多说了,具体可以参考 frida 的官方文档和众多中文教程。


在电脑端只需要 node.js,然后用 npm install -g igf 即可安装 igf 命令。直接运行 igf ,然后浏览器访问 http://localhost:31337 即可。


iOS App 渗透测试工具 Grapefruit


iOS App 渗透测试工具 Grapefruit


如果需要改变 Web 界面的默认 IP 和端口,可以使用 -p 1234 -h 0.0.0.0 参数。


需要说明的是,通常使用的 frida-tools 包是一个 Python 工具,不过 Grapefruit 完全使用 js 开发,并不依赖 Python 版。两者可以共存,并且在 Grapefruit 出现异常的时候也可以使用原装的工具除错。


如果是 Windows,需要安装 iTunes 以通过 USB 连接 iPhone。如果安装的是 Windows 商店版的 iTunes,可能会出现间歇性无法连接。保持 iTunes 在前台打开即可解决。


如果在 Linux 下也出现无法访问 USB 的现像,可以安装 libimobiledevice-utils。




iOS App 渗透测试工具 Grapefruit


一些想法


这个项目的定位类似 BurpSuite ,不过不是面向 http 协议,而是 App 运行时层面的问题。不会直接作为扫描器定位到具体的安全风险点,而是尝试尽可能多的列举出相关的信息辅助分析。


其实常见的渗透测试报告很多所谓风险点没有太大的实战意义,笔者希望这个工具能真正成为刷 Bug Bounty 和甲方自查的利器。iOS 的 App 安全能做的文章不多,偶尔也能遇到一些可以直接利用的漏洞,比如 WebView 相关的风险。


frida 官方的工具包是 Python 的,而笔者却选了 node.js 作为开发平台。主要还是因为 Web 前端工具链无法离开 node 生态,而且 frida 的 python binding 目前没有支持 asyncio,一些基于异步消息的功能实现麻烦。


老实说写代码的体验 python 要优于 nodejs,更多质量高的包,以及不会出现 node 原生库跨版本 abi 不兼容的问题。目前遇到许多错误报告都是关于无法安装 frida-node 二进制包的。


项目的 bug 反馈请到 GitHub 仓库。地址可查看原文或直接访问


https://github.com/chichou/grapefruit

原文始发于微信公众号(非尝咸鱼贩):iOS App 渗透测试工具 Grapefruit

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月15日23:45:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   iOS App 渗透测试工具 Grapefruithttps://cn-sec.com/archives/940113.html

发表评论

匿名网友 填写信息