Разведка сайтов. поиск каталогов и файлов. dirb, dirhunt, dirbuster

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER
Регистрация
7 Фев 2020
Сообщения
525
Реакции
98
Репутация
147
В этой статье будем прокачивать скилл пентестера. А именно будем учится проводить предварительную разведку сайта. Мы научимся находить файлы и каталоги на сервере и получать из всего этого полезную информацию. Отмечу, что в качестве цели мы будем использовать виртуальную машину Matasploitable, дабы никого не тревожить без надобности. Хочу сказать, что есть онлайн версия сканера

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.



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

Инструкция по использованию Dirb.
Dirb – это, наверное, одна из самых известных утилит подобного плана и именно она совмещает в себе простоту и эффективность, а потому мы начнем именно с неё. Она уже предустановленна в Kali Linux, потому давай взглянем на файл справки:


Из справки мы видим синтаксис запуска утилиты и какие доступны опции:

======================== HOTKEYS ========================
'n' -> Перейти в следующий каталог.
'q' -> Остановить сканирование. (Сохранит состояние для возобновления)
'r' -> Статистика оставшегося сканирования.
======================== OPTIONS ========================
-a <agent_string> : Укажите свой собственный USER_AGENT.
-b : Использовать путь как есть.
-c <cookie_string> : Установить куки для HTTP-запроса.
-E <certificate> : путь к клиентскому сертификату.
-f : Точная настройка обнаружения NOT_FOUND (404).
-H <header_string> : Добавить пользовательский заголовок в запрос HTTP.
-i : Использовать поиск без учета регистра.
-l : Показать заголовок "Location" если найден.
-N <nf_code> : Игнорировать ответы с этим HTTP-кодом.
-o <output_file> : Сохранить вывод на диск.
-p <proxy[:port]> : Использовать этот прокси. (Стандартный порт 1080)
-P <proxy_username:proxy_password> : Прокси аутентификация.
-r : Не искать рекурсивно.
-R : Интерактивная рекурсия. (Запрос для каждого каталога)
-S : Бесшумный режим. Не показывать проверенные слова. (Для обычных терминалов)
-t : Не вводить окончание '/' в URL.
-u <username:password> : HTTP аутентификация.
-v : Показывать страницы NOT_FOUND.
-w : Не останавливаться на сообщениях WARNING.
-X <extensions> / -x <exts_file> : Добавить каждое слово с этими расширениями.
-z <millisecs> : Добавьте задержку в миллисекундах, чтобы не вызывать лишний флуд.
Принцип работы Dirb в том, что он по словарю перебирает все возможные каталоги и имена файлов, формирует запрос к серверу и анализирует полученный ответ. Причем если говорить именно про файлы, то как видно из справки, можно к именам файлов добавлять какие-либо расширения, либо можно добавить список интересующих расширений из файла.

В комплекте с Dirb идет набор словарей под разные нужды, все они находятся в каталоге: /usr/share/dirb/wordlists/, при желании можно использовать собственные словари, просто вписывая в конце команды путь к нужному словарю

Запустим Dirb со стандартными параметрами и посмотрим на результат:

dirb

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.


Как видишь мы нашли каталоги и файлы которые есть на сервере, а также мы видим код ответа сервера и размер найденного файла, ну а как используем эту информацию уже зависит от наших намерений.

Теперь давай, для примера, найдём все файлы с расширением .php используя при этом, не стандартный, а другой словарь:

dirb

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

/usr/share/dirb/wordlists/big.txt -X .php
В итоге получаем ответ:


Как видишь, Dirb вполне успешно, справляется со своими обязанностями. Но во всей этой истории есть одно НО, а именно – брудфорс. Это не всегда хорошо с точки зрения скрытности, и почти всегда плохо с точки зрения эффективности, потому что создавая словарь под конкретный сайт, ты практически гарантированно можешь что-то упустить, особенно если креативный админ насоздавал каталогов с очень уж непредсказуемыми названиями.

А потому мы плавно переходим к следующей очень полезной утилите.

Инструкция по использованию Dirhunt
Dirhunt – это веб-сканер заточенный под поиск каталогов без использования брудфорса, причем со своей задачей он справляется на отлично. В Kali его нет, потому установим (не забудь установить pip если он не установлен):

Также можно скачать самую последнюю версию:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.



После установки, запустим с параметром help и посмотрим что он может.


