招募黑客网:iPhone BootROM 缝隙阐明及要挟评价

访客4年前黑客资讯796

招募黑客网:iPhone BootROM 缝隙阐明及要挟评价

0x00 相关词汇
AP:运用处理器。
SEP:安全协处理器。
SecureROM:又称 BootROM 是固化在 iPhone 只读区域中的一段代码,该区域中的代码是发动链及发动信赖链的起点,首要担任加载后续的发动链,该区域中的代码无法经过系统更新来更新,所以该区域中的代码一旦呈现安全问题,影响是十分大,而且这种影响是耐久的,只能经过召回设备批改问题。关于 SecureROM 的具体功用,可以参阅笔者之前写的一篇文章 《SecureROM 剖析笔记》。
GID:GID 是固化在 iPhone 加密引擎中的 AES 密钥,一切相同类型的设备具有相同的密钥,比方:一切 iPhone X 都具有相同的密钥。该密钥首要用来解密系统更新固件。SEP 有独立的 GID,与 AP 的不同。
UID:UID 也是固化在 iPhone 加密引擎中的 AES 密钥,但每台手机都有不同的 UID,UID 首要用来加解密用户相关的数据。SEP 有独立的 UID,与 AP 的不同。
 
0x01 工作原因
北京时间9月 28 日清晨,国外安全人员 @axi0mX 经过 Twitter 揭露了一个 iPhone BootROM 的缝隙[1],一同揭露了相关的运用代码[2]。
就像 @axi0mX 在推文中所说[3],这是从 2010 开端,9 年间,之一个揭露的针对 64 位苹果设备的可以运用的 BootROM 的缝隙。我们知道越狱社区一向在跟苹果设备的安全性做着“奋斗”,跟着苹果不断地进步 iPhone 的安全性,越狱变得越来越难,而 BootROM 缝隙不只可以用来越狱当时最新的 iOS 版别,还可以用来越狱SDK目录:里面有开发插件的比方,值得一看。将来的 iOS 版别(由于硬件缝隙无法经过系统更新进行修补),所以该缝隙在越狱社区中引起了巨大的颤动。
 
0x02 受影响的设备
影响从 iPhone 4s 到 iPhone X 的一切设备,一同影响这段时间内出产的 iPad 设备。
 
0x03 缝隙成因阐明
@axi0mX 是经过二进制比照发现的这个缝隙[4],一同 @littlelailo 独立的经过代码审计的 *** 也发现了这个缝隙[5]。@littlelailo 对这个缝隙的成因及运用思路做了阐明[6][7]。
由于 @littlelailo 对缝隙的成因现已说得十分清楚了,这儿就不再弄巧成拙,下面是@littlelailo 阐明的直接机器翻译成果。下文中的图画并不是指图片,而是指 img4 固件文件。
这个过错一开端也被称为Moonshine基本上,我查看过的一切bootrom中都存在以下过错:1.当u *** 开端经过dfu获取图画时,dfu注册一个接口来处理一切指令,并为输入和输出分配一个缓冲区2.假如您将数据发送到dfu,则设置包由主代码处理,然后调出接口代码3.接口代码验证wLength短于输入输出缓冲区的长度,假如是这种状况,它将运用指向输入输出缓冲区的指针更新作为参数传递的指针4.然后回来wLength,这是它要接纳到缓冲区的长度5. USB主代码然后运用长度更新全局变量,并预备接纳数据包6.假如接纳到数据包,则经过作为参数传递的指针将其写入输入输出缓冲区,并运用另一个全局变量来盯梢现已接纳了多少字节7.假如接纳到一切数据,则再次调用dfu特定代码,然后持续将输入输出缓冲区的内容复制到往后从中引导映像的存储方位8.之后,u *** 代码将重置一切变量并持续处理新软件包9.假如dfu退出,则开释输入输出缓冲区,而且假如映像解析失利,则bootrom从头输入dfu
退出dfu可以经过发送dfu间断包或经过触发USB重置触发解析来完结
问题:在第5步,将更新全局变量,而且Bootrom预备接纳数据,但是运用廉价的操控器,您可以违背USB标准而且不发送任何信息(arduino主机操控器或相似的东西)。然后,您可以触发USB重置以触发图画解析。假如解析失利,bootrom将再次输入dfu,但未实行过程8,因而全局变量仍包括一切值。但是,实行了过程9,因而开释了输入输出缓冲区,而在过程3中作为参数传递的指针依然指向它。因而,您可以经过将数据发送到设备来轻松触发对已开释缓冲区的写入。
对A8的运用:1.将0x40的随机数据发送到dfu,有必要发送此数据,不然您将无法运用USB重置ctrlReq(bmRequestType = 0x21,bRequest = 1,wLength = 0x40)退出dfu2.经过发送ctrlReq(0x21,1,0)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)使dfu处于等候USB重置的状况ipwndfu dfu.py)3.仅发送了带有bmRequestType 0x21和bRequest 1以及有用载荷巨细的wLength的设置数据包(此数据包将更新全局变量)4.发送一个状况包以符号操控传输的完毕(即便将wLength设置为一个值,我们也会越过数据阶段)5.触发总线复位6.等候设备从头输入dfu(现在将开释输入输出缓冲区,而且将在开释的缓冲区下分配u *** 使命)7.发送设置的装备恳求ctrlReq(bmREQ_SET,USB_REQUEST_SET_CONFIGURATION,wLength = Payloadsize),但将有用载荷与数据阶段一同发送(bootrom中的设置装备处理程序疏忽wLength)
有用负载将掩盖u *** 使命结构,而且将成为u *** 仓库之后的下一个分配。经过定位USB使命结构中的链接列表,您可以刺进假造的使命。而且您可以将u *** 使命仓库用作暂存空间,由于看起来它永久都不会写到那么高。当dfu退出而且u *** 使命间断时,将生成该代码。因而,您可以在第7步之后发送dfu间断数据包,并在该代码实行exec的状况下操控一切较高的寄存器,由于您的虚伪使命将添加到列表中并在往后的某个时间运转。
〜31.05.19莱洛
 
