

説明
GoAnywhere インスタンスが CVE‑2025‑10035 に対して脆弱かどうかを検出する、軽量な Python チェッカー です。
このツールは、ランダム化された User-Agent(fake-useragent とフォールバックリストを使用)を伴う巧妙に細工された GET リクエストを送信し、リダイレクトには追従せず、Location ヘッダーを検査して、インスタンスを**未パッチ(脆弱)またはパッチ適用済み(脆弱ではない)**に分類します。
注: このリポジトリには現在チェッカーのみが含まれています。PoC は、適切な場合には別途明確にラベル付けされた場所に後日追加される可能性があります。現時点では、このプロジェクトは検出のみを目的としています。
CVE‑2025‑10035(このチェッカー向けの概要)
未パッチの GoAnywhere AdminErrorHandlerServlet は、有効なライセンス要求トークンを生成し、それをリダイレクト URL に埋め込んで返す可能性があります。このトークンは通常、Location ヘッダー内の bundle クエリパラメータとして現れます(多くの場合 my.goanywhere.com へのリダイレクトです)。
bundle クエリパラメータ付きで my.goanywhere.com(または別のホスト)への HTTP リダイレクトが発生します。bundle の存在 = 脆弱。bundle なしで /license/Unlicensed.xhtml などのローカルパスへリダイレクトするか、リダイレクトしません。倫理的注意: このチェッカーは、自分が所有しているか、テストする明示的な許可を得ているシステムに対してのみ実行してください。無許可のスキャンは違法または破壊的となる可能性があります。
User-Agent(fake-useragent + フォールバックリスト)。allow_redirects=False)。Location ヘッダーを検査するためです。multiprocessing.dummy.Pool によるマルチスレッドスキャン。colorama による色付きターミナル出力。requestsfake-useragentcoloramaurllib3(通常 requests と一緒にインストールされます)requirements.txt
python -m venv .venv # optional but recommended source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
以下は、さまざまなシナリオでチェッカーを実行するためにコピー&ペーストできる実用的な例です: 単一ターゲットの迅速なテスト、バッチスキャン、本番環境の安全性を考慮した低レートスキャン、Docker 内での実行、チェッカーを定期的またはプッシュ時に実行するための最小限の GitHub Actions スニペット。
これらの例では、スクリプトファイル名が
check_goanywhere.pyであり、python check_goanywhere.pyで実行可能であることを前提としています。ファイル名、パス、スレッド数は環境に合わせて調整してください。
# Scan targets listed in examples/targets.txt and append vulnerable hosts to results.txt
python check_goanywhere.py examples/targets.txt results.txt
# Use 10 worker threads for faster scanning (be careful with concurrency against production)
python check_goanywhere.py examples/targets.txt results.txt 10
以下は、チェッカーを実行したときに期待できる実際のサンプル出力です。すべての例では、開始時にデフォルトのバナーが出力されることを前提としています。[] 内の行は、スクリプトがターミナルに出力する色付きのステータスメッセージを示しています。スキャン後、脆弱なホストは結果ファイルに追記されます。