
Поиск виртуальных хостов среди неразрешаемых доменов
Поиск виртуальных хостов среди неразрешаемых доменов.
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-прокси. Используйте опцию --enable-sni для включения режима SNI.
Для больших сетей с тысячами поддоменов может потребоваться много часов для проверки всех кандидатов в виртуальные хосты. Для ускорения процесса можно использовать следующие опции:
Кроме того, рекомендуется использовать опцию -v (подробность) для непрерывного просмотра результатов.
См. CHANGELOG