Сканирование определенных расширений файлов в Gobuster

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

Введение

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

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

Определение целевых расширений файлов (например, .php, .html)

На этом этапе вы научитесь определять распространенные и релевантные расширения файлов, которые вы можете сканировать во время перечисления веб-ресурсов. Выбор расширений часто зависит от технологического стека целевого объекта (например, .php для приложений PHP, .aspx для ASP.NET, .jsp для Java-приложений) или распространенных типов файлов, которые могут содержать конфиденциальную информацию (например, .txt, .bak, .zip, .sql).

В этой лаборатории мы сосредоточимся на нескольких распространенных расширениях, связанных с веб-технологиями: .php, .html и .txt. Они часто встречаются и служат хорошими примерами для демонстрации возможностей Gobuster.

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

Рассмотрите следующие распространенные расширения:

  • .php: PHP-скрипты
  • .html, .htm: HTML-страницы
  • .txt: Текстовые файлы, часто содержащие заметки или журналы
  • .js: JavaScript-файлы
  • .css: Каскадные таблицы стилей (Cascading Style Sheets)
  • .xml: XML-файлы
  • .json: Файлы данных JSON
  • .bak, .old, .orig: Резервные копии файлов
  • .zip, .tar.gz: Архивные файлы
  • .sql: Дампы баз данных

Знание того, какие расширения следует использовать в качестве цели, помогает сузить область поиска и сделать ваше перечисление более эффективным.

Создание базовой команды gobuster dir

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

Основные компоненты команды gobuster dir:

  • gobuster dir: Указывает режим (перебор каталогов/файлов).
  • -u <URL>: Указывает целевой URL. Для этой лаборатории нашей целью будет http://localhost:8000, который обслуживает файлы из /tmp/web_root.
  • -w <wordlist>: Указывает список слов (wordlist) для использования при переборе. Распространенным списком слов для перечисления веб-ресурсов является common.txt или directory-list-2.3-medium.txt. Для простоты и скорости в этой лаборатории мы будем использовать небольшой пользовательский список слов, который включает index, about, notes и admin.

Давайте создадим простой список слов в вашем каталоге ~/project.

echo -e "index\nabout\nnotes\nadmin\nconfig" > ~/project/small_wordlist.txt

Теперь давайте составим базовую команду без расширений. Эта команда попытается найти каталоги или файлы, соответствующие записям в small_wordlist.txt.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt

Вы увидите вывод, похожий на этот, показывающий найденные каталоги/файлы без конкретных расширений:

...
/index (Status: 200)
/about (Status: 200)
/notes (Status: 200)
/admin (Status: 200)
/config (Status: 200)
...

Этот вывод показывает, что Gobuster нашел записи, соответствующие списку слов, но пока не сообщает нам их конкретные типы файлов.

Добавление флага -x для указания расширений

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

Флаг -x принимает список расширений, разделенных запятыми. Например, чтобы сканировать файлы .php и .html, вы бы использовали -x php,html. Gobuster затем добавит эти расширения к каждой записи в вашем списке слов и попытается найти такие файлы, как index.php, about.html и т. д.

Давайте изменим предыдущую команду, чтобы включить расширения .php, .html и .txt.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Эта команда указывает Gobuster искать index.php, index.html, index.txt, index.bak, about.php, about.html, about.txt, about.bak и так далее для каждой записи в вашем списке слов.

Выполните команду и наблюдайте за выводом. Теперь вы должны увидеть результаты, которые явно включают расширения файлов.

...
/index.php (Status: 200)
/about.html (Status: 200)
/notes.txt (Status: 200)
/admin.php (Status: 200)
/config.bak (Status: 200)
...

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

Запуск сканирования по целевому адресу

На этом этапе вы выполните полную команду Gobuster с указанными расширениями против нашей симулированной цели. Это практическое применение того, что вы узнали.

Мы будем использовать команду из предыдущего шага, которая включает целевой URL, пользовательский список слов и флаг -x с расширениями .php, .html, .txt и .bak.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Когда вы запустите эту команду, Gobuster начнет перебирать список слов, добавляя каждое указанное расширение и отправляя запросы к серверу http://localhost:8000.

Вывод покажет обнаруженные файлы вместе с их кодами состояния HTTP. Код состояния 200 OK указывает на успешное обнаружение файла.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Этот вывод подтверждает, что Gobuster успешно обнаружил index.php, about.html, notes.txt, admin.php и config.bak на целевом сервере.

Анализ результатов поиска файлов с определенными расширениями

На этом заключительном этапе вы проанализируете и интерпретируете результаты сканирования Gobuster. Понимание вывода имеет решающее значение для выявления ценной информации во время оценки безопасности.

Вывод из предыдущего шага четко перечисляет найденные файлы вместе с их кодами состояния HTTP.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Вот что означает каждая строка:

  • /index.php (Status: 200): Указывает, что файл с именем index.php был найден в корне веб-сервера, и сервер ответил кодом состояния 200 OK, что означает успешный запрос.
  • /about.html (Status: 200): Аналогично, был найден файл about.html.
  • /notes.txt (Status: 200): Был найден текстовый файл с именем notes.txt. Он потенциально может содержать конфиденциальную информацию.
  • /admin.php (Status: 200): Был найден файл admin.php. Это может быть административный интерфейс, который часто является целью для дальнейшего исследования.
  • /config.bak (Status: 200): Был найден резервный файл с именем config.bak. Резервные файлы часто содержат конфиденциальные сведения о конфигурации или исходный код.

Проанализировав эти результаты, вы можете выявить файлы, которые могут представлять интерес для дальнейшего изучения. Например, вы можете попытаться открыть /admin.php в веб-браузере или скачать /config.bak для изучения его содержимого.

Целенаправленное сканирование по расширениям помогает обнаруживать скрытые или забытые файлы, которые могут привести к уязвимостям или раскрытию информации.

Резюме

В этой лабораторной работе вы успешно научились использовать Gobuster для сканирования определенных расширений файлов на целевом веб-сервере. Вы начали с понимания важности определения релевантных расширений файлов, затем составили базовую команду gobuster dir, и, наконец, улучшили ее, используя флаг -x для нацеливания на файлы .php, .html, .txt и .bak.

Вы выполнили сканирование на симулированном веб-сервере и интерпретировали результаты, идентифицировав различные файлы с их соответствующими расширениями и кодами состояния HTTP. Этот навык бесценен для перечисления веб-ресурсов во время тестирования на проникновение, позволяя обнаруживать скрытые файлы, которые могут содержать конфиденциальную информацию, раскрывать стек технологий или выявлять потенциальные точки входа.

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