Magic Leap One Bootloader Exploit
该文章分享了针对 Magic Leap One 的启动引导程序漏洞利用研究。作者公开了实现代码,包含两个漏洞:`sparsehax` 通过 Fastboot USB 在 CBoot 中执行代码,`dtbhax` 通过覆盖内存中的 CBoot 实现持久化代码执行。文章提供了使用说明,包括准备签名文件、构建 payload 等步骤,并警告用户操作风险。作者认为这些漏洞可能也影响其他使用 TX2 的设备。
Magic Leap One 启动引导程序漏洞利用
Overview
该仓库包含了我对 Magic Leap One 漏洞利用研究的(有些混乱的)实现。我最终会添加详细的说明文档,但现在,我只想发布我的代码并给出一个简单的解释。
fastbooted
文件夹包含在 Magic Leap 控制台上运行的代码。
fastbootrs
文件夹包含一个用 Rust 编写的 Fastboot 客户端实现,并且是在主机上运行的代码。
SHA256(ML1 SBK)=25861920c4b750caaa851de7f92edbcf5fa3dfc396c54a871edff250ada8aa97
Vulns
该仓库包含两个漏洞的实现:
- 通过在 NVidia 的 SparseFS 解析器中破坏堆栈,在 Fastboot USB 上实现 CBoot 中的代码执行 (
sparsehax
) - 通过在存储上使用过大的
kernel-dtb
实现覆盖内存中的 CBoot,以获得持久的代码执行 (dtbhax
)
这两个漏洞可能影响不仅仅是 ML1。我没有对此进行太多研究,但是 kernel-dtb
漏洞很有可能可以用于某些使用 TX2 的汽车的 Autopilot 单元上的持久化。
Usage
警告:如果您刷坏了您的控制台,您需要自己负责。
你需要来自你设备固件更新的签名上下文(带有一个小 header 和签名的哈希列表)(这是设备唯一的),任何分区都可以,只要它是用于你的设备的,我一直在使用来自系统镜像的那个。将其放置在 fastbootrs/system-sparse-sig.bin
中。
在 fastbooted/payload
目录中:
- 复制
sparsehax.ld
到ccplex.ld
- 运行
cargo build-usb-bin
- 复制生成的
payload.bin
文件到fastbootrs/src/payload.bin
通过关闭电源,并在打开控制台电源时按住 Vol-Down 按钮,将您的 ML1 控制台放入 Fastboot 模式。
在 fastbootrs
目录中:
- 运行
cargo run --release -- exploit
- 成功了吗?
如果这些说明不够清楚,那么此项目可能目前不适合您。
Writeup
敬请期待
About
一个用于 Magic Leap One(以及可能其他的 TX2 设备)的漏洞利用链
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published