Jailbreak_Apple_T2_Chip的相关研究

admin 2022年1月6日01:06:11评论582 views字数 8058阅读26分51秒阅读模式

先放一张图

image-20201215144432769

更新中…

Apple T2 chip

0x00 Apple T2 芯片

首先什么是苹果T2芯片呢苹果官网给出的是:Apple T2 安全芯片是 Apple 设计的第二代定制化 Mac 芯片。通过对其他 Mac 电脑中的几款控制器进行重新设计与整合,例如系统管理控制器、图像信号处理器、音频控制器和 SSD 控制器,T2 芯片为 Mac 带来了多项新功能。

例如,T2 芯片让安全性又上新台阶,它所包含的安全隔区协处理器可保护触控 ID 数据,并为新的加密储存安全启动功能奠定了基础。此外,T2 芯片的图像信号处理器与 FaceTime 高清摄像头配合,进一步提升色调映射和曝光控制,还能基于面部识别技术进行自动曝光并自动调节白平衡。

总结起来就是说是一个值得信赖的安全芯片。T2保护基本功能,例如安全启动,激活锁,Touch ID,加密数据存储,安全启动,图像信号技术等。

Apple T2安全芯片如何工作?Apple T2芯片可以控制MacOS的启动过程。它可以确保用户安装Apple认可的驱动器。只要在Mac计算机上按下电源按钮,它就会开始工作,一直持续到您看到MacOS桌面为止。换句话说,其主要功能之一就是验证Apple是否已签署您的操作系统和引导程序。

T2还负责硬盘驱动器上的所有加密数据。在以前的Mac版本中,此功能由CPU执行,从而使其负担沉重。通过将这些功能转移到T2芯片上,Apple大大改善了新Mac的性能。T2为CPU提供了更多资源。该芯片可确保MacBook Air和MacBook Pro中提供的Touch ID功能。这些设备中的指纹扫描仪为用户提供了快速登录选项,并批准了管理员级别的请求。Apple T2芯片有助于安全地存储指纹数据。

它还处理来自不同应用程序的验证请求。T2芯片可确保没有应用程序可以通过Touch ID或Face访问您的指纹信息。当请求验证时,Apple T2安全芯片将指纹与安全区协处理器中保护的数据进行比较,并通知结果。

0x01 具备Apple T2的设备

1
2
3
4
5
6
2020 年推出的 iMac
iMac Pro
2019 年推出的 Mac Pro
2018 年推出的 Mac mini
2018 年或之后推出的 MacBook Air
2018 年或之后推出的 MacBook Pro

可以在“系统信息”里面查看自己的Mac是否配备了T2芯片

  1. 在按住 Option 键的同时,选取苹果 () 菜单 >“系统信息”。

img

对应的Mac的EMC编号如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
iMac Pro:
EMC – 3144(型号A1862 – 2017)

Mac Pro:
EMC – 3203(模型A1991 – 2019)
EMC – 3413(A2304型(机架)– 2019年)

Mac Mini:
EMC – 3213(模型A1993 – 2018)
EMC – TBD(TBD型号– 2020)

MacBook Pro:
EMC – 3214(模型A1989 – 2018)
EMC – 3215(型号A1990 – 2018)
EMC – 3358(A1989型– 2019年)
EMC – 3359(型号A1990 – 2019)
EMC – 3301(型号A2159 – 2019)
EMC – 3347(型号A2141 – 2019)
EMC – 3348(型号A2251 – 2020)
EMC – 3456(型号A2289 – 2020)

MacBook Air:
EMC – 3184(型号A1932 – 2018和2019)
EMC – 3302(型号A2179 – 2020)

以下模型容易受到攻击

