このプロジェクトの背後にある考え方は、PSS カーネルを通じてプロセス権限を昇格し、 任意のコードの実行を許可することです。
PSSでは、実際には、などの標準的な呼び出し map やその他の一般的な技術を介して実行 可能メモリを割り当てることはできません。
さらに、JIT メモリ領域を悪用してシェルコードを作成するなどのアプローチ は、すべてのプロセスからアクセスできるわけではありません。
これらの制限を回避するため に、チームはより洗練された代替手段を探しました。
プロジェクトの核となるアイデアは、 PlayStation 5カーネルの読み取り/書き込み (RM) プリ ミティブの使用に基づいています
これらのプリミティブを使用すると、たとえば、ptraceへのアクセス権を取得することによってブロセスの特権を昇格できます。
AuthorityLDでは、有名な.html などの他のプロセスをデ バッグできます 。
これらの権限を使用すると、 リモート関数を呼び出してプロセス内でライブラリをロードできるようになり、実行可能メモリの割り当てに適したスペースを作成できます。
このアプローチは、Windows環境で使用されるプロセスハローイング手法に似ています。
プロセスの元の内容を 「空にして」 任意のコード用のスペースを空けます。
ライブラリが正常にロードされたら、次のステップは既存のデータを削除してELF ファイルを ロードするか、割り当てられたメモリにシェルコードを直接書き込むことです。
コードをトリガーするために、 チームはリモート関数呼び出しを使用します pthread createにより、 ターゲットプロセスでシェルコードの実行がトリガーされます。
SceShellUIでのインジェクション例
このプロジェクトには、これらの技術の応用例として、 PSS インターフェイスである SceShell内でのコードインジェクションも含まれています。
コードが正常に挿入されると、 インターフェイスの内部ログが表示され、予期しないコードを 実行するようにプロセスが変更されたことがわかります。
Project Nine (9S)はPoC、 つまり特定の技術の実現可能性を実証するものであることを強調しておく必要があります。
このプロジェクトはまだ完璧ではなく、改善できる点はたくさんありますが、PS5のセキュリティとハッキングの分野における将来の応用と研究のための重要な出発点となります。
研究者らは他の開発者やハッカーに対し、このPCを個人プロジェクトの基礎として使用し、 必要に応じて技術を改善 するよう呼びかけています。
POCはこちら:buzzer-re/NineS
コメント
コメントを投稿