越狱
在 https://checkra.in/#release 中下载,其中能越狱的设备有iPhone 5s – iPhone X, iOS 12.3 and up
我的设备是iPhone SE(A9),iOS版本12.4

下载完成后,将手机通过数据线连接Mac,运行checkra1n,点击start

一直点击next,直到如下画面,根据以下提示按键
- 点击Start
- 同时按住关机键和home键
- 松开关机键,持续按住home键

之后等待一会,程序安装完成之后,iPhone会重启。
重启完成后输入密码,进行系统,点开checkra1n应用,安装Cydia。
(安装Cydia最好翻墙,翻墙很快下完,不翻墙下载失败)

整个越狱流程就结束了,非常简单快捷。
iProxy
安装完Cydia之后可以来安装iProxy。iProxy的用处是通过USB进行SSH连接手机,虽然Wi-Fi就能通过SSH连接,但是稳定性和传输速度比不上USB。
在Mac上执行:brew install libusbmuxd
,安装完成之后将手机的端口映射到其他端口上:iproxy 2222 22
,在令一个终端页面输入ssh root@localhost -p 2222
开始连接,密码是alpine。
⚠️ 我连接SSH时出现问题,报错内容如下

我的解决办法就是重新安装openssh,重装后就能正常连接

Frida and Objection
Frida安装教程:https://frida.re/docs/ios/
在Mac执行:pip3 install frida-tools
需要在iPhone上执行的操作:打开Cydia -> 点击底部栏“软件源” -> 点击右上角“编辑” -> 点击左上角“添加”,然后输入 https://build.frida.re
完成之后,点击新增的源找到“build.frida.re”点击进去,里面有三个可选项,分别是“Frida for 32-bit devices”、“Frida for A12+ devices”、“Frida for pre-A12 devices”,32-bit是iPhone 5s和iPad Air(不含)以下的设备,A12+是iPhone X(不含)以上的设备。
因为我的设备是iPhone SE,芯片型号是A9,所以选择“Frida for pre-A12 devices”
安装完Firda之后,继续安装Objection。
在Mac上执行pip3 install objection
,安装完成之后可以运行objection --gadget "com.apple.AppStore" explore
来测试一下

⚠️ 如果安装的是“Frida for A12+ devices”,使用Frida时需要开启Xcode来挂载硬盘镜像。

证书配置和安装SSL Kill Switch 2
证书配置非常简单,设置好burp代理,访问 http://burp ,安装证书。
安装证书之后在 设置 -> 通用 -> 描述文件 -> PortSwigger CA,点击安装。
再到 通用 -> 关于本机 -> 证书信任设置,选上PortSwigger即可。

重点是安装SSL Killing,app测试时很多应用都会强制使用certificate pinning导致无法抓包,安装SSL Kill Switch 2可帮助我们绕过certificate pinning。
- 安装前先确定Cydia中安装了以下packages:
wget
、Debian Packager
、Cydia Substrate
、PreferenceLoader
⚠️ 找不到PreferenceLoader,可添加源:https://rpetri.ch/repo ,再安装。
- 在SSL Kill Switch 2 release中复制最新的
.deb
链接 - 使用SSH连接iPhone,运行
wget <RELEASE URL FROM STEP 2>
->dpkg -i <DOWNLOAD PACKAGE NAME>
->killall -HUP SpringBoard,确定安装成功后rm <DOWNLOAD PACKAGE NAME>
- 打开iPhone,在设置 -> SSL Kill Switch 2(设置的最下方) -> 勾选Disable Certificate Validation

绕过越狱检测
Liberty
iPhone上打开Cydia,添加源https://ryleyangus.com/repo/
,之后搜索Liberty Lite
,安装即可。
安装完成之后在设置中开启Liberty,再点击Block Jailbreak Detection中选择需要绕过越狱检测的iOS应用。

如果在某些APP中不生效,也可以尝试其他插件,比如xCon。
xCon
在Cydia中添加源 http://xcon.crazy.net ,进入添加的源中选择xCon下载安装即可。
xCon会绕过以下越狱检测方法(1)根据是否存在特定的越狱文件,及特定文件的权限是否发生变化来判断设备是否越狱(2)根据沙箱完整性检测设备是否越狱(3)根据文件系统的分区是否发生变化来检测设备是否越狱(4)根据是否安装ssh来判断设备是否越狱
导出APP文件
导出APP是一个非常有用的功能,导出之后的文件没有壳,拖到IDA中直接反编译就行,非常方便,谁用谁知道。
- 在Mac中输入
git clone https://github.com/AloneMonkey/frida-ios-dump.git && cd frida-ios-dump
sudo pip3 install -r requirements.txt --upgrade
- 在另一个终端输入
iproxy 2222 22
python3 dump.py -l
列举iPhone上所有的应用,python3 ./dump.py <APP DISPLAY NAME OR BUNDLE IDENTIFIER>
导出APP文件。
安装Apple File Conduit 2
iOS9以上无法通过第三方软件读取应用文件,安装Apple File Confuit2可绕过该限制。
在Cydia中搜索“Apple File Confuit2”即可
APP文件目录:
a) iOS7及之前:/Device/private/var/mobile/Application/UUID/XXXXX.app/
b) iOS8:/var/mobile/Containers/Bundle/Application/UUID/
c) iOS9/10/12:/var/containers/Bundle/Application/UUID/
添加mem-check
已经安装好OpenSSH,可以使用sftp将mem-check文件上传到iPhone中。
在本机输入sftp -P 2222 root@localhost
,再输入密码alpine
进入sftp模式
1 | ~ sftp -P 2222 root@localhost |
进入sftp模式后,使用put将文件上传至iPhone中,上传文件路径为本机的路径
1 | sftp> put /Tmp/mem-check |
然后给mem-check加上执行权限,
1 | chmod +x mem-check |
先用ps命令得到APP的PID,再利用mem-check –p PID –s STRING对APP内存进行搜索
1 | ~ root# ps A | grep XXX |
iKeyMonitor安装
iKeyMonitor安装直接在Cydia中搜索iKeyMonitor即可
iKeymonitor只有三天试用时间,使用十分钟邮箱(http://mail.bccto.me/ )获取一个随机的邮箱,然后在官网进行注册( https://ikeymonitor.com/ )
官网选择sign up -> iPhone/iPad -> The iPhone/iPad can be Jailbroken, and I can get it in my hand and jailbreak it -> 填写User ID 和 Email
然后会收到一封邮件,点击查看可得到许可证号,使用许可证登录即可
参考文献
https://spaceraccoon.dev/from-checkra1n-to-frida-ios-app-pentesting-quickstart-on-ios-13