如何基于checkra1n Exploit搭建一个iOS 13的App逆向分析环境
2019-12-22 10:36:34 Author: www.4hou.com(查看原文) 阅读量:414 收藏

本文的目的是帮你进入移动应用程序渗透测试,虽然在Android上起步相对容易,但在iOS上起步就难了。例如,虽然Android有Android虚拟设备和其他一些第三方模拟器,但iOS只有一个Xcode的iOS模拟器,它模拟的是iPhone的程序环境,而不是硬件。因此,iOS应用渗透测试需要一个实际的操作系统设备。

而且,即使绕过SSL证书固定等基本操作也很麻烦。 Portswigger的Burp Suite Mobile Assistant需要安装到越狱设备上,并且只能在iOS 9及更低版本上使用。

很长一段时间以来,iOS 渗透测试指南都建议在eBay上购买带有不支持的iOS版本的旧iPhone。比如Yogendra Jaiswal的优秀指南,是基于Unc0ver越狱,它在iOS 11.0-12.4上工作。如果你没有该范围内的苹果设备,你就没那么幸运了。

幸运的是,随着checkra1n破解版的发布,A5-A11版的iPhone、iPad和iPods最新版的iOS现在可以破解了。许多iOS应用程序测试工具在漫长的越狱冬天都处于休眠状态,现在它们正在迎头赶上,新的工具也即将发布。

现在,我正在编写具有checkra1n越狱功能的现代设备上iOS应用程序渗透测试的快速入门指南,并将不同工具的设置指南合并到一处。

快速入门

硬件

让我们从基础开始。你需要一个A5-A11的苹果设备,最好是iPhone。我用的是iPhone 8。多亏了checkra1n,你不必担心iOS版本,到目前为止,它支持最新的iOS 13.3。

不幸的是,checkra1n目前需要macOS设备,但是Windows和Linux支持也正在研发中。

越狱

破解你的苹果设备会大大削弱你的安全态势,你不应该在你的主设备上执行此操作。事实上,除了渗透测试,你不应该使用越狱设备做任何事情。

请注意,每次你重启iPhone,以前的checkra1n越狱都会失败,所以你必须重新越狱一次。

1.在 https://checkra.in/下载最新的checkra1n越狱工具;

2.将你的iPhone连接到macOS设备,然后通过应用程序→右键单击checkra1n→打开来打开checkra1n。

3.解锁iPhone,然后在checkra1n中单击“开始”;

4.按着checkra1n中的其余步骤,并根据需要重新启动;

1.png

此时,你就有一个越狱的iPhone。

Cydia

这非常简单,在越狱的iPhone上,打开checkra1n应用程序,然后点击“安装”部分的“Cydia”。

2.png

现在你已经有了Cydia,可以安装几个程序包来帮助你进行测试,稍后我会详细介绍。

iProxy

虽然你可以通过无线网络SSH到你的iPhone上,但是通过USB来做会更快更可靠。

1.brew install libusbmuxd;

2.iproxy 2222 22;

3.在另一个终端中,运行ssh [email protected] -p 2222;

4.输入密码alpine;

5.现在你的iPhone中应该有一个SSH会话;

这样做的的一个好处是,你还可以使用像FileZilla这样的客户端,通过SFTP在iPhone上传输文件。只需选择SFTP协议,将你的主机设置为localhost,并将端口设置为2222。

3.png

Objection和Frida

是时候安装我最喜欢的两个移动应用测试工具了,Objection和Frida,objection是由Frida提供的可以对移动平台的runtime进行检测的工具包。该工具包目前只在iOS上,其旨在允许您能够在非越狱iOS设备runtime时,在其未加密的iOS应用程序上执行各种安全相关的任务。在这里我不会详细介绍它们的用法,只介绍它们的设置。Frida有一个iOS指南,请点此参考。

1.在macOS设备上运行pip3 install frida-tools;

2.在你的iPhone上,打开Cydia,进入source→Edit→add,并输入https://build.frida.re添加Frida的存储库。

3.进入搜索→输入Frida→安装;

4.回到macOS设备上,运行pip3 install objection;

5.最后,运行objection –gadget "com.apple.AppStore" explore检查所有内容是否被正确集成

代理流量以及绕过Cert Pinning

通过Burp套件代理流量,可以按着以下操作:

1. 在Burp Suite上,执行以下步骤:代理→选项→代理侦听器→添加→绑定到端口:1337→绑定到地址:所有接口(或选择特定地址)→“确定”;

2.在你的iPhone上,执行以下步骤:设置→Wi-Fi→信息→配置代理→手动→设置服务器和端口;

3.在你的iPhone上,执行以下步骤:转到http://burp→单击“ CA证书”→下载配置文件→设置→常规→配置文件和设备管理→Portswigger CA→安装;

现在除了使用证书固定的应用程序,应该通过Burp代理流量。幸运的是,SSL Kill Switch 2 https://github.com/nabla-c0d3/ssl-kill-switch2Cert Pinning绕过工具最近已经可以支持iOS 13了。

1.要确保在Cydia中安装了以下程序包:wget, Debian Packager, Cydia Substrate, PreferenceLoader; 

2.进入SSL Kill Switch 2发布页面,将链接复制到最新的.deb发布

3.通过SSH进入iPhone(请参阅上面的iProxy部分),然后运行wget <RELEASE URL FROM STEP 2> → dpkg -i <DOWNLOADED PACKAGE NAME> → killall -HUP SpringBoard → rm <DOWNLOADED PACKAGE NAME>;

4.在你的iPhone上,进入“设置”→“SSL Kill Switch 2”(应该在底部)→“禁用证书验证”;

4.png

绕过越狱检测

越狱检测很烦人但可以解决,在目前所有支持iOS 13的程序中,我发现Liberty Lite Cydia模块工作得最稳定。

1.在你的iPhone上,打开Cydia并通过进入Sources→Edit→Add设置,输入https://ryleyangus.com/repo/添加模块作者Ryley Angus的存储库。

2.进入搜索→进入Liberty Lite→安装;

3.安装完成后,进入设置→自由→阻止越狱检测→允许你想要绕过的应用程序;

4.退出并重新打开你的应用程序,如果它仍然没有被绕过,你可以尝试其他模块。

5.png

转储程序文件

与Android apk文件不同的是,iOS应用程序是以加密的ipa文件的形式存储的,因此很难访问和分析。安装了iproxy和Frida之后,我们可以在运行时使用Frida -ios-dump执行此操作。

1.在你的macOS设备上,git clone https://github.com/AloneMonkey/frida-ios-dump.git && cd frida-ios-dump;

2.sudo pip3 install -r requirements.txt –upgrade;

3.在另一个终端中,如果尚未运行iproxy 2222 22,请运行它;

4.要转储应用程序的文件,./dump.py <APP DISPLAY NAME OR BUNDLE IDENTIFIER>;

通常,我喜欢对我的工具进行符号链接,这样就可以使用ln -s <ABSOLUTE PATH TO dump.py> /usr/local/bin/dump-ipa从我的PATH轻松访问它。现在,每当我想要转储应用程序时,我可以在任何地方使用dump-ipa命令。

有了这个快速入门指南,你现在就有了开始iOS应用渗透测试的基本工具。

本文翻译自:https://spaceraccoon.dev/from-checkra1n-to-frida-ios-app-pentesting-quickstart-on-ios-13如若转载,请注明原文地址: https://www.4hou.com/web/22209.html


文章来源: https://www.4hou.com/web/22209.html
如有侵权请联系:admin#unsafe.sh