Рекогносцировка для баг-баунти: 8 инструментов необходимых для эффективного сбора информации
Всем известно, что рекогносцировка является важнейшим этапом в баг-баунти и тестировании веб-приложений на проникновение. Охотники за уязвимостями, проводящие качественную рекогносцировку, получают заслуженные вознаграждения, так как чаще других обнаруживают скрытые функции и ресурсы. Это дает им преимущество и значительно увеличивает вероятность нахождения уязвимостей.
Тем не менее, не каждый охотник за уязвимостями может позволить себе затрачивать время и усилия на проведение тщательной рекогносцировки для картографирования всех элементов, находящихся в рамках программы.
Эта статья призвана помочь вам лучше понять, что нужно для эффективной рекогносцировки и поиска большего количества уязвимостей в вашей любимой баг-баунти программе.
Рекогносцировка играет ключевую роль в баг-баунти, являясь первым этапом любого теста безопасности или теста на проникновение. Пропуск этого этапа может привести к тому, что некоторые приложения или функции, находящиеся в рамках программы, останутся непроверенными, что снижает вероятность нахождения уязвимостей.
Тем не менее, рекогносцировка — это повторяющаяся и утомительная задача, которую необходимо выполнять при каждом запуске новой программы баг-баунти. К счастью, существует множество автоматизированных инструментов с открытым исходным кодом, способных облегчить этот процесс. Рассмотрим 8 наиболее часто используемых инструментов, которые охотники за уязвимостями применяют для автоматизации рекогносцировки.
Автоматизированные инструменты
В этой статье мы обсудим 8 основных инструментов, которые помогут вам выполнить комплексное сканирование для сбора информации о цели. Каждый из этих инструментов имеет свои уникальные преимущества, но при желании можно также использовать альтернативные средства, если они больше вам подходят.
Начнем с первого шага — перечисления активов с помощью Amass.
Amass — это инструмент с открытым исходным кодом для углубленного управления поверхностью атаки, разработанный OWASP. Он предназначен для сбора информации об активах с использованием как пассивных, так и активных методов перечисления. Amass объединяет различные источники данных и методы перечисления, помогая выявить все хосты в списке ваших целей.
Для быстрой проверки поддоменов корневого домена (используя только пассивные источники) можно воспользоваться следующей командой:
amass enum -d example.com -passive
Если вы хотите глубже изучить возможности Amass, мы создали для вас подробное руководство, доступное в блоге: Ссылка на статью: Hunting for Subdomains.
Этот инструмент также легко устанавливается и настраивается; он доступен на GitHub: Ссылка на репозиторий: OWASP Amass.
Совет! Настройте API-ключи в конфигурационном файле, чтобы Amass мог использовать больше источников и предоставлять более точные результаты. Некоторые внешние источники предоставляют бесплатные API-ключи с ограниченным использованием.
Другой способ найти связанные активы или домены вашей цели — использовать поисковые системы.
Поисковые системы позволяют находить больше информации о цели, начиная с индексированных файлов, панелей входа и административных порталов до новых поддоменов. Как охотник за уязвимостями, вы всегда должны использовать Google, Bing и Github для поиска дополнительной информации.
Наиболее часто используемые фильтры поиска
Ниже приведен список наиболее популярных фильтров поиска, которые можно использовать для нахождения интересных индексированных файлов, часто содержащих конфиденциальные данные:
Еще один широко используемый сервис — GitHub. Компании часто используют GitHub для развертывания и хранения кода, а также для организации совместной работы.
GitHub-разведка чрезвычайно ценна, так как некоторые компании случайно загружают конфиденциальные данные в общедоступные репозитории. Это может открыть доступ к административным порталам с повышенными привилегиями для неавторизованных пользователей. В других случаях можно найти ссылки на скрытые активы, файлы или параметры.
Тем не менее, анализ GitHub может быть сложной задачей, особенно при работе с крупной целью, когда непонятно, с чего начать и что искать. К счастью, существуют инструменты, которые облегчают этот процесс, такие как Trufflehog и Gitleaks.
- Trufflehog — инструмент для поиска секретов и конфиденциальных данных в коде
- Gitleaks — инструмент для поиска утечек информации и конфиденциальных данных в репозиториях Git
После того как вы составили список целевых систем, хостов и поддоменов, необходимо отфильтровать неработающие хосты. Eyewitness — это мощный инструмент, который помогает не только с проверкой активных хостов и их скриншотами, но и с выполнением базового анализа технологий. Это позволяет быстро просматривать список целей и оценивать каждый хост по отдельности. Такой подход помогает легко определить страницы входа (и административные панели), а также другие интересные или подозрительные HTTP-ответы.
Анализ технологий — отличный способ узнать, на каких технологиях или сервисах работает ваша цель. Однако Eyewitness способен выполнять только базовый анализ активных хостов.
Чтобы пойти дальше, можно использовать Wappalyzer (расширение для браузера) или HTTPX (инструмент, работающий на базе Wappalyzer), для анализа списка целей. Понимание технологий и сервисов, на которых работает целевая система, является следующим шагом в разведке и существенно поможет в дальнейшем при поиске уязвимостей.
Обнаружение контента играет важную роль в разведке, как мы уже обсуждали в одной из наших недавних статей. Охотники за уязвимостями, которые занимаются обнаружением контента, обычно получают хорошие вознаграждения, так как часто находят неиспользуемые и непроверенные функции, функциональные возможности и конечные точки. Это может значительно увеличить ваши шансы на нахождение новых уязвимостей.
GAU (сокращение от GetAllUrls) — это инструмент с открытым исходным кодом, который поможет вам быстро извлекать URL-адреса, ссылки и другие индексированные файлы из Wayback Machine (Интернет-архив) и других систем архивации и индексации!
Этот инструмент также легко использовать. Чтобы вернуть ссылки из списка целевых адресов, вы можете воспользоваться следующей командой:
cat targets.txt | gau
Брутфорс — еще один метод для выявления скрытых API-эндпоинтов, администраторских панелей или других файлов, которые ранее нигде не упоминались.
Ffuf — мощный инструмент, способный выполнять брутфорс практически всего по протоколу HTTP, от обычного обнаружения контента (таких как ссылки и файлы) до виртуальных хостов и параметров с очень высокой скоростью!
Вот команда для выполнения брутфорсинга на вашем целевом объекте:
ffuf -u https://example.com -w /path/to/wordlist.txt
Статья в которой подробно рассматриваются его возможности.
Параметры запросов и тела запроса — это места, где принимается большинство пользовательских вводов и где возникают большинство уязвимостей. Брутфорс параметров — надежный способ обнаружения принимаемых входных параметров и запуска непреднамеренных действий, которые часто приводят к уязвимостям в безопасности.
Arjun — мощный инструмент, который поддерживает брутфорс параметров в нескольких различных телах HTTP-запросов и типах содержимого:
arjun -u https://example.com/example.php
Совет! Если вы хотите выполнить брутфорс параметров с помощью Burp Suite, обратите внимание на расширение ParamMiner! Оно способно находить скрытые параметры и часто используется для выявления уязвимостей, связанных с отравлением веб-кэша!
JavaScript-файлы — это кладезь информации для охотников за уязвимостями, поскольку они часто содержат множество ссылок и конечных точек, которые нельзя было найти с помощью других методов обнаружения контента.
LinkFinder — это простой инструмент, который отлично справляется с задачей нахождения новых ссылок, URL-адресов и других упомянутых файлов и конечных точек в JavaScript-коде.
LinkFinder также прост в использовании, вот как быстро проанализировать JavaScript-файл:
python3 linkfinder.py -i https://example.com/app.js
Все мы знаем, что разведка — это важная фаза в охоте за уязвимостями. В этой статье были рассмотрены 8 наиболее необходимых инструментов, которые, по нашему мнению, могут помочь вам провести более качественную разведку и увеличить ваши шансы по обнаружению уязвимостей в системе безопасности.
Теперь пришло время проверить свои навыки (и новый инструментарий) на практике!