
CVE-2018-4327 の PoC
CVE-2018-4327 の POC(少なくとも私はそう考えています。CVE-2018-4327 と CVE-2018-4330 はどちらも @SparkZheng によって議論されましたが、どちらのバグがどれに対応するのかは彼からは明確ではありません。彼が最初に説明したのがこれだったので、推測しています)。
iPhone 6S 11.3.1 でテスト済み
11.4 までは動作するはずです
SpringBoard といくつかのサービス上で、PC(IP レジスタの ARM 版)を任意の値に設定できます。コードを実行してから BT 設定に移動し、デバイスに接続する必要があります。うまくいかない場合は BT をオフにして再度オンにしてください。
悪用するのはかなり面倒ですが、私はこれが気に入ったので POC を作成し、その過程で学習したいと思いました。
Mach メッセージの準備と BT サービスへの送信をすべて処理するために @raniXCH の bluetoothdPoC コードを使用し、この POC に適合するように調整しました。
ordinal やその他の情報を見つけるために jtool を使用しました。
正しいメッセージサイズを見つけるために少しリバースエンジニアリングを行う必要がありました。
クレジット:
@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。