本人博客原文链接:https://drcodes.cn/2024/09/25/ipad-mini2-bypass-icloud-activation-lock/
前言
这几天刷微博刷到一条被锁10年的iPhone终于解锁的视频,被称之为「时间胶囊」,我评论了之前解锁iPad2的经过,不刷机,找回忘记密码的老iPad中的数据!-爱写代码的小医生 (drcodes.cn),想不到很多人点赞评论。于是翻了翻仓库,发现有一台iPad mini2,但是已经不能进入系统了,提示需要激活,记不清当时是用哪个id登陆的了,
查阅了一番资料后,发现可以绕过激活锁。大致原理如下:
其实在2年前checkra1n刚火起来的时候,我也帮同事绕过了一台iPad mini2,当时是借助@appletech752的sliver工具做的,当时没有记录过程,但是这次我不想安装他的工具,自己通过命令行解锁也挺有意思的,这里简单记录解锁经过,所需要的工具和软件有:
- 装了OS X系统的苹果电脑,或者黑苹果也可以(本人为Sonoma 14.5)
- 数据线
- 最新版本的checkra1n
- libusbmuxd中的iproxy
- 已经激活好的激活文件mobileactivationd
一、使用checkra1n越狱,打开iPad的ssh 44端口
说到Checkra1n,首先要提到的是Checkm8漏洞,Checkra1n就是基于Checkm8漏洞开发的。Checkm8是安全研究人员@axi0mX在2019年9月27日发现的苹果手机“史诗级漏洞”:链接:axi0mX/ipwndfu: open-source jailbreaking tool for many iOS devices (github.com),之所以说这个漏洞是史诗级的,因为上次发现类似漏洞已经是差不多10年前在iPhone4上发现的那个漏洞。这个漏洞位于苹果手机的Bootrom代码中,是硬件设计的漏洞。Bootrom是固化在 iPhone 只读区域中的一段代码,该区域中的代码是启动链及启动信任链的起点,主要负责加载后续的启动链,该区域中的代码无法通过系统更新来更新。iOS 设备在启动载入初始代码时,Bootrom是无法写入只能读取的,有了“checkm8”这个漏洞后,可以绕过iPhone的信任机制,加载定制的启动代码。Bootrom的漏洞由于是存在于硬件只读固件内,除非用户更换手机的硬件,否则随便Apple怎么对系统进行升级都无法修补该漏洞,因此所有影响的设备将一直可以被利用,无视上面运行的iOS版本。Checkm8的漏洞受影响的设备包括iPhone4S、iPhone5、iPhone5C、 iPhone 5S、 iPhone 6、 iPhone SE、 iPhone 6S、 iPhone 7和7 Plus、 iPhone 8、8 Plus 和 iPhone X,以及大多数基于类似 SoC 的 iPad以及Apple TV HD (ATV4)和Apple TV 4K,和Apple Watch的系列1、2和3等。在受影响的设备上,该漏洞可以被用来进行越狱操作。Checkra1n就是基于Checkm8开发的越狱工具, 不过该越狱工具目前未对iPhone4S、iPhone5、iPhone5C进行适配。不同于传统的越狱工具,Checkra1n对手机的越狱不是永久的(即Checkra1n是非完美越狱),也就是说越狱完成后,一旦设备进行了重启,系统就恢复到原来的iOS,这时候就需要重新运行Checkra1n来对设备进行越狱操作。
checkra1n的官网如下:https://checkra.in/ 针对iPad mini2,其只支持iOS12以上的系统,不支持iOS9,所以要先升级系统到最新。在官网下载最新版本的checkra1n后,把checkra1n.app放到某个目录下,在终端进入该目录,输入如下指令:
./checkra1n.app/Contents/MacOS/checkra1n -c
这行指令会打开checkra1n的cli模式,成功运行后会提示:
\- [*****]: Waiting for DFU devices
即等待DFU设备,手动将iPad mini2 进入DFU模式,方法如下:长按顶部电源键和home键10秒,后松开顶部电源键,继续长按home键,直到终端提示Exploiting
终端会自动运行越狱,且iPad 屏幕中间有checkra1n标志,左上角有跑代码,如果提示All Done,则提示越狱成功。
二、使用libusbmuxd中的iproxy映射iPad的ssh端口到本地电脑
iproxy是usbmuxd附带的一个小工具,它的作用是将设备的某个端口映射到电脑的某个端口 mac下可以通过brew安装
brew install libusbmuxd
用法很简单:
- 第一个参数是你要映射到的电脑端口
- 第二个是iPhone的端口
- UDID一般不用填,会自动获取,不过多设备连接时,需要用于区分设备
iproxy的作用很丰富,终端键入如下命令:
iproxy 2222 44
- 2222 是本地电脑端口
- 44 是iPad的ssh端口 (checkra1n打开了iPad ssh端口,并且默认为44)
三、使用ssh连接iPad,修改激活文件。
新建一个终端窗口,输入:
ssh root@localhost -P 5222
密码为alpine
这样就以root身份通过ssh连接上iPad了,因为是最高权限,所以可以随心所欲做任何事情。
在iPad上,保持在选择Wi-Fi界面,但是不要连接!
在ssh终端窗口逐行输入如下命令
mount -o rw,union,update /
launchctl unload /System/Library/LaunchDaemons/com.apple.mobileactivationd.plist
rm /usr/libexec/mobileactivationd
uicache --all
其中第三行rm /usr/libexec/mobileactivationd
的意思是:删除当前iPad激活文件。
下载激活后的激活文件mobileactivationd,这是别人在其他已经激活好的机器上提取出来的激活文件,详见:E4s0N/iOS-Hacktivation-Toolkit: iOS Hacktivation Toolkit (github.com)
再新建一个终端窗口,使用scp命令将激活后的mobileactivationd 文件传输到iPad的/usr/libexec/
目录上:
scp -O -P 5222 ./mobileactivationd root@localhost:/usr/libexec/
密码同样为 alpine
在连接iPad的ssh终端窗口输入:
chmod 755 /usr/libexec/mobileactivationd
launchctl load /System/Library/LaunchDaemons/com.apple.mobileactivationd.plist
最后,在iPad上选择连接iTunes,就可以绕过iCloud激活锁,进入系统了。
参考链接:
- https://github.com/wrcsubers/iOS_ActivationBypass?tab=readme-ov-file
- exploit-development/iOS-Hacktivation-Toolkit: iOS Hacktivation Toolkit (github.com)
- checkra1n
- axi0mX/ipwndfu: open-source jailbreaking tool for many iOS devices (github.com)