Использование: dirhunt [OPTIONS] [URLS]…
Один или несколько доменов или URL. Загрузить URL-адреса из файлов, используя /full/path или
./relative/path.
Опции:
-t, --threads INTEGER Количество потоков для использования.
-x, --exclude-flags TEXT Исключить результаты с этими флагами. Смотрите документацию.
-i, --include-flags TEXT Включить результаты только с этими флагами. Смотрите документацию.
-e, --interesting-extensions TEXT Файлы с интересующим расширением
-f, --interesting-files TEXT Файлы с интересующим именем
--stdout-flags TEXT Вернуть только стандартный поток urls
--progress-enabled / --progress-disabled
--timeout INTEGER
--max-depth INTEGER Максимальное количество ссылок для перехода без увеличения глубины каталогов
--not-follow-subdomains Поддомены будут игнорироваться
--exclude-sources TEXT Исключить исходные движки. Возможные варианты:
robots, virustotal, google
-p, --proxies TEXT Установите один или несколько прокси для чередования между ними
-d, --delay FLOAT Задержка между запросами, чтобы избежать запретов сервером
--not-allow-redirects Не следовать редиректам
--limit INTEGER Максимальное количество страниц, обрабатываемых для поиска каталогов.
--version
--help Показать это сообщение и выйти.
Давай, для примера запустим стандартный анализ:

dirhunt

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.


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

Как видно из справки мы можем не просто исследовать интересующий нас ресурс, а, например, искать файлы только с интересующим нас расширением, или нужным нам именем.

Что касается расширений фалов, то по умолчанию Dirhunt исчет фалы с расширением php, zip, sh, asp, csv и log. Если нужны какие-то другие то нужно использовать параметр -e и через запятую перечислить нужные расширения.

Также нужно знать, что у Dirhunt есть такое понятие как интересные файлы, по умолчанию это файлы с именем: access_log, error_log, error, logs, dump. Если тебя интересуют какие-то другие имена фалов, то их можно искать используя параметр -f и через запятую перечислить нужные имена фалов.

Также есть такое важное понятие как флаги, используя которые тоже можно разными способами влиять на работу Dirhunt, а соответственно подстраивать вывод результатов под свои нужды, собственно флаги как раз и нужны для удобства изучения полученных результатов и состоят они из двух элементов, хотя на самом деле это два разных флага:

– в начале строки в виде кода состояния (соответствует коду ответа сервера)

– в конце строки в скобках

Стандартными флагами считаются:

  • generic
  • redirect
  • not_found
  • html
  • index_of
  • blank
Также иногда встречаются дополнительные флаги, такие как:

  • .nothing
  • .fake
  • wordpress
Фильтровать вывод можно по любым флагам, в любых комбинациях. При этом есть два варианта использования: “исключить” (-x) т.е. из вывода будут убраны все перечисленные в этой опции флаги и второй вариант “включить” (-i) т.е. будут выведены результаты только по интересующим нас флагам. Например:


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

Еще один важный момент: с результатами работы Dirhunt не всегда удобно работать из терминала, особенно если они объёмные, а иногда их нужно сохранить для последующего использования, а потому стоит сохранять результаты в файл используя символ > и указав имя файла для сохранения (тут надо помнить что сохраняются только найденные каталоги), например:

dirhunt

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

> test.txt
Инструкция по использованию DirBuster
Следующая утилита с которой мы познакомимся это DirBuster, она делает всё тоже самое т.е. ищет файлы и каталоги на сервере методом перебора. При этом использовать именно эту программу лично мне не нравится, в основном из-за медленной скорости работы, но знать про её существование стоит. Основное отличие в том, что DirBuster имеет графический интерфейс, а потому кому-то она может понравится больше.

После знакомства с предыдущими утилитами, вряд ли у кого-то возникнут сложности при использовании DirBuster. В поле Target вписываем адрес цели, выбираем метод перебора: либо по словарю (List based), тогда указываем словарь (словари поставляемые в комплекте лежат /usr/share/dirbuster/wordlists/) либо перебором всех символов, тогда выбираем Pure Brute Force, можно также указать интересующие расширения файлов и выбрать что именно искать: файлы, каталоги или и то и другое. Чтобы начать жмём Start, и идем заниматься своими делами потому, что ждать предстоит долго.


По окончании DirBuster покажем нам отчет с результатами работы.


Также можно посмотреть дерево каталогов, которые DirBuster смог найти.


Нажав кнопку Report можно сохранить отчет.
 
Сверху