Введение
В этой лабораторной работе вы научитесь использовать Gobuster для выполнения базового сканирования виртуальных хостов (vhost). Виртуальные хосты — это распространенный способ для веб-серверов размещать несколько веб-сайтов на одном IP-адресе. Обнаружение этих скрытых vhost может выявить дополнительные поверхности атаки или конфиденциальную информацию во время пентеста или оценки безопасности. Gobuster — это мощный инструмент для брутфорса URI, поддоменов DNS и имен виртуальных хостов.
Понимание того, что такое виртуальные хосты (VHosts)
На этом этапе вы узнаете о виртуальных хостах (vhosts) и почему они важны для веб-безопасности.
Виртуальный хост позволяет одному серверу размещать несколько доменных имен на одном IP-адресе. Например, www.example.com и blog.example.com могут быть размещены на одном сервере, различаясь по заголовку Host в HTTP-запросе. Когда веб-браузер отправляет запрос на сервер, он включает заголовок Host, указывающий доменное имя, к которому он хочет получить доступ. Затем веб-сервер использует этот заголовок, чтобы определить, какой веб-сайт обслуживать.
Обнаружение этих виртуальных хостов имеет решающее значение для оценки безопасности, потому что:
- Скрытый контент: Vhost может размещать старое, неисправленное приложение, разработочную версию сайта или административный интерфейс, который не связан с основным веб-сайтом.
- Расширенная поверхность атаки: Каждый обнаруженный vhost представляет собой потенциальную новую точку входа для атак, таких как SQL-инъекции, межсайтовый скриптинг (XSS) или обход каталогов.
- Раскрытие информации: Иногда vhost могут раскрывать внутренние сетевые структуры, конфиденциальные файлы или неправильные конфигурации.
Инструменты, такие как Gobuster, могут автоматизировать процесс перебора распространенных имен vhost против цели для выявления активных.
Выберите целевой IP-адрес или домен
На этом шаге вы определите цель для вашего сканирования vhost с помощью Gobuster.
Для этой лабораторной работы мы будем использовать localhost в качестве цели, а именно http://127.0.0.1:8080. Мы настроили простой веб-сервер на порту 8080, который имитирует несколько виртуальных хостов. В реальном сценарии вы замените 127.0.0.1:8080 на фактический IP-адрес или доменное имя вашей цели.
Чтобы убедиться, что веб-сервер запущен, вы можете использовать curl для отправки запроса к нему.
curl http://127.0.0.1:8080
Вы должны увидеть вывод, похожий на этот, указывающий, что сервер активен:
This is vhost1 content.
Этот вывод получен из виртуального хоста по умолчанию (или первого, обслуживаемого простым сервером Python). Наша цель — найти другие "скрытые" виртуальные хосты.
Создание базовой команды gobuster для vhost
На этом шаге вы узнаете, как создать базовую команду gobuster для сканирования vhost.
Команда gobuster для сканирования vhost использует режим vhost. Основные флаги для сканирования vhost:
-u: Указывает целевой URL.-w: Указывает список слов (wordlist) для перебора имен виртуальных хостов.
Базовый синтаксис будет выглядеть так: gobuster vhost -u <целевой_url> -w <путь_к_списку_слов>.
Для нашей лабораторной работы целевым URL является http://127.0.0.1:8080. Мы также подготовили список слов по пути /tmp/vhost_wordlist.txt, который содержит потенциальные имена виртуальных хостов.
Давайте рассмотрим содержимое списка слов:
cat /tmp/vhost_wordlist.txt
Вы должны увидеть следующий вывод:
vhost1
vhost2
hidden_vhost
test
dev
admin
Этот список слов содержит некоторые распространенные и некоторые специфические имена vhost, которые мы ожидаем найти.
Выполнение сканирования с флагами -u и -w
На этом шаге вы выполните сканирование vhost с помощью gobuster, используя целевой URL и предоставленный список слов.
Теперь объедините целевой URL и путь к списку слов в команду gobuster.
gobuster vhost -u http://127.0.0.1:8080 -w /tmp/vhost_wordlist.txt
Нажмите Enter, чтобы запустить команду. Gobuster начнет перебирать список слов, отправляя запросы с каждым словом в заголовке Host и сообщая о найденных виртуальных хостах.
Вывод покажет прогресс и любые успешные находки. Он может выглядеть примерно так:
===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url: http://127.0.0.1:8080
[+] Wordlist: /tmp/vhost_wordlist.txt
[+] Threads: 10
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
===============================================================
2024/07/30 10:00:00 Starting gobuster in vhost mode
===============================================================
Found: vhost1 (Status: 200) [Size: 20]
Found: vhost2 (Status: 200) [Size: 20]
Found: hidden_vhost (Status: 200) [Size: 27]
===============================================================
2024/07/30 10:00:05 Finished
===============================================================
Как вы можете видеть, gobuster успешно обнаружил vhost1, vhost2 и hidden_vhost.
Анализ вывода для обнаруженных виртуальных хостов
На этом шаге вы проанализируете вывод сканирования gobuster, чтобы понять обнаруженные виртуальные хосты.
Вывод gobuster предоставляет ключевую информацию для каждого обнаруженного виртуального хоста:
Found:: Имя виртуального хоста, которое было успешно разрешено.(Status: 200): Код состояния HTTP, возвращенный сервером.200 OKобычно указывает на то, что vhost существует и успешно предоставил контент. Другие коды состояния (например,301,302,403,404) также могут быть актуальны в зависимости от конфигурации сервера.[Size: XX]: Размер тела ответа в байтах. Это иногда может помочь отличить различные типы контента или страницы по умолчанию.
Из вывода предыдущего шага вы должны были увидеть:
Found: vhost1 (Status: 200) [Size: 20]Found: vhost2 (Status: 200) [Size: 20]Found: hidden_vhost (Status: 200) [Size: 27]
Эти записи указывают на то, что gobuster успешно идентифицировал три виртуальных хоста на http://127.0.0.1:8080 с использованием предоставленного списка слов. В реальной ситуации вы бы затем исследовали эти обнаруженные vhost дальше, перейдя по ним (например, curl -H "Host: vhost1" http://127.0.0.1:8080) или используя другие инструменты веб-безопасности.
На этом завершается базовый лабораторный практикум по сканированию vhost. Вы успешно использовали gobuster для идентификации виртуальных хостов.
Резюме
В этой лабораторной работе вы научились выполнять базовое сканирование виртуальных хостов с помощью Gobuster. Вы поняли концепцию виртуальных хостов, выбрали цель, составили команду gobuster с флагами -u (URL) и -w (список слов), выполнили сканирование и интерпретировали результаты. Этот навык является основополагающим для обнаружения скрытых веб-приложений и расширения поверхности атаки во время оценки безопасности.
