
CVE-2018-4441を使用してPS4 6.20上でRCEを取得するWebKitエクスプロイト
このリポジトリには、CVE-2018-4441 を利用した PlayStation 4 ファームウェア 6.20 向けの概念実証 (PoC) RCE エクスプロイトが含まれています。エクスプロイトはまず、wkexploit.js で任意読み取り/書き込みプリミティブと任意オブジェクトアドレス漏洩を確立します。次に、index.html で ROP チェーンを実行するフレームワークをセットアップし、デフォルトでは2つのテスト用 ROP チェーンのハイパーリンクを提供します。1つは sys_getpid() システムコール、もう1つは sys_getuid() システムコールを実行して、それぞれプロセスの PID とユーザー ID を取得します。
各ファイルの先頭には、そのファイルの内容とエクスプロイトの動作に関する簡単な説明がコメントとして記載されています。バグ発見の功績は Google Project Zero (p0) の lokihardt にあります。バグレポートは こちら から確認できます。
注意: この脆弱性は 6.50 ファームウェアアップデートで修正されました。
ファイルをアルファベット順に並べています:
index.html - ポストエクスプロイトコードを含み、任意読み取り/書き込みからコード実行に移行します。rop.js - ROP チェーンのためのフレームワークを含みます。syscalls.js - ポストエクスプロイトで使用するシステムコールの(不完全な)リストを含みます。wkexploit.js - WebKit エクスプロイトの中核を含みます。p.launchchain() メソッドを交換する必要があるかもしれません。syscalls.js に少数のシステムコールしか含まれていない理由の一つです。xampp または任意のプログラムを使用して、これらのファイルをホストするウェブサーバーを localhost にセットアップします。また、サーバー上でホストすることもできます。PS4 でアクセスするには、以下の方法があります:
私がエクスプロイトを作成しましたが、脆弱性は私が発見したものではありません。前述の通り、バグ (CVE-2018-4441) は Google Project Zero (p0) の lokihardt によって発見され、Chromium の公開バグトラッカーを通じて公開されました。
Chromium バグレポート - 脆弱性。
Phrack: Attacking JavaScript Engines by saelo - 命の恩人。この神聖な論文がなければ、このエクスプロイトの作成は約1500倍困難だったでしょう。
lokihardt - 脆弱性の発見
st4rk - エクスプロイトへの協力
qwertyoruiop - WebKit スクール
saelo - Phrack 論文