Использование различных списков слов для сканирования каталогов в Gobuster

Beginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите ключевую роль списков слов (wordlists) при сканировании каталогов с использованием Gobuster, популярного инструмента для веб-перечисления. Сканирование каталогов является фундаментальным этапом тестирования на проникновение веб-приложений, помогая обнаруживать скрытые каталоги и файлы, которые могут содержать конфиденциальную информацию или предоставлять векторы атак. Эффективность и результативность этого процесса в значительной степени зависят от используемого списка слов. Вы узнаете, как находить списки слов по умолчанию в Kali Linux, выполнять сканирование с различными размерами списков слов и анализировать их влияние на время сканирования и количество обнаруженных записей. Это даст практическое понимание компромиссов, связанных с выбором правильного списка слов для ваших задач перечисления.

Поиск списков слов по умолчанию в Kali

На этом шаге вы найдете списки слов (wordlists) по умолчанию, предоставляемые в Kali Linux, которые необходимы для таких инструментов, как Gobuster. Kali Linux поставляется с обширной коллекцией списков слов, хранящихся в каталоге seclists. Эти списки слов классифицированы для различных целей, включая перечисление каталогов, подбор паролей и фаззинг.

Сначала перейдите в каталог seclists. Обычный путь к этим спискам слов: /usr/share/seclists.

ls -l /usr/share/seclists

Вы увидите различные подкаталоги. Для веб-перечисления особенно актуален каталог Discovery. Внутри Discovery вы найдете Web-Content, который содержит списки слов, специально разработанные для поиска веб-каталогов и файлов.

ls -l /usr/share/seclists/Discovery/Web-Content/

Среди них common.txt — это относительно небольшой список слов, а directory-list-2.3-medium.txt — более крупный и полный. Вы будете использовать эти два списка слов на последующих этапах, чтобы наблюдать влияние размера списка слов на сканирование с помощью Gobuster.

ls -l /usr/share/seclists/Discovery/Web-Content/common.txt
ls -l /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

Вы также можете просмотреть первые несколько строк common.txt, чтобы получить представление о его содержимом:

head /usr/share/seclists/Discovery/Web-Content/common.txt

Ожидаемый вывод (сокращенный):

.git
.svn
.DS_Store
.htaccess
.htpasswd
.bash_history
.bash_logout
.bashrc
.profile
.ssh

Выполнение сканирования с использованием небольшого списка слов (common.txt)

На этом шаге вы выполните сканирование каталогов с помощью Gobuster, используя меньший список слов common.txt. Это продемонстрирует быстрое сканирование, которое может пропустить менее распространенные каталоги, но выполняется быстрее.

Целью нашего сканирования будет простой веб-сервер на Python, работающий локально на порту 8000. URL будет http://127.0.0.1:8000.

Используйте следующую команду для запуска Gobuster:

  • dir: Указывает, что мы выполняем перебор каталогов/файлов.
  • -u: Указывает целевой URL.
  • -w: Указывает путь к списку слов.
  • -o: Указывает выходной файл для сохранения результатов.
gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/common.txt -o ~/project/gobuster_common_results.txt

Сканирование будет запущено и отобразит свой прогресс. После завершения вы можете просмотреть результаты, сохраненные в ~/project/gobuster_common_results.txt.

cat ~/project/gobuster_common_results.txt

Ожидаемый вывод (может незначительно отличаться в зависимости от содержимого common.txt и настройки сервера):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)

Обратите внимание на время, затраченное на завершение сканирования. Это будет сравниваться со сканированием с использованием большего списка слов на следующем шаге.

Выполнение сканирования с использованием большего списка слов (directory-list-2.3-medium.txt)

На этом шаге вы повторите сканирование каталогов с помощью Gobuster, но на этот раз с гораздо большим списком слов directory-list-2.3-medium.txt. Это продемонстрирует, как более полный список слов может найти больше записей, но ценой увеличения времени сканирования.

gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -o ~/project/gobuster_medium_results.txt

Это сканирование займет значительно больше времени, чем предыдущее, из-за размера списка слов. Будьте терпеливы, пока оно выполняется. После завершения изучите результаты.

cat ~/project/gobuster_medium_results.txt

Ожидаемый вывод (будет включать больше записей, чем при сканировании с common.txt, включая /admin, /backup, /common.html и, возможно, многие другие):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)
/css                  (Status: 200)
/js                   (Status: 200)
/images               (Status: 200)
... (много других записей)

