Dirsearch для OSINT: как и зачем использовать
Если нужно проанализировать рынок и конкурентов, выявить уязвимости или собрать информацию о конкретном человеке, любому простому смертному доступен OSINT — поиск в открытых источниках. Однако открытых источников огромное количество, и для того, чтобы отыскать некоторые из них нужна автоматизация, а точнее, утилиты и сервисы, которые помогают отыскать открытую, но неочевидную информацию.
Например, Dirsearch.
Dirsearch – это инструмент для брутфорс-сканирования веб-серверов на наличие скрытых директорий и файлов. Его можно применять в бизнес-разведке для поиска открытых данных, а также в информационной безопасности, в основном для разведки уязвимостей и тестирования на проникновение.
Говоря проще Dirsearch — один из наиболее рабочих способов поиска скрытых директорий, связанных с сайтом, путей, ссылок, даже если они не отображаются явно и не индексируются. Также он позволяет находить конфигурации, резервные копии, внутренние панели и другие ресурсы, которые можно использовать в бизнес-разведке.
Давайте посмотрим, как он работает, чем полезен, и как встроить его в рабочий процесс. И поговорим о вспомогательных и альтернативных утилитах.
В интерфейсе сайта некоторые файлы и директории не видны, однако доступны напрямую. Это могут быть:
конфигурации (.env, config.php)
резервные копии (.zip, .sql)
внутренние документы
тестовые или забытые разделы (/admin, /test, /internal).
Такие ресурсы появляются из-за ошибок при разработке, тестировании или деплое. Как следствие, они часто остаются без авторизации и содержат чувствительную информацию. Dirsearch помогает их находить, перебирая пути и расширения, через отправку HTTP-запросы к целевому сайту.
HTTP-запрос — это сообщение, которое отправляется от клиента (обычно браузера, сканера или скрипта) к серверу для получения или отправки данных. Именно протокол HTTP (HyperText Transfer Protocol) управляет этим взаимодействием. Стандартный HTTP-запрос состоит из нескольких ключевых компонентов:
1. Метод - что нужно сделать:
GET — получить данные
POST — отправить данные
PUT, DELETE, HEAD и др. — другие действия
2. URL — адрес ресурса, к которому обращаемся. Например:
3. Заголовки (headers) — дополнительная информация:
User-Agent — тип клиента
Cookie — куки
Authorization — данные авторизации
Referer — откуда пришёл запрос
4. Тело (body) — содержимое, отправляемое на сервер (чаще в POST).
Вот как может выглядеть такой запрос:
Это простой GET-запрос на страницу /admin сайта example.com. Dirsearch отправляет такие запросы на сотни или тысячи URL, перебирая пути вроде /admin, /backup.zip, /config.php, и анализирует ответы сервера, чтобы понять, что существует и доступно.
Все значения берутся из заранее созданного словаря популярных название директорий. На каждый подобранный путь сервис проверяет, существует ли ресурс, и анализирует код ответа:
- 200 — найден (отлично, значит страница существует, и мы можем ее посетить)
- 403 — доступ запрещён (однако, это значит, что путь существует)
- 404 — не существует
- 301/302 — редирект на иной источник (обычно вы также получите конечную ссылку, на которую ведет редирект)
- 401 — ресурс требует авторизацию
Далее необходимо взять допустимые коды, то есть те, согласно которым сайт готов предоставить информацию. Обычно это коды 200, 301, 302. Код 401 мы не разбираем, так как подбор пароля для получения доступа к закрытым страницам является нарушением закона. Выбрав допустимые коды мы получаем список ссылок, которые необходимо изучить. Это и есть тот самый источник данных, который мы искали. Ссылки могут содержать различные списки и базы данных, изображения и так далее
Инструмент работает по HTTP/HTTPS, а еще поддерживает прокси, случайный user-agent, заголовки, cookies, задержки и тайм-ауты, что позволяет работать с возможными исключениями и ресурсами, стремящимися защититься от автоматизированных проверок. Если вы регулярно проводите массовые проверки и обрабатываете результат автоматически, то вывод можно сохранить в TXT, CSV, JSON или XML.
Установка dirsearch
Утилита написана на Python и поддерживает Linux, macOS, Windows.
Пример запуска:
Параметры:
-u — адрес
-e — расширения файлов для перебора
По умолчанию dirsearch использует словарь db/dict.txt: он базовый и подходит для теста, а для боевых задач лучше использовать расширенный список.
Настройка параметров
Dirsearch гибко настраивается. Вот ключевые опции:
- --random-agent — случайный user-agent
- --timeout=10 — тайм-аут в секундах
- --delay=1 — пауза между запросами
- --proxy=http://127.0.0.1:9050 — работа через прокси (например, Tor)
- --header="..." — произвольный заголовок
- --cookie="..." — куки вручную
- --method=POST — смена метода запроса
Конфигурацию можно задать в dirsearch.ini.
Использование собственных словарей
Результаты dirsearch напрямую зависят от качества словаря. Стандартный словарь многие считают ограниченным, так как он содержит только наиболее распространенные наименования директорой, поэтому можно использовать вот что:
- SecLists — https://github.com/danielmiessler/SecLists Содержит списки для директорий, конфигов, панелей, CMS, багов.
- Кастомные списки, которые составляются вручную под цель: названия отделов, продукты, имена, субдомены.
Пример запуска с кастомным словарём:
Словарь — обычный текстовый файл, одна строка — один путь.
Интерпретация ответов
Dirsearch выводит коды состояния HTTP. Как я уже писала выше, необходимо изучить ссылки, которые соответствуют успешным кодам. Вероятнее всего первым делом вы наткнетесь на хранилище логотипов и какую-нибудь техническую информацию. Однако иногда по таким ссылкам размещены списки сотрудников, внутренние презентации, пресс-релизы, списки объектов недвижимости и многое другое.
Результаты можно сразу собрать в отдельный документ или промежуточным шагом можно воспользоваться сохранением результатов через команду:
JSON-вывод подходит для последующей обработки.
Вот чем могут быть полезны коды, которые возвращает Dirsearch
200 — вы проверили URL http://example.com/admin, и получили код 200. Это значит, что страница «/admin» существует и ее можно открыть. Вы можете исследовать админ-панель на наличие уязвимостей: отсутствие авторизации или известные уязвимости в используемом программном обеспечении. Найденная админ-панель может указывать на то, что ее сможет найти и злоумышленник.\
403 — вы попробовали открыть http://example.com/secrets.txt, и получили код 403. Это говорит о том, что файл существует, но у вас нет прав на его просмотр. Это может указывать на то, что на сайте есть конфиденциальные данные, которые защищены. Стоит изучить метод авторизации, чтобы понять, как можно получить доступ.
301/302 — вы сделали запрос к http://example.com/old-page и получили код 301 с указанием на http://example.com/new-page. Это значит, что старая страница была перемещена на новую. Если вы увидите много редиректов на админ-панели, это может указать на изменение структуры сайта, поэтому убедитесь, что редиректы не ведут к уязвимым старым страницам или что сайт не перенаправляет на фишинговые ресурсы.
Примеры из практики
- В 2024 году сканирование корпоративного сайта обнаружило директорию /backups с базой клиентов внутри. Данные устаревшие, но содержали имена, электронные почты и телефоны в незащищенной папке.
- При сканировании технического блога оказалось, что в каталоге /drafts находились PDF-файлы с черновиками статей и списком планов. Это позволило понять будущие темы и специализацию автора.
- На государственном портале Dirsearch нашёл /archive с архивными отчётами, недоступными через интерфейс. Данные не индексировались, но открывались по прямой ссылке.
Сценарии применения
Несмотря на то, что я описала Dirsearch как утилиту для бизнес-разведки, ее чаще используют в информационной безопасности. Вот где он может быть полезен:
1. Анализ фишинговой инфраструктуры
Dirsearch помогает выявить панели управления, загруженные формы, логи и многое другое. Это позволяет оценить структуру ресурса и его предназначение.
2. Подготовка к пентесту. Перед началом тестирования dirsearch может обнаружить старые, забытые директории (/test, /dev, /old). Часто там остаются незакрытые уязвимости или откровенные дыры
3. Поиск утечек. Резервные копии, временные файлы, дампы баз иногда доступны по прямым ссылкам. Dirsearch находит их по расширениям .zip, .sql, .bak, .tar. Кроме этого порой можно найти документы под названием financial_reports_2023.pdf, которые, безусловно, будут очень интересны для изучения.
Автоматизация
Dirsearch легко интегрируется в скрипты. Вот пример на bash для пакетного сканирования:
Такой подход удобно запускать кроном, встраивать в пайплайн или использовать для периодического мониторинга целей в том случае, если вы регулярно мониторите уровень защиты определенного списка целей.
Сбор старых URL: Waybackurls и gau
Waybackurls и GAU — это инструменты, которые помогают извлекать исторические URL-адреса веб-сайтов из публичных интернет-архивов, таких как Wayback Machine. Эти ссылки могли быть удалены или изменены на текущей версии сайта, но остались доступными в архиве. Такой подход особенно полезен в разведке веб-приложений, поскольку позволяет находить скрытые, забытые или уязвимые эндпоинты, которые больше не видны в обычном сканировании. Нам это интересно потому, что такие публичные индексы можно использовать как входной список для Dirsearch.
Это позволяет выявлять:
- Забытые административные интерфейсы, оставшиеся доступными.
- Устаревшие версии API, которые могут содержать уязвимости.
- Архивные резервные копии (например, backup.zip, db.sql), случайно попавшие в индекс.
- Списки сотрудников, товаров, клиентов и многое другое.
Сбор URL
Из Wayback Machine
Из нескольких источников (включая AlienVault, Common Crawl):
Объединение:
Использование с dirsearch
Проверка собранных URL:
Фокус на интересующих путях (например, админки):
Такой подход даёт преимущество: dirsearch работает не вслепую, а по реальным историческим данным.
Альтернативы и вспомогательные инструменты
Gobuster
Инструмент на Go для перебора директорий, файлов и поддоменов. Быстр, стабилен, но требует ручной подготовки параметров.
Вот пример запуска:
-u — адрес
-w — словарь
-t — число потоков
Добавить расширения:
-x php,html
Фильтрация кодов:
-s 200,301
Сохранение:
-o output.txt
Для поиска поддоменов:
Gobuster подходит для задач, где важна скорость и стабильность, но с минимальной гибкостью в плане обхода фильтров и маскировки.
Wfuzz
Инструмент на Python для фаззинга веб-приложений. Поддерживает перебор директорий, параметров, POST-данных, заголовков, авторизации. Высокая гибкость настройки, но требует больше времени на конфигурацию. Пользуйтесь им для глубокого анализа и тестирования.
Простой запуск:
Перебор параметров:
POST-запросы:
Авторизация:
Фильтрация:
Убрать 404:
--hc 404
Исключить по длине:
--hh 100
Wfuzz подходит для сложных случаев, особенно когда нужно подставлять данные в нестандартные части запроса или работать с авторизацией.
Этические аспекты
Использование Dirsearch и других инструментов без разрешения владельца ресурса может нарушать закон при неправильном их применении. Например, запрещено пытаться получить доступ к ресурсам, доступ на которые ограничен, даже если это ограничение сводится к логину и паролю admin-admin. В России это подпадает под статью 272 УК РФ (несанкционированный доступ к информации). В странах ЕС — под регуляции GDPR и местные нормы. Кроме этого важно понимать, что если вы случайно наткнулись на открытый список, содержащий персональные данные или иную конфиденциальную информацию, вы не имеете права пользоваться найденной базой.
Dirsearch, как и другие утилиты, должен использоваться в рамках допустимого: не как инструмент атаки, а как средство анализа