Авторские курсы Михаила Тарасова

Как автоматизировать поиск багов в Bug Bounty?

Как автоматизировать поиск багов в Bug Bounty?

Слушай, старина, ты и я знаем, что 90% времени в баг баунти — это тупая, монотонная разведка. Перебирать субдомены, тыкать в порты, фаззить директории… Рутина убивает. А пока мы этим занимаемся, какой-нибудь шустрый малец уводит из-под носа XSS-ку на главном домене, потому что он запустил скрипт и пошел пить смузи. Хватит это терпеть. Наша задача — построить конвейер, который будет просеивать весь этот мусор за нас и приносить на блюдечке только то, где пахнет жареным.

Философия проста: Автоматизируем всё, что можно автоматизировать. Наше время — самый ценный ресурс. Его мы тратим на слом логики, на написание хитрых эксплойтов, на обход WAF, а не на запуск nmap в сотый раз.
Я — пентестер: собираю свой конвейер
Точка входа: Список доменов из программы на Standoff 365/Yandex. Обычно это *.example.com.
Что бросилось в глаза: Объём работы. Один *.example.com может скрывать тысячи субдоменов, сотни вебов. Руками это не перелопатить, не сохранив рассудок. Нужен системный подход.

Возможные векторы (они же — этапы нашего конвейера):
1. Сбор живых активов (Recon).
2. Сканирование на известные уязвимости (Vulnerability Scanning).
3. Глубокий анализ веба (Web Deep Dive).
4. Уведомления (Alerting).
Погнали по шагам. Все команды — для твоего bash или zsh.

Шаг 1: Разведка и сбор доменов (Recon on Steroids)
Сначала нам нужен полный, исчерпывающий список субдоменов. Объединяем всё, что есть.

Что вижу, как думаю: Окей, у нас есть alive.txt — список живых вебов. Уже не так страшно. httpx — золото, а не утилита. Сразу отсеивает мусор, показывает редиректы, можно фильтровать по коду ответа. Уже на этом этапе можно найти интересное — например, хосты с кодом 403, которые могут быть доступны при обходе через X-Forwarded-For или другие заголовки.

Шаг 2: Сканирование на низко висящие фрукты (Low-Hanging Fruits)
Теперь по этому списку живых хостов мы натравливаем Nuclei. Это наш автомат Калашникова — простой, надежный, с огромным количеством готовых “патронов” (шаблонов).

Что вижу, как думаю: nuclei отработал. В nuclei_findings.txt — потенциальные точки входа. Открытые .git, .env файлы, панели Jenkins без пароля, известные CVE в какой-нибудь старой Jira. Это уже не просто “мы нашли субдомен”, это — конкретный, проверяемый вектор. 90% находок будут мусором или false positive, но оставшиеся 10% — наш хлеб. Главное — регулярно обновлять шаблоны: nuclei -update-templates.

Шаг 3: Глубокий анализ веба (Getting Deeper)
Параллельно с Nuclei, натравливаем на alive.txt сборщики URL-ов. Нам нужны все возможные эндпоинты, параметры, всё, что когда-либо было в индексе или JS-файлах.

Что вижу, как думаю: Это уже похоже на настоящую охоту. Мы собрали исторические данные, вытащили параметры. params.txt — это карта сокровищ. Можно написать простенький скрипт, который будет подставлять в эти параметры пэйлоады для SSRF, Open Redirect, SQLi. dalfox автоматизирует поиск XSS. Да, он шумный, но на широком скоупе может найти что-то в забытом богом эндпоинте.

Шаг 4: Сборка всего в один скрипт (The Conveyor Belt)
А теперь, братан, магия bash. Собираем всё в один файл, например, hunt.sh.

Что вижу, как думаю: Вот он, наш комбайн. Запустил его на ночь на VPS-ке, а утром смотришь результаты. Это база. Её можно и нужно расширять: добавлять ffuf для фаззинга директорий, sqlmap --batch (осторожно!), gospider для более умного краулинга. Главное — принцип. Вход -> обработка -> выход -> следующий инструмент.

Советы
1. Непрерывный мониторинг. Засунь этот скрипт в cron и запускай раз в день/неделю. Результаты сохраняй в Git. Команда git diff покажет тебе новые субдомены, новые открытые порты, новые находки Nuclei. Это золотая жила.
2. Визуальная разведка. Добавь в конвейер aquatone или gowitness. Иногда один взгляд на скриншоты сотен сайтов позволяет мгновенно найти дефолтные страницы, панели администрирования или страницы с ошибками.
3. Умные уведомления. Напиши обвязку, которая будет парсить выхлоп nuclei и других инструментов. Если найдено что-то с тегом high или critical, скрипт должен слать тебе уведомление в Telegram или Slack. Так ты узнаешь о находке первым.
4. Анализ JS-файлов. Из urls.txt выгребай все .js файлы (grep '\.js$' urls.txt). Скачивай их и прогоняй через LinkFinder или secretfinder. В JS-ках часто находят скрытые эндпоинты, API-ключи и прочую дичь.
5. Облачная разведка. Если цель сидит в AWS/Azure/GCP, обычного рекона субдоменов мало. Используй инструменты вроде S3Scanner или cloud_enum для поиска открытых бакетов и других облачных ресурсов. Туда часто забывают поставить пароль.
6. Не будь тупым сканером. Автоматизация — это для фильтрации шума. Когда твой конвейер принес тебе что-то интересное (например, странный API-эндпоинт), вот тут и начинается настоящая работа. Твоя, а не скрипта. Руками, с Burp Repeater, с головой.

Всё, братан. Теперь иди и собери свою машину смерти. Меньше рутины — больше взломов.

Мои курсы