0x04 才能及要挟评价
约束条件
缝隙运用的约束条件:需求将设备置入 DFU (Device Firmware Upgrade)形式。
缝隙及运用目前所具有的才能
1、BootROM 中的恣意代码实行才能。
2、打开 CPU 的硬件调试才能(JTag)。
3、运用 AP 的 GID 进行加解密。
4、运用 AP 的 UID 进行加解密。
恣意代码实行才能及 CPU 级调试才能
BootROM 是 iPhone 发动信赖链的基础,在 BootROM 中具有了恣意代码实行才能,意味着 iPhone 的整个发动信赖链被打破了,毕竟可以用来加载修改正的 iOS 内核,然后损坏 iOS 的基础安全特性。这部分才能首要会被用来做越狱(这儿的越狱是指越狱所带来的才能,而不只仅指越狱行为)。
CPU 级调试才能,这个才能首要会被用来剖析 iPho

相关文章

鲜芋仙有什么特色(鲜芋仙的热品系列有哪些)

鲜芋仙有什么特色(鲜芋仙的热品系列有哪些)

1、芋圆系列: 【最爱芋圆4号+地瓜+冰淇淋球】 珍珠可以换成芋圆不加钱。还有就是冰淇淋球一定要加!吃下第一口的时候我简直惊呆了! 【仙草2号+珍珠换小芋圆+加炼乳+黑粉粿+冰淇淋球】 地瓜蘸...

钟南山回忆坐餐车奔赴武汉怎么回事?钟南山为什么坐餐车奔赴武汉?

9月23日,广东举行抗击新冠肺炎疫情先进事迹报告会。 钟南山讲述了“坐餐车去武汉”照片背后的故事:“当时接到通知,立刻要去武汉,但当时火车票、飞机票都没有了。我和助手上火车后,列车长给我们安排了两个...

back什么意思(back弹幕什么意思内涵怎么用)

  b站back什么鬼back视频弹幕啥意思内函如何使用近期在b站的视频弹幕中常常都是会见到被大波的back、turn、can等视频弹幕霸屏,许多朋友们都还不知道含意吧,在其中就会有很多人问back代...

手机通话清单怎么查(手机详单查询明细查询)

手机通话清单怎么查(手机详单查询明细查询)专业盗取微信密码,开房查询,通话记录查询,查询微信聊天记录,非常靠谱!这种方法相信很多小合作伙伴都知道,但小编想说,这种方法不适合他手工删除微信的聊天记录,但...

有什么设施可以查到他人微信聊天记录而不让对方发现

目前微信给大家产生便捷的另外,在应用全过程中也会产生一些难题,例如在气头上的時刻立即删除了微信密友,或是自身结算手机微信的時刻,一不小心删除了微信密友,那样现代都市造成 与挚友中间的闲聊记录删掉,等必...

内蒙古煤炭系统3名干我们结婚了李泰民部被查 其中两人已退休

  中新网呼和浩特12月26日电 (记者 李爱平)记者26日从内蒙古自治区纪委监委获悉,当地3名煤炭系统干部正在接受赤峰市元宝山区纪委监委纪律审查和监察调查,其中两人已退休。   这3名煤炭系统干部...