iBridge产品编号 板号 board minor 说明(产品编号) checkm8 / blackbird确认
iBridge2,1 J137AP 0x0A 苹果T2 iMacPro1,1(j137)
iBridge2,3 J680AP 0x0B 苹果T2 MacBookPro15,1(j680)
iBridge2,4 J132AP 0x0C 苹果T2 MacBookPro15,2(j132)
iBridge2,5 J174AP 0x0E 苹果T2 Macmini8,1(j174)
iBridge2,6 J160AP 0x0F 苹果T2 MacPro7,1(j160)
iBridge2,7 J780AP 0x07 苹果T2 MacBookPro15,3(j780)
iBridge2,8 J140kAP 0x17 苹果T2 MacBookAir8,1(j140k)
iBridge2,10 J213AP 0x18 苹果T2 MacBookPro15,4(j213)
iBridge2,11 J230AP 0x1F
iBridge2,12 J140aAP 0x37 苹果T2 MacBookAir8,2(j140a)
iBridge2,13 J214AP 0x1E
iBridge2,14 J152fAP 0x3A 苹果T2 MacBookPro16,1(j152f)
iBridge2,15 J230kAP 0x3F 苹果T2 MacBookAir9,1(j223k)
iBridge2,16 J214kAP 0x3E
iBridge2,19 J185AP 0x22
iBridge2,20 J185fAP 0x23
iBridge2,21 J223AP 0x3B
iBridge2,22 J215AP 0x38

0x02 T2芯片的MacOS安全启动过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. 即使Mac设备已关闭,T2芯片也已完全启动并保持开启状态。

2. 按下电源按钮或打开机盖会触发系统管理控制器(SMC)引导。

3. SMC执行加电自检(POST),以检测任何EFI或硬件问题,例如RAM损坏,并可能重定向到Recovery。

4. 在进行了基本的健康检查之后,将触发T2芯片并设置I / O连接器。(USB,NVMe,PCIe等),它将使用NVMe和PCIe与NAND存储进行通信。

