AppleTech752分析报告Bypass-iCloud激活的完整过程以及原理指南

由安全研究人员和绕过专家Apple Tech 752编写和编辑

此文转载自Apple Tech 752的博客,原文链接https://www.appletech752.com/blog.html

Apple Tech 752是一名IOS安全研究员,像这样的研究员在国外非常之多。他非常乐于把他的研究心得和一些最新的技术免费分享给所有人,并且还附带完整的视频教程,这是一种自由主义的分享精神,令人钦佩。以下是他对于解锁的研究和一些观点,由谷歌中文翻译并且重新校准,希望你喜欢。泡杯茶,慢慢看。

什么是iCloud绕过?

绕过iCloud是消除或减轻锁定对iOS设备的影响的过程。根据设备型号和iOS版本,可以通过从根文件系统中删除Setup.app目录直接实现iCloud Bypass,也可以通过修改现有激活可执行文件或注入欺骗性激活记录间接实现iCloud Bypass 。由于checkm8 bootrom功能极其强大且不可修补,因此我们可以通过SSH修改iOS设备的根文件系统,因此所有现代旁路方法都是可行的。利用此漏洞的最知名平台包括checkra1nipwndfucheckm8-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设备都尝试通过连接到AlbertAlbertApple激活服务器,地球上每个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改变主意,但是由于多种原因,这种情况很少发生,我将在下一部分中进行解释。

激活锁的第三个,最罕见和最奇怪的原因是什么。没错,激活锁定可以完全随机发生,没有特定原因。如果您拥有一台iOS设备已经足够长的时间,则可能有一天早上醒来并要求在Setup Assistant上重新设置iPhone。或者您在Safari中浏览时,突然间您看到了苹果徽标和Hello屏幕。然后,您滑动以解锁或按下主页以打开,并立即找到“激活锁定”屏幕。如果您输入了Apple ID和密码,该页面可能会冻结10秒钟左右,然后立即崩溃到主屏幕,没有数据和隐私,没有Touch ID设置,没有“欢迎使用iPhone”入门,什么也没有。但是,如果您不记得自己的Apple ID(假设您在购买设备时就设置了它,并且已经使用了5年,从那以后就再也没有使用过,我不怪您),那么您将被锁定,绝对没有理由全部。这件事发生真的发生,有位朋友,他们住在一个海外的小国家,花了我近5个月的时间才给他们寄出iPhone。他们为拥有该设备并使用自己的Apple ID进行设置感到非常兴奋,但是几天后,它随机崩溃并显示了激活锁。不幸的是,他们不知道密码,也没有计算机可以绕过,所以一瞬间他们对iPhone的了解和喜爱就一去不复返了。我使用的是iPhone 6s,即使在越狱状态下,我的个人设备也多次发生这种奇怪的现象。但是,这种类型的激活锁的奇怪之处在于它实际上可以保存您的激活记录。因此,如果您确实设法删除Setup.app,有时您仍可以像normal一样继续使用设备,这是最奇怪的部分。例如,在我的分享的arduino方法上的iPhone 4s上,有些人已删除Setup.app,但他们仍然接到了电话和数据(谁知道!)。他们的设备很可能曾经受到激活锁这种罕见情况的影响,并且从未恢复,远程擦除或进入丢失模式

为什么绕过激活锁?

您可能会认为绕过激活锁定的人是iPhone小偷或罪犯得到的机器,不得不承认有这样的情况,但这样的事情真的很少。回想一下“查找我的iPhone”。正如我在上一节中提到的,Apple确保默认情况下所有新iPhone用户都启用了“查找我的iPhone”。但是,我可以向您保证,如果许多人包括正在阅读这篇文章的您其实很希望将其关闭。人类的记忆力还远未达到完美,通常很难记住密码,尤其是在很久以后。这么多年来,我遇到了许多使用激活锁来找我的人,他们完全不知道它是什么,它为什么存在,或者什么时候找到我的iPhone被打开。苹果商店的员工可能在购买设备时帮助他们创建了一个Apple ID,此后他们就从未使用过。在这种情况下,您如何期望某人记住他们的Apple ID,更不用说知道他们的密码了?

