Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PS5-UMTX-Jailbreak — PS5向けのWebKitベースのカーネルエクスプロイトおよびジェイルブレイク | Kitploit
ツール/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
特権昇格エクスプロイトポストエクスプロイトバイナリエクスプロイト
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

PS5向けのWebKitベースのカーネルエクスプロイトおよびジェイルブレイク

リポジトリを見る
247391年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PS5 UMTX Jailbreak


概要

このリポジトリは、Synacktiv が報告した UMTX race use-after-free (CVE-2024-43102) 脆弱性 を利用した WebKit ROP エクスプロイトです。基本的には fail0verflow's と flatz' のエクスプロイト戦略を移植したものです。UAF を悪用してカーネルスレッドスタックへの読み書きマッピングを取得し、パイプの読み書きを活用してカーネル内での(理想的とは言えない)任意読み書きプリミティブを確立します。この読み書きはさらに、ipv6 ソケットペアとパイプペアを利用した安定した読み書きへと昇格され、以前の IPV6 PS5 kernel exploit と同様の方法でペイロードに渡すことができます。

ページ自体は idlesauce's PS5 Exploit Host を簡素化・改変したもので、psfree を私が以前使用していたコードスタイルに統合する作業をすでに行っていたためです。このホストは動作が非常にスムーズで、便利なペイロードを統合しているため、私個人としても実行時に選択するホストです。近いうちにこのエクスプロイトに対応するよう更新されることを願っています <3。

最終的にはペイロードローダーが起動し、ポート 9021 でペイロード ELF を待ち受けます。PS5 Payload Dev SDK を推奨します。カーネルオフセットが追加されれば、このローダーと完全な互換性があるはずです。

この脆弱性は 1.00 ファームウェアから 7.61 ファームウェアに影響しますが、FW >= 3.00 では追加の緩和策が存在するようで、エクスプロイトの調整が必要です。私は主に低いファームウェアにしか興味がないため、このエクスプロイトは現時点で FW >= 3.00 をサポートしていません。 さらに、チェーンする WebKit の脆弱性は 6.00 で修正されているため、これらのシステムにはユーザーランド読み書きを達成する別の WebKit エクスプロイトが必要です。繰り返しになりますが、私は高いファームウェアに焦点を当てていないため、これは現在未完成のままです。

重要な注意事項

  • 3.00+ は信頼性が低く、実行に時間がかかる場合があります。"triggering race" で長時間止まる場合は、ブラウザを閉じて再試行してください。
  • 5.00+ では、dlsym を適切に呼び出せなくなるため、現在 ELF ローダーが動作しません。ペイロード SDK の変更が必要です。

現在サポートされているファームウェアは以下のとおりです:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

現在含まれている機能

  • カーネル任意読み書きの取得
  • デバッグ設定メニューの有効化 (注: 設定を完全に終了して再度入り直す必要があります)。
  • root 権限の取得とサンドボックス/ジェイルからの脱出。
  • ペイロード実行用にポート 9021 で John Tornblom の ELF ローダーを実行 (< 5.00FW)。

制限事項

  • このエクスプロイトは読み書きを達成しますが、コード実行はできません。これは、カーネル .text ページが eXecute Only Memory (XOM) としてマークされているため、ガジェット用のカーネルコードをダンプできないためです。カーネル .text ポインタを読み取ろうとするとパニックが発生します!
  • 上記に加え、ハイパーバイザー (HV) がカーネルの書き込み保護を強制しているため、このエクスプロイトはカーネル空間へのパッチやフックのインストールもできません。
  • Clang ベースの fine-grained Control Flow Integrity (CFI) が存在し、強制されています。
  • Supervisor Mode Access Prevention/Execution (SMAP/SMEP) は HV のため無効化できません。
  • FW >= 6.00 は新しい WebKit エクスプロイトが必要なため、サポートされていません。

