
CVE-2018-4330 POC for iOS
与 brokentooth 相关(见下文链接)。
与 brokentooth 不同,toothfairy 无需在蓝牙菜单中按下按钮。
这两个 CVE 均由 @SparkZheng 披露,但未提供 POC,因此我决定为了学习经验制作一个 POC。
代码并非完美,但能够完成工作。
已在 iPhone 6S 11.3.1 上测试
应兼容至 11.4
允许你将 bluetoothd 及其他几个服务上的 PC(ARM 中 IP 寄存器的对应项)设置为你选择的值。
使用了 @raniXCH 的 bluetoothdPoC 代码来处理 Mach 消息的所有准备工作以及向 BT 服务发送消息,并对其进行了适配以用于此 POC。
使用 jtool 查找 ordinal 及其他信息。
进行了一定程度的逆向工程(RE)以找到正确的消息大小。
致谢:
@SparkZheng - 感谢他在 DEFCON 26 上的精彩演讲。
@raniXCH - 感谢他出色的 HITB 演讲以及 bluetoothdPoC。
Jonathan Levin - 感谢他的精彩著作和 jtool。
参考:
http://www.newosxbook.com/tools/jtool.html - 我用于查找 ordinal 及其他信息的 jtool。
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - @SparkZheng 的资料。
https://github.com/rani-i/bluetoothdPoC - @raniXCH 的 POC 代码。
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - @raniXCH 的资料第一部分。
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - @raniXCH 的资料第二部分。
https://github.com/omerporze/brokentooth - 我制作的 CVE-2018-4327 的 POC。