摘要

继上篇移动合规的基本检测技巧文章之后来讲讲挖掘漏洞平台业务的移动端IOS平台的赏金技巧,不知是否有些测试点是你之前没关注过的呢那么就来看一下吧。

静态分析

下载并解密应用后,将其加载到反汇编器上(例如 Hopper)。

  • 很多开发者在 iOS 应用上硬编码加密密钥或客户端凭证:选择 “Strings” 选项卡,搜索这些术语 secret、crypt、private、token。

  • 许多应用程序使用第三方后端系统,为此应用程序需要一些凭证或配置文件。有时开发者会在这些文件中暴露凭证或私钥。在应用程序的 bundle 中搜索所有你能找到的.plist,.json或者.conf文件。常见的有 AirshipConfig.plist,GoogleService-Info.plist,肯定还有应用自己的 Info.plist。

  • 有很多应用都有开发/调试类或方法,这些类或方法会显示比普通用户应该看到的更多信息,或者让应用处于调试模式,这将有助于收集额外的信息。选择 “Procedures” 选项卡,搜索这些术语 developer、debug、fake、test。

  • 更多的时候,开发人员忘记了从 Xcode 项目中删除测试数据/文件,它们最终被捆绑在应用程序中。在应用程序的 bundle 目录中搜索不是图片或.xib/.storyboardc 的文件,例如.JSON.

  • 使用 strings 命令搜索二进制文件中的硬编码加密密钥。

  • 64 位字符的字母数字字符串:

    strings <binary> | grep -E '^[[:alnum:]]{64,64}$'

    UUIDs:

    strings <binary> | grep -E '^[-[:alnum:]]{36,36}$'

  • 检查应用程序正在存储的文件,包括主应用程序导入的第三方库的数据。

  • SSH 进入你的设备,将目录改为/private/var/mobile/Containers/Data/Application/{UUID}

  • 转储应用的类、方法和即时变量:class-dump <binary> > dump.txt

  • 几乎每个移动应用都使用至少一个第三方库。挖掘这些第三方库,并检查它们的版本,其中很多是开源的,你可以搜索它们的公共仓库,查看问题,并检查当前版本的库是否受到影响。所有的库都在应用程序的 bundle 中的Frameworks/文件夹内。

动态分析

有了从静态分析中收集到的一些信息,你就可以开始进行一些动态黑客攻击了。

  • 使用动态分析工具来检查应用程序在运行时的行为。使用 cycript, frida 甚至 gdb.

  • 如果你发现任何具有 developer、development、test、fake、debug 功能的类/方法,尝试通过调用这些方法来启用它们。比如有一个 App 有一个叫 InternalSettingsViewController 的类,当呈现时,这个控制器会显示很多调试信息。

  • 使用第三方抓包软件Burpsuite抓取应用的流量,以识别设备上发送和接收的信息进行测试逻辑漏洞。

  • 如果应用程序在启动时没有加载或不稳定地崩溃,尝试在类转储中(或在你的反汇编器中)搜索 isJailbroken、jailbreak、rooted 等方法,因为它们有可能有越狱检测。大多数这些检测可以绕过 cydia 调整,如 xCon, NoSub 或 tsProtector. 如果这些不起作用,你可能需要修补应用程序进行hook过掉他的检测。

  • 在你运行了应用,也许注册或玩了一段时间后,检查 iOS Keychain 中是否有应用产生的数据。有些开发者会在那里存储 AWS/GCP/用户信息凭证。使用 Keychain-Dumper 转储 keychain 项目。

  • 另外,在使用应用一段时间后,检查 UserDefaults 文件,这是一个.plist 配置文件,有些开发者会用它来存储敏感信息。该文件位于/private/var/mobile/Containers/Data/Application/{uuid}/Library/Preferences,通常命名为应用的bundle标识符的.plist。

  • 绕过 App Store 的 TLS 流量,打开 Burp,选择 Proxy,然后选择 Options,向下滚动到 TLS Pass Through,然后添加:

^.*?apple\..*$

^.*?icloud\..*$

^.*?mzstatic\..*$

提升挖掘移动端漏洞赏金技巧办法如下:

阅读 HackerOne , Bugcrowd ,看雪论坛,吾爱破解和iosre论坛写的的报告和教程。

基础视频教程可看这个系列:ios逆向与安全2019

尽可能多的应用进行逆向工程,以获得尽可能多的经验。你也会获得一些关于开发者通常如何做/编码应用程序的知识。

ios逆向练手的app可以使用下方列出的app进行逆向学习

网上也有现成的writeup可以提供参考,基本上两个练手漏洞的app都过关你ios安全测试是没什么问题了,剩下的就是经验积累。