使用方法

  1. dns.conf で fakedns を設定し、manuals.playstation.net を PC の IP アドレスに向けます
  2. fake dns を実行: python fakedns.py -c dns.conf
  3. HTTPS サーバーを実行: python host.py
  4. PS5 の詳細ネットワーク設定に移動し、プライマリ DNS を PC の IP アドレスに設定し、セカンダリは 0.0.0.0 のままにします
    1. それでもマニュアルが読み込まれず、再起動が必要な場合があります。理由は不明ですが、本当に奇妙です
  5. 設定のユーザーマニュアルに移動し、信頼できない証明書のプロンプトを受け入れて実行します
  6. 任意: カーネル .data ダンプコードのコメントを解除し、ダンプサーバースクリプトを実行します (注: アドレス/ポートは exploit.js で置き換える必要があります)。

今後の作業

  • FW >= 3.xx の緩和策に対応するためのエクスプロイト戦略の更新
  • より多くの(低い)ファームウェアのオフセット追加
  • FW >= 6.00 用の WebKit エクスプロイトの追加。

ELF ローダーの使用

ELF ローダーを使用するには、エクスプロイトが完了するまで実行します。完了すると、ポート :9021 でサーバーが起動します。接続して ELF を TCP で PS5 に送信すると実行されます。このローダーは、ブラウザを終了した後もペイロードの受け入れと実行を継続します。

エクスプロイト戦略のメモ

初期の double free

このエクスプロイトの戦略は主に fail0verflow と flatz によるものです。脆弱性の詳細については chris@accessvector's writeup を参照してください。悪用すると、基本的に double free が得られます。これを使用して、カーネルスタックの vmobject を mmap マッピングのものとオーバーラップさせ、カーネルスレッドのスタックへの窓を取得できます。この非常に強力な機能により、スタック上の任意のカーネルポインタを読み書きでき、ASLR の無効化とプリミティブの作成が可能になります。スタックにアクセスできるスレッドを victim thread と呼びます。

任意読み書きの取得

メインスレッドでパイプを作成してパイプバッファを満たし、victim thread を使用してそこに書き込もうとすると、victim thread はバッファに空きができるのを待ってブロックします。この間に、カーネルスタックへの窓を使用して iovec ポインタをカーネルポインタに変更し、フラグを設定してカーネルアドレスとして扱われるようにします。その後、メインスレッドでパイプを読み取ることで、カーネル任意読み取りを取得できます。

同様に、victim thread にパイプを読み取らせると、受信データを待ってブロックします。そこで再度 iovec ポインタを上書きしてカーネルポインタにし、メインスレッドでデータを書き込むことで、カーネル任意書き込みを取得できます。

任意読み書きの昇格

この段階では、実質的な制約のない任意読み書きを保持していますが、動作にマルチスレッドとブロッキングが必要であり、理想的ではありません。次に、R/W を使用してプロセスの FD テーブルを反復し、2 つの IPV6 ソケットの pktopts をオーバーラップさせます。その後、IPV6_PKTINFO sockopt を介して別の任意読み書きを作成できます。ただし、この読み書きプリミティブも、基になるソケットオプションによりサイズと内容に制約があるため、理想的ではありません。このステップは、ほとんどのペイロードなどが構築された IPV6 エクスプロイトのシナリオをエミュレートするために主に保持しています。

パイプを介してより良い読み書きを取得できます。プロセスの FD テーブルを再度反復し、pipemap バッファオブジェクトを変更することで、読み書きを確立できます。IPV6 ソケットペアは、pipemap バッファを制御するメカニズムとして使用されます。

破損の修正/回避

このままの状態でブラウザを閉じようとすると、システムがクラッシュします。これは、プロセスのクリーンアップが、すでに解放されたカーネルスタックを解放しようとするためです。これを回避するために、次の 2 つのことを行います:

  1. 初期の double free に使用する shm FD の参照カウントを意図的にリークさせ、プロセス終了時に解放されないようにする
  2. プロセスのスレッドリスト内の victim thread の td_kstack をゼロにする。

安定性に関するメモ

FW < 3.00 では、このエクスプロイトは非常に安定しています。唯一の重大な失敗点は、vmobjects のオーバーラップに失敗することです。より高いファームウェアでは、ページ/ヒープアロケータレベルでの緩和策が原因で、このオーバーラップが達成しにくくなっています。

クレジット / 謝辞

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

Discord

PS5 の研究/開発への貢献に興味がある方は、私が設立した Discord に参加できます こちら。

ツールをダウンロード