iOS 12.4越狱+配置过程记录

越狱

https://checkra.in/#release 中下载,其中能越狱的设备有iPhone 5s – iPhone X, iOS 12.3 and up

我的设备是iPhone SE(A9),iOS版本12.4

checkra1n-latest-release

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

run-checkra1n

一直点击next,直到如下画面,根据以下提示按键

  1. 点击Start
  2. 同时按住关机键和home键
  3. 松开关机键,持续按住home键
checkra1n-start-jailbreak

之后等待一会,程序安装完成之后,iPhone会重启。

重启完成后输入密码,进行系统,点开checkra1n应用,安装Cydia。

(安装Cydia最好翻墙,翻墙很快下完,不翻墙下载失败)

checkra1n-jailbreak-success

整个越狱流程就结束了,非常简单快捷。

iProxy

安装完Cydia之后可以来安装iProxy。iProxy的用处是通过USB进行SSH连接手机,虽然Wi-Fi就能通过SSH连接,但是稳定性和传输速度比不上USB。

在Mac上执行:brew install libusbmuxd,安装完成之后将手机的端口映射到其他端口上:iproxy 2222 22,在令一个终端页面输入ssh root@localhost -p 2222开始连接,密码是alpine。

⚠️ 我连接SSH时出现问题,报错内容如下

iproxy-error

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

iproxy-success

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来测试一下

objection-install

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

objection-error

证书配置和安装SSL Kill Switch 2

证书配置非常简单,设置好burp代理,访问 http://burp ,安装证书。

安装证书之后在 设置 -> 通用 -> 描述文件 -> PortSwigger CA,点击安装。

再到 通用 -> 关于本机 -> 证书信任设置,选上PortSwigger即可。

certificate-trust

重点是安装SSL Killing,app测试时很多应用都会强制使用certificate pinning导致无法抓包,安装SSL Kill Switch 2可帮助我们绕过certificate pinning。

  1. 安装前先确定Cydia中安装了以下packages:wgetDebian PackagerCydia SubstratePreferenceLoader

⚠️ 找不到PreferenceLoader,可添加源:https://rpetri.ch/repo ,再安装。

  1. SSL Kill Switch 2 release中复制最新的.deb链接
  2. 使用SSH连接iPhone,运行wget <RELEASE URL FROM STEP 2> -> dpkg -i <DOWNLOAD PACKAGE NAME> ->killall -HUP SpringBoard,确定安装成功后rm <DOWNLOAD PACKAGE NAME>
  3. 打开iPhone,在设置 -> SSL Kill Switch 2(设置的最下方) -> 勾选Disable Certificate Validation
SSL-Kill-Switch

绕过越狱检测

Liberty

iPhone上打开Cydia,添加源https://ryleyangus.com/repo/,之后搜索Liberty Lite,安装即可。

安装完成之后在设置中开启Liberty,再点击Block Jailbreak Detection中选择需要绕过越狱检测的iOS应用。

liberty

如果在某些APP中不生效,也可以尝试其他插件,比如xCon。

xCon

在Cydia中添加源 http://xcon.crazy.net ,进入添加的源中选择xCon下载安装即可。

xCon会绕过以下越狱检测方法(1)根据是否存在特定的越狱文件,及特定文件的权限是否发生变化来判断设备是否越狱(2)根据沙箱完整性检测设备是否越狱(3)根据文件系统的分区是否发生变化来检测设备是否越狱(4)根据是否安装ssh来判断设备是否越狱

导出APP文件

导出APP是一个非常有用的功能,导出之后的文件没有壳,拖到IDA中直接反编译就行,非常方便,谁用谁知道。

  1. 在Mac中输入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. 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
2
3
~ sftp -P 2222 root@localhost
root@localhost's password: alpine
Connected to localhost.

进入sftp模式后,使用put将文件上传至iPhone中,上传文件路径为本机的路径

1
2
3
4
sftp> put /Tmp/mem-check
Uploading /Tmp/mem-check to /private/var/root/mem-check
/Tmp/mem-check 100% 132KB 8.2MB/s 00:00
sftp>

然后给mem-check加上执行权限,

1
chmod +x mem-check

先用ps命令得到APP的PID,再利用mem-check –p PID –s STRING对APP内存进行搜索

1
2
~ root# ps A | grep XXX
~ root# mem-check -p 1234 -s password

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

然后会收到一封邮件,点击查看可得到许可证号,使用许可证登录即可

iKeyMonitor

参考文献

https://spaceraccoon.dev/from-checkra1n-to-frida-ios-app-pentesting-quickstart-on-ios-13

https://frida.re/docs/ios/

https://github.com/sensepost/objection/wiki/Screenshots