Введение
В области кибербезопасности и тестирования на проникновение обнаружение поддоменов является важнейшим этапом разведки. Поддомены часто размещают различные приложения, службы или среды разработки, которые могут раскрывать дополнительные поверхности атаки или уязвимости, отсутствующие на основном домене. Gobuster — это популярный инструмент, используемый для брутфорса URI (каталогов и файлов), DNS-поддоменов, Amazon S3 бакетов и имен виртуальных хостов.
Эта лабораторная работа проведет вас через процесс выполнения базового сканирования DNS-поддоменов с помощью Gobuster. Вы научитесь выбирать цель, выбирать эффективный список слов (wordlist), конструировать команду Gobuster с необходимыми флагами, выполнять сканирование и интерпретировать результаты для выявления активных поддоменов. К концу этой лабораторной работы вы получите базовое понимание того, как использовать Gobuster для перечисления поддоменов, что является жизненно важным навыком для любого специалиста по безопасности или энтузиаста.
Выбор целевого домена
На этом этапе вы выберете целевой домен для сканирования поддоменов. В образовательных целях мы будем использовать scanme.nmap.org в качестве нашей цели. Этот домен предоставляется Nmap для тестирования и безопасен для сканирования.
Сначала убедитесь, что Gobuster установлен. Если нет, вы можете установить его с помощью apt.
sudo apt update
sudo apt install -y gobuster
После установки вы можете проверить установку, проверив его версию:
gobuster -v
Вы должны увидеть вывод, похожий на этот, указывающий, что Gobuster установлен:
gobuster v3.x
Теперь давайте подтвердим наш целевой домен. Мы будем использовать scanme.nmap.org.
echo "Наш целевой домен: scanme.nmap.org"
Эта команда просто выводит целевой домен в ваш терминал, подтверждая ваш выбор.
Выбор списка слов для поддоменов
На этом этапе вы выберете подходящий список слов (wordlist) для сканирования поддоменов. Список слов — это файл, содержащий перечень распространенных имен поддоменов (например, www, mail, dev, admin). Gobuster попытается разрешить каждое имя из списка слов в сочетании с вашим целевым доменом (например, www.scanme.nmap.org, mail.scanme.nmap.org).
Для этой лабораторной работы мы будем использовать распространенный список слов, часто встречающийся в дистрибутивах для тестирования на проникновение, или можем скачать его. Мы будем использовать список слов dns.txt из проекта SecLists, который является хорошим универсальным списком для перечисления DNS.
Сначала убедимся, что у нас есть клон репозитория SecLists или доступен аналогичный список слов. Если нет, мы можем скачать конкретный список слов.
wget -nc https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/dns.txt -P ~/project/
Флаг -nc гарантирует, что wget не будет повторно загружать файл, если он уже существует, что полезно при многократном выполнении команды. Флаг -P ~/project/ указывает каталог для сохранения файла.
После загрузки убедитесь, что файл списка слов существует в вашем каталоге ~/project/:
ls -l ~/project/dns.txt
Вы должны увидеть вывод, похожий на этот, подтверждающий наличие файла:
-rw-r--r-- 1 labex labex XXXX Month Day HH:MM ~/project/dns.txt
Это подтверждает, что dns.txt готов к использованию в качестве нашего списка слов.
Создание базовой команды gobuster dns
На этом этапе вы создадите базовую команду Gobuster для выполнения сканирования поддоменов DNS. Gobuster использует различные режимы для разных типов брутфорса. Для перечисления поддоменов DNS мы используем режим dns.
Основные флаги для сканирования DNS:
-d: Указывает целевой домен.-w: Указывает путь к списку слов (wordlist).
Таким образом, базовая структура команды будет выглядеть как gobuster dns -d <целевой_домен> -w <путь_к_списку_слов>.
Соберем команду, используя выбранную нами цель scanme.nmap.org и список слов ~/project/dns.txt.
echo "Команда Gobuster будет: gobuster dns -d scanme.nmap.org -w ~/project/dns.txt"
Эта команда выведет полную команду Gobuster, которую вы собираетесь выполнить. Понимание команды перед ее запуском имеет решающее значение для эффективного использования любого инструмента.
Выполнение сканирования с флагами -d и -w
На этом этапе вы выполните сканирование поддоменов DNS с помощью Gobuster, используя команду, созданную на предыдущем шаге. Это инициирует процесс брутфорса, в ходе которого Gobuster пытается разрешить каждую запись из списка слов как поддомен целевого домена.
Выполните следующую команду в вашем терминале:
gobuster dns -d scanme.nmap.org -w ~/project/dns.txt
По мере выполнения сканирования Gobuster будет отображать успешно разрешенные поддомены. В выводе будут показаны разрешенные поддомены вместе с их IP-адресами.
Пример вывода:
===============================================================
Gobuster v3.x
===============================================================
[+] Url: scanme.nmap.org
[+] Threads: 10
[+] Wordlist: /home/labex/project/dns.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in DNS mode
===============================================================
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
...
Сканирование может занять некоторое время в зависимости от размера списка слов и сетевых условий. Дайте ему завершиться, чтобы получить полный список найденных поддоменов.
Анализ списка найденных поддоменов
На этом заключительном этапе вы проанализируете вывод сканирования Gobuster. Строки Found: в выводе указывают на успешно разрешенные поддомены. Это поддомены, которые существуют и имеют соответствующие DNS-записи.
Просмотрите вывод предыдущего шага. Ищите строки, начинающиеся с Found:, за которыми следует поддомен и его IP-адрес.
Например, вы можете увидеть:
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
Каждая из этих строк представляет собой потенциальную точку входа или интересный актив, связанный с целевым доменом. В реальном сценарии вы бы затем исследовали эти поддомены дальше, возможно, посетив их в веб-браузере, выполнив сканирование портов или поискав веб-уязвимости.
Чтобы убедиться, что вы проанализировали вывод, давайте проверим наличие распространенного поддомена, такого как www.
echo "Look for 'www.scanme.nmap.org' in the Gobuster output."
Этот шаг подчеркивает важность анализа результатов ваших инструментов разведки. Необработанный вывод Gobuster предоставляет ценную информацию, которая может направлять ваши последующие оценки безопасности.
Резюме
В этой лабораторной работе вы успешно выполнили базовое сканирование поддоменов DNS с помощью Gobuster. Вы узнали, как:
- Выбрать целевой домен (
scanme.nmap.org). - Выбрать и скачать подходящий список слов (
dns.txt). - Сконструировать команду Gobuster, используя режим
dnsи флаги-d(домен) и-w(список слов). - Выполнить сканирование и наблюдать вывод обнаруженных поддоменов в реальном времени.
- Проанализировать результаты для выявления активных поддоменов и понимания их значимости.
Этот базовый навык имеет решающее значение для разведки в области кибербезопасности, позволяя расширить понимание поверхности атаки цели. Вы можете дополнительно улучшить свои сканирования Gobuster, экспериментируя с различными списками слов, увеличивая количество потоков (-t) или указывая пользовательские DNS-серверы (--resolver).
