Apple Tech 752是一名IOS安全研究员,像这样的研究员在国外非常之多。他非常乐于把他的研究心得和一些最新的技术免费分享给所有人,并且还附带完整的视频教程,这是一种自由主义的分享精神,令人钦佩。以下是他对于解锁的研究和一些观点,由谷歌中文翻译并且重新校准,希望你喜欢。泡杯茶,慢慢看。
什么是iCloud绕过?
绕过iCloud是消除或减轻锁定对iOS设备的影响的过程。根据设备型号和iOS版本,可以通过从根文件系统中删除Setup.app目录直接实现iCloud Bypass,也可以通过修改现有激活可执行文件或注入欺骗性激活记录来间接实现iCloud Bypass 。由于checkm8 bootrom功能极其强大且不可修补,因此我们可以通过SSH修改iOS设备的根文件系统,因此所有现代旁路方法都是可行的。利用此漏洞的最知名平台包括checkra1n,ipwndfu和checkm8-a5(arduino)。
直接修改法的目的是创造一种情况,即设备在没有Setup.app条件下,让设备只能重新加载SpringBoard,除此外别无选择,它是Setup Assistant设置助理(Setup.app)之后的第二个最高进程。间接改法的目的稍有不同,它是通过删除Setup.app来实现,就是诱使设备认为其具有有效的激活记录。因此,即使Setup.app仍然存在,设备仍认为它已正常激活,因此它不再将激活锁视为Setup Assistant设置助理中的必要步骤。大多数间接方法都允许您在通过激活屏幕后,正常完成设置助手,因为将伪装激活记录与合法生成的激活记录区分开来几乎是不可能的(稍后会详细介绍)。
是什么原因导致激活锁定?
简单来说,当iOS设备没有有效的激活记录并且“查找我的iPhone(FMI)”已打开时,就会发生激活锁定。导致激活锁定的原因有多种。第一个也是最常见的做法是还原或删除已打开“查找我的iPhone”的iOS设备(通常使用iTunes或3uTools)。激活记录是Setup.app的防护锁,它们可以防止出现“hello”界面(只要存在),并且在抹掉还原iOS设备时不保留任何用户数据,所有内容都将被删除,包括激活记录。没有激活记录,iOS默认会重新加载设置助手(Setup.app),并且把它当成新的设备重新设置。
只有合法的激活记录才能激活成功,以及能够使用iOS设备的最重要部分(蜂窝数据,呼叫,通知,FaceTime,iMessage,Siri,iCloud等)。事实证明,获取激活记录的唯一方法是从Apple官方合法获得激活(是的,Apple拥有至高无上的控制您使用设备的能力)。还原后,所有iOS设备都尝试通过连接到Albert(Albert是Apple激活服务器,地球上每个iPhone,iPad和iPod Touch的最终独裁者)来使自己可用。然后,Albert开始决定他是否希望您能够使用您的设备。他的决定完全基于一个事实-是否打开了“查找我的iPhone”。他使用您设备的唯一标识符进行选择。如果FMI处于打开状态,他说您将不能通过,并抛出一个我们都称为激活锁的HTML页面。如果FMI关闭,则他说我们可以成为朋友,祝您有美好的一天,并交给您一张神秘的金票,其中包括:a)告诉Setup.app完成;b)告诉您设备的所有基本功能(包括手机本身),他们就可以开始工作了。
这使我想到激活锁定的第二个最常见原因:远程激活“丢失模式”或“远程擦除”。当任何人使用其Apple ID登录到iOS设备时,设置助手(Setup.app)会告诉您这样做,Apple将确保默认情况下在该设备上启用了“查找我的iPhone”。这样一来,该Apple ID的所有者便可以随时告诉iCloud.com(或另一台iOS设备上的“查找我的应用”),远程清除丢失模式的设备上的数据来保证安全(丢失模式和远程擦除之间的区别在于,丢失模式可保留您的数据,而远程擦除显然不会。丢失模式还允许您设置自定义消息)。但是,这两种方法的主要目的都是简单明了。为了摆脱设备激活记录并使设备作废,因此它必须再次看到Albert。执行任何一种方法时,由于没有激活记录并且“查找我的iPhone”已打开,因此这就是激活锁的理想情况。Albert会说您不得通过,并向您抛出激活锁页面。当然,任何人都可以通过输入正确的Apple ID和密码,强迫Albert改变主意,但是由于多种原因,这种情况很少发生,我将在下一部分中进行解释。
为什么绕过激活锁?
您可能会认为绕过激活锁定的人是iPhone小偷或罪犯得到的机器,不得不承认有这样的情况,但这样的事情真的很少。回想一下“查找我的iPhone”。正如我在上一节中提到的,Apple确保默认情况下所有新iPhone用户都启用了“查找我的iPhone”。但是,我可以向您保证,如果许多人包括正在阅读这篇文章的您,其实很希望将其关闭。人类的记忆力还远未达到完美,通常很难记住密码,尤其是在很久以后。这么多年来,我遇到了许多使用激活锁来找我的人,他们完全不知道它是什么,它为什么存在,或者什么时候找到我的iPhone被打开。苹果商店的员工可能在购买设备时帮助他们创建了一个Apple ID,此后他们就从未使用过。在这种情况下,您如何期望某人记住他们的Apple ID,更不用说知道他们的密码了?
多数情况下,假设“丢失模式”实际上已完成工作并显示所有者消息。如果设备是仅WiFi的iPad或iPod Touch,则“丢失模式”是完全没有用的,因为除非设备移至已知WiFi网络的附近,否则它将永远不会向所有者显示消息。因此,无论谁能找到仅支持Wifi的设备,都只会看到密码或iPad / iPod已禁用。您希望他们能够在YouTube上搜索密码旁路,直到找到Sliver,但不幸的是,弹出的有关删除iPad密码的第一个视频是有关如何使用3utools擦除设备的教程。那太好了。现在他们已成功删除所有激活记录现在该与Albert激活服务器好好谈一谈了,他当然不会让他们过去。最终,他们确实遇到了Apple Tech 752,并且看到了自己希望观看的视频,并且可能为此拍了自己的手,但是好消息是,它仍然有可能绕过Hello屏幕(Setup.app)。而且我真的看不出在这种情况下谁不想这么做,也不知道为什么这样做是一件坏事!
iCloud旁路如何工作?
iOS 13mobileactivationd 绕过
类型:间接绕过Setup.app
工具:Sliver Mac,Sliver Windows
目标设备:iPhone 6s-iPhone X,A11之前的iPad,iPod Touch 7
目标版本:iOS 13.3-13.7
它是如何工作的:对mobileactivationd二进制文件重命名,并用编译/修补,其中的所有工作就是把未激活变为激活。这会诱使iOS设备认为它具有有效的激活记录,以跳过设置助手,但实际上并未应用,因此所有需要激活记录才能正常运行的设备功能均无法使用。不需要激活记录的所有应用程序都可以完全使用,包括Safari,音乐,相机,照片等。但是,由于无法使用Apple签名对修补过的二进制文件进行代码签名,因此重启后,将再次锁定。
iOS 12mobileactivationd旁路
类型:间接绕过Setup.app
工具:Sliver Mac,Sliver Windows
目标设备:iPhone 5s,iPhone 6,iPhone 6 Plus,iPad Mini 2、3,iPad Air 1,iPod Touch 6
目标版本:iOS 12.4.5-12.5.1
它是如何工作的:对mobileactivationd二进制文件重命名,并用编译/修补,其中的所有工作就是把未激活变为激活。这会诱使iOS设备认为它具有有效的激活记录,以跳过设置助手,但实际上并未应用,因此所有需要激活记录才能正常运行的设备功能均无法使用。不需要激活记录的所有应用程序都可以完全使用,包括Safari,音乐,相机,照片等。但是,由于无法使用Apple签名对修补过的二进制文件进行代码签名,因此重启后,将再次锁定。
删除iOS 12 / iOS 13 Setup.app
类型:直接删除Setup.app
工具:iCloudBypassCA
目标设备:iPhone 5s-iPhone X,A11之前的iPad,iPod Touch 6、7。
目标版本:iOS 12.0-12.4.4,iOS 13.0-13.2.3
工作原理:将Setup.app重命名为Setup.app.bak,以删除安装助手。采取了其他步骤来确保Setup.app完全无法识别,包括uicache和重新启动背板进程。因为设备不知道Setup.app存在,所以即使重新启动后,此修改仍会持续存在。所有不需要激活记录的应用程序都可以使用,包括Safari,音乐,相机,照片等。Apple在iOS 13.3发行版中识别并修补了此方法,该发行版引入了系统范围内对Setup.app的新检测,当无法识别Setup.app时,它将使iOS设备进入慌张的冻结状态。结果,发现并引入了mobileactivationd的旁路。
iOS 12/13/14密码旁路
类型:备份和还原数据
工具:Sliver Mac,Sliver Windows,F3arra1n
目标设备:iPhone 5s-iPhone X,A11之前的iPad,iPod Touch 6、7。
目标版本:iOS 12.0-12.5.1,iOS 13.xx,iOS 14.0-14.2
iOS 12/13/14 GSM信号旁路
类型:间接绕过设置
工具:Checkm8.info,iRemoval PRO,SoNiCk14,F3arra1n
目标设备:iPhone 7-iPhone X(仅GSM)
目标版本:iOS 13.xx,iOS 14.xx
工作原理:到目前为止,您可能已经了解到激活服务器会拒绝为已打开“查找我的iPhone”的设备生成激活记录。这部分非常简单。但是请考虑此激活记录还特定于每个iOS设备的唯一标识符(例如序列号,IMEI,UDID,ECID等)。换句话说,如果为设备的特定唯一标识符创建了激活记录,则该设备将接受它们并完全发挥作用。这是一个普遍的想法,即黑客曾经想出一种非常聪明的方法,可以直接从激活服务器提取任何目标iOS设备的激活记录。尽管实际上GSM信号旁路是一种非常复杂的方法,但总体概念却相当简单易懂。一切都从两台设备开始。首先,将“查找我的iPhone”已关闭的一部设备进行越狱,假设为A设备,以便可以修改读取系统文件。接下来,把“查找我的iPhone”已打开的设备并且显示“激活锁”,假设把此设为B设备。把B设备的唯一标识符(序列号,IMEI,UDID等)的数据替换给A设备。换句话说,用B设备的数据替换掉A设备的数据(数据例如序列号,IMEI,UDID等),现在,最重要的部分来了,Albert(albert.apple.com,Apples激活服务器)并没有注意到或察觉A设备的唯一标识符有什么不同。在正常情况下,Albert必须会注意到。对,现在我们处于绝对完美的状态。接下来从A设备发送一个激活请求(也就是“激活iPhone可能要花费几分钟”时发生的过程)。由于Albert根本不知道唯一标识符已经发生变化,因此它会根据所看到的唯一标识符,再重新生成一组完全有效的激活记录,这些标识符当然是B设备的唯一标识符。此时,A设备重新获取新生成的激活记录,实际上是B设备的数据,这其中最重要的部分(通配令牌)被应用于B设备的文件系统,文件名为activation_record.plist。因为由Albert(唯一能够创建激活记录的进程)为B设备创建了activation_record.plist,所以一切都很完美,Apple未修补此方法的原因是,要在Albert中实施一个过程,以检查每个被激活设备的唯一标识符的真实性,这将需要对服务器进行完全的返工,并且花费大量金钱。苹果选择不将其资源专用于执行此类任务。除非他们改变主意,否则与Checkra1n兼容的iOS设备可能永远存在GSM信号旁路。但是,当今大多数iOS设备都具有MEID,这就像一个额外的安全层,可以防止设备接受非真实生成的激活记录。但是,这只是增加了一个额外的步骤,黑客已经找到一种对记录进行哈希处理/签名的方法来绕过它,因此我们可能很快就会看到一种用于MEID设备的方法。如果有人浮出水面,
通过SSH Ramdisk删除A4,A5,A6,A7 Setup.app
类型:直接删除Setup.app
工具:Sliver Mac
目标设备:iPhone 4、4s,5、5c,5s,iPod Touch 5,iPad Air 1,iPad Mini 1、2,iPad 2、3、4。
目标版本:iOS 10.3.3(A7),iOS 10.3.3 / 10.3.4(A6),iOS 9.3.5 / 9.3.6(A5),iOS 7.1.2(A4)。
工作原理:将iOS设备正常还原到最新版本的iOS(使用iTunes或3uTools)时,在实际开始还原之前,会上传并执行一系列镜像文件img4。此过程的目的是为设备准备完整的文件系统重写。这些文件包括iBSS,iBEC,DeviceTree,Ramdisk和Kernelcache。对于正常还原,上传所有这些文件后,设备实际上将收到一个新编写的文件系统,这很重要,因为所有ramdisk iCloud Bypass方法都可以通过启动还原来工作,但实际上并不还原设备或写入任何内容。任何ramdisk iCloud Bypass方法中的第一步也是最重要的一步是使用checkm8漏洞利用的PWNED DFU MODE。PWNED DFU允许我们上传所需的任何图像文件。在没有PWNED DFU的情况下,适用于最新版本的iOS的常规图像文件可能会正确上传,但这完全无法帮助我们。我们需要上传所有内容的特殊补丁版本:补丁iBSS以允许加载补丁iBEC,补丁iBEC可以为设备提供自定义引导参数(包括-v进行详细引导),最重要的是,指示设备打开的补丁ramdisk。完成所有预还原步骤后,建立SSH连接。需要使用checkm8这样的漏洞才能上传和执行修补和未签名的图像。Sliver为每个捆绑的设备提供了所有必要的补丁文件,并在单击“加载Ramdisk”时自动加载它们。在上一个文件(内核缓存)上载后,执行bootx命令,该命令启动SSH连接,并允许任何客户端SSH到设备中(流行的是TCPRelay,iproxy,Cyberduck)并查看根文件系统。单击“中继设备信息”时,Sliver使用TCPRelay。对于A7设备,然后执行自定义有效负载,该负载指示设备删除Setup.app并自行重启,因此不需要ramdisk映像,但是对于所有A6和A5设备,首先通过ramdisk打开SSH连接,然后打开将执行脚本,该脚本自动登录到root @ localhost并运行ssh命令以挂载文件系统,删除Setup.app并重新引导。对于A5设备,在安装时。应用程序丢失,设备将直接启动到主屏幕。但是,对于A6和A7设备,必须在旁路之前立即恢复设备并将其置于DFU模式,否则会出现黑屏问题。黑屏问题的原因是设备还没有完成恢复后进度条,这实际上会重设文件系统。删除Setup.app并在之后出现恢复后进度条时,设备将了解Setup.app永远不是文件系统的一部分,也永远不是文件系统的一部分,因此可以忽略它。但是,如果恢复后的进度条已经由Setup.app完成,然后又删除了Setup.app,则文件系统会认为它丢失了某些内容并拒绝引导至主屏幕。这就是为什么为了安全起见,在尝试任何ramdisk方法时,我总是告诉人们在设备上的进度条之前还原并输入DFU的原因。