Мы уже рассказывали про перебор каталогов сайта. Сегодня продолжим эту тему и разберемся, как работает перебор файлов и папок на примере быстрого и простого в использовании инструмента GoBuster.
Еще по теме: Поиск субдоменов утилитой Sublist3r
Использование GoBuster для перебора файлов и каталогов
Утилита для быстрого перебора каталогов, поддоменов и виртуальных хостов. Есть возможность поиска файлов с заданным расширением. Простота использования GoBuster и гибкость делают его популярным среди багхантеров.
В инструменте реализовано 3 главных режима работы (в целом их больше):
- dir — поиск каталогов.
- DNS — поиск поддоменов.
- vhost — поиск виртуальных хостов.
Поиск страниц, файлов и каталогов сайта методом перебора — простой и эффективный способ собрать информацию о домене, закрытом от индексации поисковыми системами, где файлы и страницы не связаны друг с другом (а просто загружаются в хаотичном порядке).
Статья для обучения багхантеров (этичных хакеров). При участии в программе Bug Bounty необходимо действовать этично и придерживаться установленных правил. Несанкционированный взлом сайтов — уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
Даже если сайт проиндексирован в Google и имеет карту сайта, все равно имеет смысл исследовать его на предмет скрытых каталогов и файлов.
Установка GoBuster
Убедитесь, что у вас установлена последняя версия Go, и выполните команду:
1 |
go install github.com/OJ/gobuster/v3@latest |
Проверьте установку с помощью команды:
1 |
gobuster -h |
Перебор директорий
Принцип работы инструмента GoBuster очень прост. Он формирует запросы к серверу на основе списка файлов и проверяет, существует ли такой файл (ссылка).
Поэтому для его работы необходим словарь (список слов в формате .txt).
Закиньте словарь в директорию GoBuster.
1 |
https://github.com/v0re/dirb/blob/master/wordlists/common.txt |
Он содержит всего 4614 строк и идеально подходит для быстрого сканирования. Это один из популярных словарей.
Введите в командной строке:
1 |
gobuster dir -u https://yandex.ru -w common.txt -x .php,.html |
Давайте разберемся чуть подробнее, что делает эта команда:
- gobuster dir — запуск GoBuster в режиме перебора каталогов.
- - u https://yandex.ru — ссылка на сайт или директорию.
- - w common.txt — путь к файлу со словарю.
- -x .php,.html — расширения файлов, которые комбинируются с именами из файла со словарем.
Если вы хотите составить полный список ссылок из найденных имен файлов, то сохраните результаты выполнения команды в txt-файл:
1 |
gobuster dir -u https://yandex.ru -w common.txt -x .php,.html >gobusterresults.txt |
Замените 2K на имя домена:
1 |
sed -i 's/2K/yandex.ru/g' gobusterresults.txt |
Затем удалите все символы после ( в каждой строке:
1 |
sed 's/(.*//' gobusterresults.txt >gobusterresults_clean.txt |
И удалите 3 первых символа из каждой строки:
1 |
sed 's/^.\{3\}//' gobusterresults_clean.txt > gobusterresults_clean_final.txt |
Да, это далеко не самый элегантный и лаконичный пример использования команды sed. Эти три шага можно было бы объединить в одну команду, но я решил этого не делать, чтобы было понятнее.
Поиск по всем каталогам
Ранее мы искали файлы только в корневом каталоге домена. Но чаще всего файлы, интересующие нас, находятся в разных каталогах. Существует различные способы их найти. Вот несколько примеров.
Во-первых, можно просто запустить GoBuster и попробовать поискать файлы в разных каталогах, используя словарь с популярными именами каталогов.
Во-вторых, вы можете попробовать найти некоторые каталоги с помощью инструмента Dirhunt:
1 |
dirhunt https://yandex.ru >dirhunt_results.txt. |
Обратите внимание, что он также позволяет находить ссылки на некоторые файлы.
В-третьих, вы можете использовать краулеры, такие как Python Sitemap Generator, для поиска ссылок на файлы на страницах сайта и последующего извлечения из них путей к каталогам.
И, конечно, иногда ссылки на директории можно найти в файле robots.txt.
Словари GoBuster
В приведенном выше примере мы использовали очень короткий словарь, работа с которым занимает не более минуты. Но настоящая мощь GoBuster проявляется при использовании словарей, состоящих из десятков тысяч, сотен тысяч или даже миллионов строк.
Вот несколько полезных словарей на Github:
- Словарь Awesome Wordlists
- Словарь для резервного копирования файлов
- Словарь для резервного копирования файлов с указанием пути
- Словарь Xajkep
- Словарь Kkrypt0nn
Не забудьте определить язык, который используется для названия большинства сайтов в домене, и используйте списки слов на соответствующем языке.
Кроме того, с помощью Repolist вы можете создавать собственные словари для различных CMS и фреймворков.
Полезные параметры GoBuster
GoBuster — это многофункциональный инструмент с большим количеством настроек.
Вот несколько, на мой взгляд, наиболее полезных для поиска файлов:
-e — expanded Расширенный режим, печать полных URL-адресов.
Использование этого параметра может немного облегчить работу с командой sed в примере выше.
- - proxy string — использовать прокси для запросов [http(s)://host:port].
- - random-agent — использовать случайную строку User-Agent.
Используйте эти ключи, если домен блокирует ваш адрес для слишком большого количества запросов.
- -s — строка status-codes — положительные коды статуса (будут перезаписаны status-codes-blacklist, если установлены).
- -b — строка status-codes-blacklist — отрицательные коды статуса (отменяют status-codes, если они установлены) (по умолчанию «404»).
Используйте эти ключи, если вдруг при нормальной работе сайт возвращает ошибку (см. рисунок ниже) (это часто бывает при определенных настройках редиректа на сайте).
Альтернатива и аналоги GoBuster
GoBuster — это быстрый, простой в использовании и многофункциональный инструмент для поиска файлов методом перебора. Но у него есть множество альтернатив и аналогов:
- Dirbuster — инструмент для поиска скрытых директорий и файлов на веб-сайтах. Он использует словари слов для проверки различных URL-путей, помогая выявить потенциальные уязвимости в веб-приложениях.
- Dirb — это инструмент для сканирования веб-сайтов с открытым исходным кодом, предназначенный для поиска скрытых директорий и файлов. Он работает на основе словарей слов, проверяя различные комбинации URL-путей на веб-сервере. Dirb позволяет выявлять потенциальные слабые места в веб-приложениях, улучшая общую безопасность сайта.
- FeroxBuster — это инструмент для сканирования веб-сайтов с открытым исходным кодом, написанный на языке программирования Go.
- WFuzz — инструмент поддерживает HTTP, HTTPS, FTP, и многие другие протоколы, что делает его универсальным для тестирования различных веб-приложений.
- Burp Smart Buster — тоже самое но в виде расширения для для Burp Suite.