
名前解決できないドメインからバーチャルホストを検索します。
git clone https://github.com/dariusztytko/vhosts-sieve.git
pip3 install -r vhosts-sieve/requirements.txt
サブドメインのリストを取得します(例:Amassを使用)
$ amass enum -v -passive -o domains.txt -d example.com -d example-related.com
vhosts-sieve.pyを使用してバーチャルホストを見つけます
$ python3 vhosts-sieve.py -d domains.txt -o vhosts.txt
Logs dir: None
Max domains to resolve: -1
Max IPs to scan: -1
Max vhost candidates to check: -1
Ports to scan: [80, 443, 8000, 8008, 8080, 8443]
SNI enabled: False
Threads number: 16
Timeout HTTP: 5.0s
Timeout TCP: 3.0s
Verbose: False
User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Resolving 12 domains...
Scanning 1 IPs...
Finding vhosts (active IPs: 1, vhost candidates: 7)...
Saved results (4 vhosts)
出力ファイルには、発見されたバーチャルホストが次の形式で含まれています。
165.22.264.81 80 http False zxcv.example.com 301
165.22.264.81 443 https False zxcv.example.com 200 dev.example.com 200 admin.example.com 401
各行には以下の情報が含まれています:
発見されたバーチャルホストの応答をログに記録できます(-l, --logs-dir オプション)。
バーチャルホストを発見するために、以下の手順が実行されます:
バーチャルホスト候補の検証は以下のように実行されます:
応答ステータスコードは考慮されないことに注意してください。主な前提として、参照応答以外のすべては詳細に分析する価値があるとみなされます。4xxや5xxの応答であってもです。
HTTPSプロトコルの場合、HostヘッダとSNI(TLS拡張)を介してバーチャルホスト候補名を送信すると便利な場合があります。これにより、設定が不十分なSNIプロキシを通過できる可能性があります。SNIモードを有効にするには、--enable-sni オプションを使用してください。
数千のサブドメインを持つ大規模なネットワークでは、すべてのバーチャルホスト候補をチェックするのに何時間もかかる場合があります。以下のオプションを使用して処理を高速化できます:
さらに、結果を継続的に確認するには、-v(詳細表示)オプションを使用することをお勧めします。
CHANGELOG を参照してください。