В процессе разведки (Reconnaissance) критически важно обнаружить всю поверхность атаки. Часто на одном IP-адресе размещены десятки веб-приложений, использующих технологию виртуальных хостов (VHosts). Многие из них не числятся в DNS и остаются «скрытыми» — это могут быть тестовые, промежуточные (staging) среды или административные панели, которые зачастую более уязвимы.
Виртуальный хостинг — это метод, позволяющий запускать несколько веб-сайтов (например, site1.com и site2.com) на одном физическом сервере и одном IP-адресе. Веб-сервер (например, Apache или Nginx) определяет, какой именно сайт запрашивает пользователь, анализируя заголовок Host: в HTTP-запросе.
🟧 Стандартные сканеры, работающие только с DNS, такие хосты пропускают. VHostScan — это не просто сканер, а высокоспециализированный инструмент, использующий три различных метода для точного и массового обнаружения виртуальных хостов:
🟧Перебор по словарю - инструмент использует заданный список поддоменов (например, dev, api, test), отправляя запрос для каждого имени HTTP-запрос с соответствующим заголовком Host.
🟧Анализ ответов (Фингерпринтинг) - это основное преимущество утилиты. VHostScan не ограничивается анализом кода ответа. Он сравнивает ответы сервера на валидные и невалидные запросы, анализируя: размер страницы, заголовки ответа, код состояния, хеш содержимого.
Такой подход позволяет reliably обнаруживать хосты, возвращающие кастомные страницы ошибок или перенаправления.
🟧Поддержка современных технологий - инструмент полноценно работает с HTTPS через механизм SNI (Server Name Indication), что обеспечивает корректное сканирование защищённых сайтов. Кроме того, он поддерживает массовую обработку targets и легко интегрируется в автоматизированные пайплайны разведки с такими инструментами, как amass и subfinder.
🟧 Установка и использование
git clone https://github.com/codingo/VHostScan
cd VHostScan
pip3 install -r requirements.txt
🟧 Проверка
VHostScan -h
🟧 Примеры использования
- Простое сканирование (использование базового списка слов)
python3 vhostscan.py -t example.com -w wordlist.txt
- Целевое сканирование с фингерпринтингом. Сначала инструменту нужно узнать, как сервер отвечает на невалидные запросы (создается «отпечаток»), а затем искать аномалии.
python3 vhostscan.py -t example.com -w wordlist.txt --fingerprints
- Массовое сканирование списка целей
python3 vhostscan.py -T targets.txt -w wordlist.txt -o results.json --json-output