还有丢失模式。使用“丢失模式”的人最有可能丢失或放错iPhone,iPad或iPod Touch,并且出于明显的原因,他们不希望其他人使用手机。有道理,我也不会。但是考虑一下。如果您丢失了iOS设备,那么还没有到没有电话或平板电脑就无法生存的地步。在我们这个高科技的现代世界中,数字技术已经发展成为工作,交流,娱乐等等的必需品。这样一来,一个夏天在海滩上丢了手机的人,就不会等到找到手机才继续工作和生活,他们很可能会去当地的Apple商店或手机服务提供商重新购买新的设备来使用作为他们的日常设备。也许一年过去了,甚至5年了,那时他们有了几部新手机,却完全忘记了他们几年前丢失的设备。然后,有一天,一个有创造力的人进入现场,发现丢失的宝藏,并发现它奇迹般地接受了指控并重新生活了。他们注意到屏幕上有一个来自旧所有者的消息,其中包含一个电话号码,因此他们拨打该电话,但是,丢失设备的人不知道打来电话的他们是谁,并立即挂断电话(我发现多个处于丢失模式的电话带有有效的电话号码,通常就是这种情况)。所以你有它。丢设备的人不想要或不需要的不完美iPhone ,而新发现者则被激活锁卡住了。在这种情况下,谁不想绕过?

多数情况下,假设“丢失模式”实际上已完成工作并显示所有者消息。如果设备是仅WiFi的iPad或iPod Touch,则“丢失模式”是完全没有用的,因为除非设备移至已知WiFi网络的附近,否则它将永远不会向所有者显示消息。因此,无论谁能找到仅支持Wifi的设备,都只会看到密码iPad / iPod已禁用。您希望他们能够在YouTube上搜索密码旁路,直到找到Sliver,但不幸的是,弹出的有关删除iPad密码的第一个视频是有关如何使用3utools擦除设备的教程。那太好了。现在他们已成功删除所有激活记录现在该与Albert激活服务器好好谈一谈了,他当然不会让他们过去。最终,他们确实遇到了Apple Tech 752,并且看到了自己希望观看的视频,并且可能为此拍了自己的手,但是好消息是,它仍然有可能绕过Hello屏幕(Setup.app)。而且我真的看不出在这种情况下谁不想这么做,也不知道为什么这样做是一件坏事!

当然,为什么这么多人绕开的最大原因是由于不幸或不明智的销售!窃取iOS设备的盗贼希望尽快摆脱它们,并快速赚钱。最常见的方法是通过CraigslisteBay盗贼将进行快速还原,以将设备显示在设置屏幕上,然后将其出售给一些不知情的买家,他们不知道这件事并认为它是全新的设备。诈骗的受害者对其进行了设置,当然他们被激活锁卡住了,但根本不是他们的错,是小偷的错,不幸的是,这样的小偷很少被抓住。苹果本可以对此非常聪明,并选择展示设备所链接到的所有者帐户的完整电子邮件地址,但他们只会显示第一个字母!这有什么用?如果骗局的受害者有办法联系抢劫的受害者,那么他们可以安顿下来并使设备再次可用,但是苹果宁愿牺牲iOS设备的可用性,也不愿在设置屏幕上显示完整的电子邮件。不是一个好选择。幸运的是,由于受害者无法与原始所有者联系,因此他们可以绕过旁路获得一些乐趣。归根结底,在这种情况下,这并不是原始所有者试图使他们购买的设备不可用的过错,也不是苹果公司使欺诈行为的受害者几乎不可能将其设备退还给用户的过错。无论如何,除非用户选择通过旁路将其重新使用,否则该设备将过时。我的理念是始终将iOS设备带入生活,以便有人而不是没人会受益!

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
    • 工作原理:密码锁定或禁用的设备几乎总是具有一组有效的出厂激活记录。执行密码旁路时,将提取这些记录并将其保存到桌面上的文件夹(特别是FairPlay文件夹中的activation_record.plist,data_ark.plist,com.apple.commcenter.device_specific_nobackup.plist和IC-Info.sisv)。 。然后,将系统二进制文件插入到根文件系统中的/ bin目录中,并提供一个参数,该参数指示设备强制擦除自身,而不管FMI(“查找我的iPhone”)是打开还是关闭。

      擦除完成后,包括密码在内的所有用户数据都消失了,但是设备需要有效的激活记录集才能通过设置助手(Setup.app)并激活电话,消息,FaceTime,iCloud等。通常,Albert(苹果的激活服务器)将提供这些记录,但是由于“查找我的iPhone”已打开,因此Albert拒绝生成新的activation_record.plist,而是显示“激活锁”页面。但是,这不是问题,因为我们保存到桌面的所有激活记录都可以重新应用到文件系统中。在安装激活记录之前,它们将被上载到用户的Media(下载)文件夹中,并且更改了权限/标志,以便将设备移动到正确的位置时设备可以读取并接受它们。良好的密码旁路将设置权限/标志,以便在重新启动后对所有激活记录进行签名和持久保存,而通过设置密码来保持不变。Sliver 5.4和Sliver5Windows均执行此确切过程。
  • 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,Cyber​​duck)并查看根文件系统。单击“中继设备信息”时,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的原因。

就这样!希望您喜欢我的博客。如果您有任何意见或疑问,请在Reddit上发表文章,并使用Blog Follow-Up文章风格。
我期待着阅读您的回复!

为您推荐