Magic Leap One 启动引导程序漏洞利用

Overview

该仓库包含了我对 Magic Leap One 漏洞利用研究的(有些混乱的)实现。我最终会添加详细的说明文档,但现在,我只想发布我的代码并给出一个简单的解释。

fastbooted 文件夹包含在 Magic Leap 控制台上运行的代码。

fastbootrs 文件夹包含一个用 Rust 编写的 Fastboot 客户端实现,并且是在主机上运行的代码。

SHA256(ML1 SBK)=25861920c4b750caaa851de7f92edbcf5fa3dfc396c54a871edff250ada8aa97

Success

Vulns

该仓库包含两个漏洞的实现:

  1. 通过在 NVidia 的 SparseFS 解析器中破坏堆栈,在 Fastboot USB 上实现 CBoot 中的代码执行 (sparsehax)
  2. 通过在存储上使用过大的 kernel-dtb 实现覆盖内存中的 CBoot,以获得持久的代码执行 (dtbhax)

这两个漏洞可能影响不仅仅是 ML1。我没有对此进行太多研究,但是 kernel-dtb 漏洞很有可能可以用于某些使用 TX2 的汽车的 Autopilot 单元上的持久化。

Usage

警告:如果您刷坏了您的控制台,您需要自己负责。

你需要来自你设备固件更新的签名上下文(带有一个小 header 和签名的哈希列表)(这是设备唯一的),任何分区都可以,只要它是用于你的设备的,我一直在使用来自系统镜像的那个。将其放置在 fastbootrs/system-sparse-sig.bin 中。

fastbooted/payload 目录中:

  1. 复制 sparsehax.ldccplex.ld
  2. 运行 cargo build-usb-bin
  3. 复制生成的 payload.bin 文件到 fastbootrs/src/payload.bin

通过关闭电源,并在打开控制台电源时按住 Vol-Down 按钮,将您的 ML1 控制台放入 Fastboot 模式。

fastbootrs 目录中:

  1. 运行 cargo run --release -- exploit
  2. 成功了吗?

如果这些说明不够清楚,那么此项目可能目前不适合您。

Writeup

敬请期待

About

一个用于 Magic Leap One(以及可能其他的 TX2 设备)的漏洞利用链

Resources

Readme Activity

Stars

29 stars

Watchers

2 watching

Forks

0 forks

Releases

No releases published

Packages 0

No packages published

Languages