
iOS Bluetoothスタックの脆弱性CVE-2018-4327およびCVE-2018-4330に対する概念実証エクスプロイト。悪意のあるBluetoothデバイス接続を介してiPhone 6S上でARM PCレジスタ制御を可能にします。
CVE-2018-4327 の POC(少なくともそうだと思います。CVE-2018-4327 と CVE-2018-4330 は両方とも @SparkZheng によって記述されましたが、どちらがどのバグに関連するかは書かれていません。彼が最初にこれを説明したので、推測しています)。
iPhone 6S 11.3.1 でテスト済み
11.4 までは動作するはず
SpringBoard およびいくつかのサービス上で、PC(ARM における IP レジスタ相当)を好きな値に設定できます。 コードを実行し、設定の BT メニューに移動してデバイスに接続する必要があります。動作しない場合は BT をオフにしてからオンにしてください。 エクスプロイトするのはかなり面倒ですが、気に入ったので POC を作成し、その過程で学びたかったのです。
Mach メッセージの準備と BT サービスへの送信をすべて処理するために @raniXCH の bluetoothdPoC コードを使用し、この POC に合わせて適応させました。 jtool を使用して ordinal やその他のものを探しました。 正しいメッセージサイズを見つけるために少しリバースエンジニアリングを行う必要がありました。
クレジット:
@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