
CVE-2018-4330 POC(iOS用)
brokentooth(下記リンク)に関連しています。
brokentoothとは異なり、toothfairyはBluetoothメニューでボタンを押す必要がありません。
両方のCVEは@SparkZhengによって公開されましたが、POCがなかったため、学習目的でPOCを作成することにしました。
コードは完璧ではありませんが、目的は果たせます。
iPhone 6S 11.3.1でテスト済み。
11.4までは動作するはずです。
bluetoothdおよびその他のいくつかのサービスで、PC(ARM版のIPレジスタ)を任意の値に設定できます。
Machメッセージの準備とBTサービスへの送信処理には@raniXCHのbluetoothdPoCコードを使用し、このPOCに合わせて調整しました。
ordinalやその他の情報を見つけるためにjtoolを使用しました。
正しいメッセージサイズを見つけるために、少し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の資料 パート1。
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - @raniXCHの資料 パート2。
https://github.com/omerporze/brokentooth - CVE-2018-4327の私のPOC。