ipad mini2 绕过激活锁

news/2024/10/9 23:17:26

本人博客原文链接: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来对设备进行越狱操作。

202409251337829.png

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

用法很简单:

  1. 第一个参数是你要映射到的电脑端口
  2. 第二个是iPhone的端口
  3. 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激活锁,进入系统了。

202409251329054.png

参考链接:

  1. https://github.com/wrcsubers/iOS_ActivationBypass?tab=readme-ov-file
  2. exploit-development/iOS-Hacktivation-Toolkit: iOS Hacktivation Toolkit (github.com)
  3. checkra1n
  4. axi0mX/ipwndfu: open-source jailbreaking tool for many iOS devices (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

现代C++编程初体验

实验任务1: task1.cpp1 #include <iostream>2 #include <string>3 #include <vector>4 #include <algorithm>5 6 using namespace std;7 8 // 声明9 // 模板函数声明 10 template<typename T> 11 void output(const T &c); 12 13 // 普通函…

cf2009 Codeforces Round 971 (Div. 4)

A. Minimize! 签到题。计算\((c-a)+(b-c)\)的最小值,其实值固定的,等于\(b-a\)。 int a, b;void solve() {cin >> a >> b;cout << b - a << endl; }B. Osu!mania 签到题。给定一个4k下落式的网格,求#下落顺序。直接数组记录就好了。 int n; const i…

KMP循环节

KMP循环节 在icpc 2019 China Collegiate Programming Contest Qinhuangdao Onsite J. MUV LUV EXTRA由题易得,要求这个数的小数部分的\(S=a循环长度−b循环节的长度\),让这个S尽可能的大。 又因为对于循环长度我们可以用kmp算法来求出最小循环节,所以我们可以枚举循环长度去…

js学习 -2024/10/9

今天学习了js中的一些知识 DOM 通过document.get...函数获取元素对象 可以查阅h3school资料找对象的函数,操作对象,//根据id获取元素对象 // let id = document.getElementById(back); // id.src = "../img/02.png";//根据标签获取元素对象 var divss = document.get…

渗透测试作业3

使用wireshark对同一网络下的qq信息进行抓包 首先我们需要知道的是因为qq为了保障消息的及时性,所以当两个设备在同一网域的时候,此时我们发的消息是不会经过保密的,这就给了我们很大的操作空间,那么接下来我会用两种方法来给大家展现一下如何在同一网络下,对QQ的信息进行…

《Programming from the Ground Up》阅读笔记:p181-p216

《Programming from the Ground Up》学习第10天,p181-p216总结,总计34页。 一、技术总结 第10章主要讲计算机是如何计算的,如十进制、二进制、八进制、十六进制以及浮点数和负数的表示。属于比较基础的内容,如果有一定基础,本章可跳过。 1.exponent & mantissa 示例:…

# 20222323 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1、熟悉基本的汇编指令,如管道、输入、输出重定向 2、掌握了栈与堆的概念 3、掌握反汇编与十六进制编程器 实验任务 1、手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 2、利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发get…

shctf [week1]poppopop

最近刚好在学pop链和反序列化,那就写一篇shctf做题的随笔吧 进来先审计代码;1.发现反序列化首先会调用__destruct()魔术方法,将$Web赋为true,并echo $n,显然在这里我们得再有一个魔术方法,又因为这里调用的n被当字符串输出,一眼看到__toString(),考虑把$n赋值为new F()…