
リバースルックアップを実行する仮想ホストスキャナーで、ピボットツールと併用可能。キャッチオールシナリオを検出し、ワイルドカード、エイリアス、動的デフォルトページを回避します。
ピボットツールと併用可能なバーチャルホストスキャナーで、キャッチオールシナリオ、エイリアス、動的デフォルトページを検出します。2017年9月のSecTalks BNEで初めて発表されました(スライドデッキ)。
これは、Codingo によるオリジナルのVHostScanの拡張版であり、追加の改善、最新のコードベース、およびバーチャルホストの発見を向上させるための拡張されたワードリストを備えています。
Then run application `docker run --rm -it vhostscan -t´
VHostScanにはPython 3.8以上が必要です。以下の方法でインストールしてください:
$ pip install VHostScan
またはソースからインストール:
$ git clone https://github.com/codingo/VHostScan.git
$ cd VHostScan
$ pip install .
開発用:
$ pip install -e .
依存関係がインストールされ、VHostScanがパスに追加されます。
これらの例の多くは10.10.10.29を参照しています。このIPはHackTheBox(https://www.hackthebox.eu/)の退役したターゲットマシンBANK.HTBを示しています。
最も簡単な例では、デフォルトのポート80を使用してexample.comに対してデフォルトのワードリストを実行します:
$ VHostScan -t example.com
接続にSSLが必要な場合は、次のように使用できます:
$ VHostScan -t example.com --ssl

SSHポートフォワードがポート4444でリッスンしており、example.comの開発マシンのポート80にトラフィックを転送しているとします。VHostScanをlocalhost:4444経由でSSHトンネルに接続させつつ、ヘッダーリクエストをポート80に直接接続するようにフォーマットするには、次のように使用できます:
$ VHostScan -t localhost -b example.com -p 4444 -r 80
VHostScanは他のアプリケーションからのパイプをサポートしており、VHostScanに渡された情報をワードリストデータとして扱います。例:
$ cat bank.htb | VHostScan -t 10.10.10.29

標準入力と一緒に使用するワードリストを指定することもできます。その場合、ワードリスト情報は標準入力に追加されます。例:
$ echo -e 'a.example.com\b.example.com' | VHostScan -t localhost -w ./wordlists/wordlist.txt
ファジーロジックを有効にした例です。最後の比較が最初の2つよりもはるかに類似していることがわかります(実際のハッシュではなくコンテンツを比較しています):
VHostScanには、さまざまなシナリオに対応した複数の専門ワードリストが含まれるようになりました。元のワードリストはCodingoが実際のペネトレーションテストの経験に基づいて作成したものであり、この拡張版にはモダンインフラ向けの追加の専門ワードリストが含まれています。
各ワードリストの詳細については、WORDLISTS.mdを参照してください。
セキュリティ評価にはペンテストフォーカスワードリストを使用:
$ VHostScan -t target.com -w ./wordlists/pentest-focused.txt
包括的なスキャンのために複数のワードリストを組み合わせる:
$ VHostScan -t target.com -w "./wordlists/common-vhosts.txt,./wordlists/cloud-modern.txt"
モダンインフラにはクラウドフォーカスワードリストを使用:
$ VHostScan -t example.com -w ./wordlists/cloud-modern.txt --ssl
このプロジェクトには小さなテスト群が含まれています。テストの実行は非常に簡単です:
pip install -r test-requirements.txt
python3 setup.py test
プロジェクトに新機能を追加することを考えているなら、いくつかのテストも追加することを検討してください。テストが充実したコードベースは健全なコードベースです。 :)
この拡張版には以下が含まれます:
VHostScanはもともとCodingoによって作成され、2017年9月のSecTalks BNEで初めて発表されました。この拡張版は、その優れた基盤の上に、現代のペネトレーションテストやバグバウンティハンティングのための追加の改善を加えています。
| 引数 | 説明 |
|---|
| -h, --help | ヘルプメッセージを表示して終了 |
| -t TARGET_HOSTS | ターゲットホストを設定。 |
| -b BASE_HOST | ワードリスト内での置換に使用するホストを設定(デフォルトはTARGET)。 |
| -w WORDLISTS | 使用するワードリストを設定。複数のワードリストをカンマ区切りで指定可能(例:-w "./wordlists/simple.txt, ./wordlists/hackthebox.txt"(デフォルト ./wordlists/virtual-host-scanning.txt)。利用可能なワードリスト:simple.txt、hackthebox.txt、common-vhosts.txt、pentest-focused.txt、cloud-modern.txt、virtual-host-scanning.txt。 |
| -p PORT | 使用するポートを設定(デフォルト 80)。 |
| -r REAL_PORT | 80以外の場合にヘッダーで使用するウェブサーバーの実際のポート(RFC2616 14.23参照)、ssh/ncなどを通じてピボットする際に便利(デフォルトはPORT)。 |
| --ignore-http-codes IGNORE_HTTP_CODES | バーチャルホストスキャンで無視するHTTPコードのカンマ区切りリスト(デフォルト 404)。 |
| --ignore-content-length IGNORE_CONTENT_LENGTH | 指定されたコンテンツ長を無視。 |
| --prefix PREFIX | ワードリストの各項目にプレフィックスを追加(例:dev-<word>、test-<word>など)。 |
| --suffix SUFFIX | ワードリストの各項目にサフィックスを追加(例:<word>dev、<word>dev)。 |
| --first-hit | 最初の成功結果を返す。キャッチオールが設定されていないことが確実なシナリオ(CTFなど)でのみ使用。 |
| --unique-depth UNIQUE_DEPTH | x回見つかったページコンテンツの一致候補を表示(デフォルト 1)。 |
| --ssl | 設定すると、HTTPではなくHTTPSで接続。 |
| --fuzzy-logic | 設定すると、すべてのユニークコンテンツの応答が比較され、各ペアに類似度が表示される。デフォルトページが静的でない場合(時刻が表示されるなど)にvhostを特定するのに役立つ。 |
| --no-lookups | リバースルックアップを無効にする(新しいターゲットを特定してワードリストに追加、デフォルトで有効)。 |
| --rate-limit | 各スキャン間の遅延時間(秒)(デフォルト 0)。 |
| --random-agent | 設定すると、各スキャンで事前定義リストからランダムなユーザーエージェントを使用。 |
| --user-agent | スキャンに使用するユーザーエージェントを指定。 |
| --waf | 設定すると、単純なWAFバイパスヘッダーが送信される。 |
| -oN OUTPUT_NORMAL | -oNオプションにファイル名引数を指定すると、通常の出力がファイルに出力される。 |
| -oG OUTPUT_GREPABLE | -oGオプションにファイル名引数を指定すると、grep可能な出力がファイルに出力される。 |
| -oJ OUTPUT_JSON | -oJオプションにファイル名引数を指定すると、JSON出力がファイルに出力される。 |
| -v VERBOSE | ツールの出力を増やして進捗を表示 |