5. 选择适用的启动磁盘,然后询问是否启用了磁盘加密密码以 可能通过FileVault2磁盘加密来挂载 [APFS](https://en.wikipedia.org/wiki/Apple_File_System)卷。

6. /System/Library/CoreServices/boot.efi位于系统APFS卷上,并且 [根据您的安全启动设置 ](https://support.apple.com/en-us/HT208330)进行了验证。

7. 运行boot.efi来加载Darwin内核(回退到BSD)(如果启动Microsoft Windows,则启动Boot Camp)和IODevice驱动程序。如果在/ System / Library / PrelinkedKernels / prelinkedkernel中找到了内核缓存,它将使用该缓存。

8. 如果用户批准的内核扩展已被T2芯片批准,则将其初始化并添加到内核空间。这将随着系统扩展而消失。

img

0x03 越狱步骤

需要设备:

1
2
3
1.一台带有T2芯片的Mac
2.另一个MacOS(不知道虚拟机是否可以);
3.USB-C至USB-C电缆。Macbook附带的就可以。

1.从官方网站下载最新版本的Checkra1n T2越狱工具。

https://checkra.in/releases/

2.将Mac置于DFU模式。

如何进入MacOS DFU模式](https://checkm8.info/blog/dfu-mode-mac)

如何置于DFU模式:

1
2
3
4
5
6
1.需要两台电脑
2.Apple Configurator 2
3.usb-c线插到电脑左侧第二个接口
4.按住电源按钮1s
5.同时按住左control、左option和右shift 持续8s
6.Configurator 2显示为DFU模式

Apple Configurator 2 显示 Mac进入了DFU模式

检查设备是否已经进入DFU模式

1
ioregg -p IOUSB

3.使用CLI,Checkra1n的命令行版本

Checkra1n GUI版本0.11.0不支持T2越狱。

如果用Checkra1n工具连接带有T2的Mac,会报以下错误

1
Sorry, your device is not supported.

在Finder中打开Checkra1n应用程序,然后右键单击它以查看“显示包装内容”菜单

img

现在转到文件夹Contents => MacOS。可以看到Checkra1n二进制文件。打开终端应用程序,然后将二进制文件拖放到"Terminal."

或者,如果将Checkra1n应用程序放入“应用程序”文件夹,则可以在以下命令中键入以下命令 "Terminal:"

1
/Applications/checkra1n.app/Contents/MacOS/checkra1n

4.通过-c来启动命令行版本

同时开启 -v 来检查越狱日志

1
/Applications/checkra1n.app/Contents/MacOS/checkra1n -c -v

img

如果报错

1
Timed out waiting for bootstrap upload (error code: -20)

img

在这种情况下,请重新启动Checkra1n CLI工具,直到看到引导程序成功安装的消息:

1
: Bootstrap already installed, done

可能需要重试几次才能完成。

5.通过SSH进入越狱的Apple T2芯片

成功越狱之后打开一个新的终端窗口,然后输入以下命令:

1
iproxy 2222 44

不要关闭此窗口并再打开一个终端窗口(Command + T)。输入此命令:

1
ssh root@localhost -p 2222

密码是: alpine

img

0x04 具体原理

image-20201202201030024

核心问题:

T2安全芯片上的SepOS微型操作系统是包含基于IOS A10的处理器,据说A12的芯片似乎解决了这个问题,但是未确认

在Twitter和Reddit上提到由于T2芯片和iPhone及其底层硬件之间共享某些硬件和软件功能。通过结合最初越狱iphone的checkm8 + blackbird两个漏洞便可以越狱T2安全芯片的Mac和Macbook设备

根据 比利时安全公司ironPeak的帖子,越狱T2安全芯片涉及通过USB-C连接到Mac / MacBook,并 在Mac的启动过程中运行Checkra1n越狱软件0.11.0版本 。

根据ironPeak的说法,这之所以奏效,是因为“ Apple在向客户提供的T2安全芯片中打开调试界面,允许任何人无需身份验证即可进入设备固件更新(DFU)模式。”

使用这种方法,可以创建一条USB-C电缆,该电缆可以在启动时自动利用您的macOS设备。

这使攻击者可以在T2芯片上获得root用户访问权限,并修改和控制目标设备上运行的所有内容,甚至可以恢复加密的数据。

1.Checkm8

一句话描述漏洞:对USB请求处理不当造成的UAF漏洞。手里有一个iphone5s,所以决定研究一下checkm8这个漏洞。

上手尝试

在分析这个漏洞之前,先对checkm8有一个感性直观的认识,我们首先动动手,做俩实验:分别是使用checkra1n越狱,以及使用ipwndfu提取固化在处理器芯片中的固件代码(SecureROM)。不过在动手之前,先阅读以下写给科技爱好者的文章和广大网友对这个漏洞的讨论:

checkra1n 越狱

使用checkra1n,基本就是傻瓜操作。不过与普通越狱不同的是,在使用这个工具越狱后,并不需要安装cydia,即可在爱思助手直接开始ssh通道。ssh通道这个功能是将手机的22端口通过usb映射到电脑主机的端口,第一次用可能会迷糊。默认的用户名密码是:root:alpine,如果不熟悉越狱和ssh流程,可以参考如下文章:

image-20201203102556462

另外发现ssh虽然开启,也可以由外部连入本机的22端口,但是并不能本机自己连自己,即并不能在手机上安装一个ssh客户端软件来访问自己的shell,这里苹果做了限制,绕过方式是修改ssh服务端口并重启,参考如下:

ipwndfu 提取 SecureROM

使用ipwndfu完成dump固件。但是其并不是对任何iPhone都支持,在readme中可见支持说明:

1
2
current SoC support: s5l8947x, s5l8950x, s5l8955x, s5l8960x, t8002, t8004, t8010, t8011, t8015
future SoC support: s5l8940x, s5l8942x, s5l8945x, s5l8747x, t7000, t7001, s7002, s8000, s8001, s8003, t8012

这些SoC版本对应的苹果设备型号可以参考:https://www.theiphonewiki.com/,可见iPhone5s是s5l8960刚好可以,然后我们将手机置于DFU模式,方法参考

iPhone 进恢复模式和 DFU 模式有什么区别?,iPhone 5s 进入DFU 模式的方法:
1、打开iTune
2、按住苹果顶部的power键3秒;
3、不要松开power键同时按住home键10秒;
4、松开power键继续按住home键,一直到iTunes会自动检测到出于恢复模式的iPhone后再松开

安装libusb

1
brew install libusb

然后在ipwndfu目录./ipwndfu -p完成后门的植入,如下:

1
2
3
4
5
╰─$ ./ipwndfu -p                                                                                                                             127 ↵
*** checkm8 exploit by axi0mX ***
Found: CPID:8960 CPRV:11 CPFM:03 SCEP:01 BDID:02 ECID:00000635CB274B30 IBFL:1C SRTG:[iBoot-1704.10]
Device is now in pwned DFU Mode.
(13.54 seconds)

成功之后即可在电脑的【关于本机】-> 【系统报告】的USB设备详细信息中看到手机的USB序列号已经被更改:

image-20201203111159468

然后dump固件:

1
2
╰─$ sudo ./ipwndfu --dump-rom
Saved: SecureROM-s5l8960xsi-1704.10-RELEASE.dump

可以与

https://securerom.fun/

这里下载的固件进行比对,经测试,固件是一致的。

漏洞分析

iBoot源码泄露事件

这是一切的开始。

让我们来看一条2018年2月8日的新闻:史上最大源码泄露事件:iOS 关键源代码被匿名公布在 GitHub 上,再来看看当时的中国网民怎么说:

可见大部分网民还是吃瓜,因为不懂不了解,也就无法明白这份代码对于理解并破解iPhone的重要性。可以这么说,此次iboot源码的泄露是黑客发现checkm8这个漏洞的起点。但是苹果当时的回应是:iOS 9源代码被泄露 苹果:该源代码已过时 不必担忧。我们事后诸葛亮的来看这个事,可以说是大型打脸现场了,因为泄露的代码至今仍然没有过时。当年苹果公司说他们不在乎,泄露的都是过时的老代码,没有价值,可是他们当时是怎么做的呢?GitHub泄露苹果iBoot源代码?苹果:全网删,谢谢。真的都是江湖人,江湖事呀。那这份泄露的代码在哪呢?虽然在github找到不到了,不过,互联网是有记忆的,网民是万能的:

这份泄露的代码主要是iBoot,相当于PC的BIOS层面的代码,不是做底层的程序员一般是看不明白。不过我们大概也猜到了,这些代码主要负责的就是iPhone的启动过程。启动,你会想到什么呢?

iPhone的操作模式

刚才的两个小实验中,我们将iPhone经过按键的操作进入了DFU模式,其实iPhone还有一种模式叫恢复模式,这些称之为iPhone的操作模式:

其实我们在其他设备上也有类似的操作,比如Android的recovery、fastboot、9008,PC的BIOS配置,Windows的安全模式,Mac的恢复模式等。这些操作都可以理解为进入了一个小系统,这些小系统可能为主系统的运行提供一些必要的支持,也可能作为备用系统以防主系统遭遇不测。我们一般通过在开机过程中按照顺序或者时间的要求按下一些按键,进入这些小系统。换句话说我们没有成功启动主系统,而启动了小系统,对,就是启动。那么这里每一个小系统都有着对应的代码实体,iPhone的DFU和恢复模式的代码实体又在哪呢?是不是iBoot呢?带着这个疑问让我们来看一下,苹果公司泄露的代码能不能回答这个问题。

泄露源码分析

打开泄露的源码,大致浏览了一下目录:

1
2
3
4
5
6
7
8
9
10
╰─$ tree -N -L 2
.
├── Makefile
├── apps
│   ├── EmbeddedIOP
│   ├── SecureROM
│   └── iBoot
├── arch
│   ├── arm
│   └── arm64

原来泄露的不只有iBoot,还有SecureROM!其实认真看苹果源码泄露事件的国外报道:Breakthrough: iBoot And SecureROM Source Code Has Leaked, Could Lead To Permanent Bootrom iPhone Jailbreak,他们是明确说了iBoot和SecureROM(也就是BootROM)的代码都泄露了,只不过是国内的媒体都只说了iBoot。接下来就是优秀源码阅读时间,不过无论是iBoot还是SecureROM,都是那种天地初开之时的底层代码。对于陌生的代码,可以从代码的运行顺序,目录结构,编译方法,文档说明,对比同类代码,以及他人的分析文章等方面综合理解。

0x05 调试

JTAG相关

0x06 参考

https://checkm8.info/blog/jailbreak-mac-apple-t2-chip

https://xuanxuanblingbling.github.io/ios/2020/07/10/checkm8/
https://ironpeak.be/blog/crouching-t2-hidden-danger/

FROM :ol4three.com | Author:ol4three

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:06:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Jailbreak_Apple_T2_Chip的相关研究http://cn-sec.com/archives/721037.html

发表评论

匿名网友 填写信息