Pwn2Own 2018: Safari + macOS
macOS 10.13.3 中的 Safari RCE、沙箱逃逸和 LPE 至内核漏洞
使用方法
安装 nasm 和 tornado:
bash
brew install nasm
pip3 install tornado
如果要更改主机或端口,请检查 config.py。之后,启动服务器:
使用 ./server.py 启动服务器,然后前往显示的 URL。
概述
此漏洞链使用三个不同的漏洞,从 JavaScript 代码运行到
在 Safari 中执行内核模式代码:
- DFG JIT 编译器中的不正确优化,可用于引起类型混淆。 2. launchd 中缺少沙箱检查,允许沙箱化进程创建任意(非沙箱化)进程。 3. XNU 中的逻辑错误,允许进程覆盖其子进程的引导端口,导致 IPC MitM 状况。
- stage0/: WebKit 漏洞利用代码
- stage1/: 第一阶段的 payload 由汇编语言编写
- stage2/: 第二阶段的 payload 用于逃离沙盒
- stage3/: shell 脚本用于协调其余阶段
- stage4/: LPE 以获取 root 权限
- stage5/: LPE 以获取内核代码执行权限
- libspc/: XPC 协议的重新实现, 由第 2、4 和 5 阶段使用
已被利用的漏洞: DFG JIT 编译器中的不正确优化