Обратите внимание на разницу в количестве обнаруженных записей и общем времени, затраченном по сравнению с предыдущим сканированием.

Сравнение времени и результатов обоих сканирований

На этом шаге вы явно сравните результаты и примерное время, затраченное на оба сканирования. Хотя Gobuster не предоставляет точное время выполнения в своем выводе, вы можете вывести его из продолжительности, которую вы наблюдали во время выполнения, и проверив размеры файлов или количество строк в выходных файлах.

Сначала сравним количество строк (что соответствует количеству обнаруженных записей) в обоих выходных файлах:

echo "Results from common.txt scan:"
wc -l ~/project/gobuster_common_results.txt

echo "Results from directory-list-2.3-medium.txt scan:"
wc -l ~/project/gobuster_medium_results.txt

Ожидаемый вывод (количество строк будет варьироваться):

Results from common.txt scan:
3 /home/labex/project/gobuster_common_results.txt
Results from directory-list-2.3-medium.txt scan:
X /home/labex/project/gobuster_medium_results.txt (где X — гораздо большее число)

Вы должны заметить, что сканирование с directory-list-2.3-medium.txt обнаружило значительно больше записей.

Что касается времени, вы, вероятно, заметили, что сканирование с common.txt завершилось очень быстро (вероятно, несколько секунд), в то время как сканирование с directory-list-2.3-medium.txt заняло гораздо больше времени (потенциально минуты, в зависимости от системных ресурсов и скорости сети). Это подчеркивает прямую зависимость между размером списка слов и продолжительностью сканирования.

Понимание компромисса между размером списка слов и временем сканирования

На этом заключительном шаге вы обобщите ключевые выводы из предыдущих сканирований, сосредоточившись на компромиссе между размером списка слов, временем сканирования и полнотой результатов.

Большие списки слов:

  • Плюсы: Более высокая вероятность обнаружения скрытых каталогов и файлов, что приводит к более полному перечислению. Это крайне важно для поиска малоизвестных или нестандартных путей, которые могут содержать уязвимости или конфиденциальные данные.
  • Минусы: Значительно увеличивает время сканирования, потребляет больше системных ресурсов и генерирует больший объем вывода, который может быть сложным для анализа. Это также может генерировать больше "шума" (ложных срабатываний или нерелевантных записей).

Маленькие списки слов:

  • Плюсы: Гораздо более быстрое время сканирования, меньшая нагрузка на ресурсы и более управляемый вывод. Идеально подходит для быстрых проверок или когда у вас есть хорошее представление об обычных путях.
  • Минусы: Может пропустить менее распространенные или пользовательские каталоги и файлы, что приведет к неполному перечислению и потенциально к упущению критически важной информации.

Выбор правильного списка слов: Выбор списка слов зависит от вашей цели и доступного времени.

  • Для первоначальной разведки или быстрых проверок часто достаточно небольшого, целенаправленного списка слов, такого как common.txt.
  • Для всесторонней и углубленной оценки необходим более крупный список слов, такой как directory-list-2.3-medium.txt или даже более крупные (например, directory-list-2.3-big.txt).
  • Иногда наилучшим является комбинированный подход: начните с небольшого списка слов для скорости, а затем перейдите к более крупному, если первоначальные результаты требуют более глубокого изучения.
  • Пользовательские списки слов, адаптированные к конкретной цели или технологическому стеку, также могут быть очень эффективными.

Это понимание жизненно важно для эффективного и результативного тестирования на проникновение веб-приложений.

Резюме

В этой лабораторной работе вы успешно изучили влияние различных размеров списков слов на сканирование каталогов с помощью Gobuster. Вы узнали, как находить стандартные списки слов в Kali Linux, выполнили сканирование с использованием как небольшого (common.txt), так и более крупного (directory-list-2.3-medium.txt) списка слов, а также сравнили их результаты и примерное время сканирования. Вы получили практическое понимание связанных компромиссов: большие списки слов предлагают более полные результаты, но требуют значительно больше времени, в то время как меньшие списки слов обеспечивают более быстрое сканирование с риском пропуска менее распространенных записей. Эти знания крайне важны для принятия обоснованных решений во время задач перечисления веб-ресурсов при тестировании на проникновение.