
Java Spring Core の CVE-2022-22965 (Spring4Shell) RCE 脆弱性を悪用する Python エクスプロイト。Tomcat ログ設定を介して JSP webshell を注入し、脆弱なサーバー上でリモートコマンドを実行します。
CVE-2022-22965 脆弱性(Spring4Shell として知られる)は、Java Spring Core フレームワークにおけるリモートコード実行 (RCE) の欠陥であり、バージョン 5.3.18 および 5.2.20 より前のバージョンに存在します。この脆弱性により、攻撃者は Tomcat のログ設定の不備を悪用して、コードを注入し、脆弱なサーバー上でリモート実行することができます。これは 2022 年 3 月に発見され、JDK >= 9 のバージョンで動作する activeMQ、Spring MVC、Spring WebFlux アプリケーションに影響を与えます。

JDK のバージョンが 9 以上であることを確認します。そうでない場合は有効にします:

前提条件 ✔ エクスプロイトを機能させるには、requests モジュールと BeautifulSoup モジュールが必要です。次のようにインストールします:
pip3 install bs4
pip3 install requests
ネットワークスキャン

ここでは、activeQM バージョン 5.17.3 のサービスがリッスンしていることが確認できます。
エクスプロイト戦略では、このプロジェクトに添付されている spring4shell.py という名前の開発済み Python スクリプトを使用します。
このスクリプトの目的: この Python スクリプトは、Tomcat のログ設定を変更してログファイルに webshell を注入し、侵害されたサーバー上でリモートコマンドを実行できるようにすることで、CVE-2022-22965 脆弱性を悪用します。
Python コードの説明
端末出力の設定 :
設定クラスは、選択されたオプションに応じて端末の表示を調整し、情報、警告、エラーメッセージを色で区別します。
ランダム変数の生成 :
filename() 関数と password() 関数は、webshell のファイル名とパスワードを安全にするためにランダムな16進文字列を生成します。
脆弱性の悪用 :
スクリプトは Tomcat のログ設定を変更するリクエストを送信し、ログを介して JSP コードの断片を注入します。ログが webapps/ROOT ディレクトリに書き込まれるように設定することで、各エントリが JSP コードとして解釈可能になります。
注入されたログファイルは webshell として機能し、ブラウザからアクセスしてコマンドを実行できるようになります。
Webshell との対話 :
端末クラスは、侵害されたサーバーにコマンドを送信するための対話型インターフェースを開きます。コマンドは cmd パラメータとして送信され、応答は端末に表示されます。
スクリプト実行後、webshell へのリンクが提供されます: 次のコマンドを使用します:
python3 spring4shell.py http://172.17.0.1

アクティブ MQ サーバーのシェルに直接アクセスでき、好きなコマンドを実行できます。
エクスプロイト完了 !!!