Введение
В этой лабораторной работе вы изучите основы использования Gobuster для сканирования директорий. Gobuster — это мощный инструмент, используемый в пентестинге и этичном хакинге для обнаружения скрытых директорий и файлов на веб-серверах. Путем перебора распространенных имен директорий против целевого URL, Gobuster может раскрыть конфиденциальную информацию или упущенные точки входа. Эта лабораторная работа проведет вас через выбор цели, выбор подходящего списка слов (wordlist), построение команды Gobuster, выполнение сканирования и интерпретацию результатов.
Выбор целевого URL для сканирования
На этом этапе вы выберете целевой URL для вашего сканирования Gobuster. Для целей этой лабораторной работы мы будем использовать намеренно уязвимое веб-приложение, размещенное локально. Это гарантирует, что вы сможете выполнить сканирование, не затрагивая внешние системы, и наблюдать типичные результаты.
Сначала убедимся, что целевой веб-сервер запущен. Мы будем использовать curl для проверки доступности веб-сервера.
Откройте терминал в директории ~/project.
curl http://localhost:8080
Вы должны увидеть HTML-вывод, указывающий на то, что веб-сервер активен. Целевым URL для нашего сканирования будет http://localhost:8080.
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Выбор базового списка слов (Wordlist)
На этом этапе вы выберете базовый список слов (wordlist) для вашего сканирования Gobuster. Список слов — это файл, содержащий перечень распространенных имен директорий и файлов, которые Gobuster попытается найти на целевом сервере. Качество и полнота вашего списка слов напрямую влияют на эффективность сканирования.
Для этой лабораторной работы мы будем использовать небольшой, предварительно установленный список слов, подходящий для демонстрационных целей. Этот список слов находится по пути /usr/share/wordlists/dirb/common.txt.
Вы можете просмотреть первые несколько строк этого списка слов с помощью команды head, чтобы понять его содержимое:
head /usr/share/wordlists/dirb/common.txt
Эта команда отобразит начало списка слов, показывая примеры имен директорий, которые Gobuster будет тестировать.
admin/
backup/
bin/
cgi-bin/
conf/
css/
data/
db/
dev/
doc/
Этот список слов содержит распространенные имена директорий, которые часто встречаются на веб-серверах. Использование такого небольшого списка слов помогает быстро завершить сканирование в рамках данной лабораторной работы.
Формирование базовой команды gobuster dir
На этом этапе вы сформируете базовую команду gobuster dir. Команда gobuster dir используется для перебора (brute-forcing) директорий и файлов. Она требует как минимум два основных флага: -u для целевого URL и -w для списка слов (wordlist).
Базовый синтаксис команды выглядит следующим образом:
gobuster dir -u <target_url> -w <wordlist_path>
Исходя из предыдущих шагов:
- Целевой URL:
http://localhost:8080. - Путь к списку слов:
/usr/share/wordlists/dirb/common.txt.
Таким образом, команда, которую вы сформируете, будет выглядеть так:
gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt
Эта команда указывает Gobuster выполнить сканирование директорий на http://localhost:8080, используя записи из common.txt в качестве потенциальных имен директорий. Вы выполните эту команду на следующем шаге.
Выполнение сканирования с флагами -u и -w
На этом этапе вы выполните команду gobuster dir, которую вы сформировали на предыдущем шаге. Это инициирует сканирование директорий против нашего целевого URL с использованием указанного списка слов.
Выполните следующую команду в вашем терминале:
gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt
По мере выполнения сканирования Gobuster будет отображать свой прогресс и любые обнаруженные директории или файлы. Вывод будет показывать код состояния (например, 200 для OK, 301 для Перемещено навсегда) и размер ответа для каждой найденной записи.
===============================================================
Gobuster vX.X.X-XXXXXX Linux/amd64
===============================================================
[+] Url: http://localhost:8080
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/X.X.X
[+] Timeout: 10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/css (Status: 301)
/js (Status: 301)
/images (Status: 301)
/admin (Status: 301)
/icons (Status: 301)
/server-status (Status: 403)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================
Приведенный выше вывод показывает несколько найденных директорий вместе с их кодами состояния HTTP. Например, /css вернул статус 301, указывающий на постоянное перенаправление.
Анализ результатов обнаруженных директорий
На этом этапе вы проанализируете вывод вашего сканирования Gobuster, чтобы понять результаты. Вывод предоставляет ценную информацию об обнаруженных директориях и файлах на целевом веб-сервере.
Просмотрите вывод из предыдущего шага. Вы должны увидеть строки, похожие на эти:
/css (Status: 301)
/js (Status: 301)
/images (Status: 301)
/admin (Status: 301)
/icons (Status: 301)
/server-status (Status: 403)
Каждая строка представляет собой потенциальную директорию или файл, обнаруженный Gobuster.
- Первая часть, например
/css, — это путь, который Gobuster успешно идентифицировал. (Status: XXX)указывает код состояния HTTP, возвращенный сервером для этого пути.200 OK: Запрос был успешным, и контент был возвращен. Это часто означает действительную директорию или файл.301 Moved Permanently: Ресурс был навсегда перемещен по новому URL. Это по-прежнему указывает на существование директории.403 Forbidden: Сервер понял запрос, но отказывается его авторизовать. Это означает, что директория существует, но у вас нет разрешения на прямой доступ к ней.401 Unauthorized: Похоже на 403, но обычно требует аутентификации.
В нашем примере /css, /js, /images, /admin и /icons вернули коды состояния 301, что означает, что эти директории существуют и сервер перенаправляет на них запросы. Путь /server-status вернул статус 403, указывающий на его существование, но запрет доступа.
Этот анализ помогает вам выявить потенциальные области для дальнейшего исследования, такие как административные панели (/admin) или файлы конфигурации, которые могут быть уязвимы.
Резюме
В этой лабораторной работе вы успешно выполнили базовое сканирование директорий с помощью Gobuster. Вы узнали, как выбрать целевой URL, выбрать подходящий список слов, составить команду gobuster dir с флагами -u и -w, выполнить сканирование и проанализировать вывод для выявления существующих директорий и их кодов состояния HTTP. Этот фундаментальный навык имеет решающее значение для разведки в области кибербезопасности, помогая вам обнаруживать скрытые веб-ресурсы, которые могут содержать конфиденциальную информацию или уязвимости. Теперь вы можете применять эти методы с различными списками слов и целями, чтобы расширить свое понимание структуры веб-серверов.
