Введение
В этой лабораторной работе вы изучите ключевую роль списков слов (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) списка слов, а также сравнили их результаты и примерное время сканирования. Вы получили практическое понимание связанных компромиссов: большие списки слов предлагают более полные результаты, но требуют значительно больше времени, в то время как меньшие списки слов обеспечивают более быстрое сканирование с риском пропуска менее распространенных записей. Эти знания крайне важны для принятия обоснованных решений во время задач перечисления веб-ресурсов при тестировании на проникновение.
