Как я отдал Google Dorking на откуп нейросетевым агентам
Каждый, кто хоть раз участвовал в bug bounty или проводил аудит безопасности собственных веб-сервисов, знает эту рутину. Сидишь в браузере, методично подставляешь в поиск операторы вроде site:example.com ext:env или filetype:log, ловишь бесконечные капчи от Google, копируешь урлы и руками перебираешь сотни страниц поисковой выдачи в поисках забытых конфигов.
Работа полезная, но чудовищно занудная. В процессе 95% времени уходит на отсеивание информационного шума вроде старых PDF-инструкций, где просто встретилось слово «password». На днях наткнулся на компактный репозиторий DorkAgent, автор которого попытался автоматизировать весь этот пайплайн с помощью связки поискового API и языковых моделей.
Что под капотом
Проект написан на Python и решает две конкретные боли: капчи поисковиков и ручной анализ результатов выдачи.
Вместо прямого парсинга HTML, который Google банит через три запроса, DorkAgent ходит в выдачу через Serper API. Это сервис, отдающий чистый JSON со страницами поиска. А вот полученную пачку ссылок и сниппетов уже анализирует LLM-агент. Причем агент не просто ищет совпадение по тексту, а оценивает контекст: есть ли в найденном файле признаки реальной утечки ключей доступа, забытые панели администратора или параметры для инъекций.
Архитектура опирается на библиотеку CrewAI. Задачи и роли агентов разбиты по модулям, а структурированные данные на выходе валидируются через схемы Pydantic.
С какими моделями работает
В ранних версиях скрипт был жестко завязан на одну модель, но к версии 1.4 проект переписали. Теперь поддерживается выбор провайдера:
- OpenAI (модели семейства GPT-4)
- Anthropic Claude
- Google Gemini (включая Gemini Flash 2.0, у которого есть бесплатный тир с щедрыми лимитами)
Автор добавил возможность гибридной связки, когда поисковые задачи и финальный синтез отчета можно распределять между разными сетками. Если не хочется тратить баланс на платных API, связка Serper + Gemini Flash обходится буквально в копейки на первых порах.
Как запустить
Входной порог утилиты сведен к минимуму. При первом запуске скрипт сам проверяет окружение и подтягивает недостающие пакеты, после чего в интерактивном режиме спрашивает ключи и сохраняет их в локальный .env.
Клонируем репозиторий и запускаем основной скрипт:
git clone https://github.com/yee-yore/DorkAgent.git
cd DorkAgent
python dorkagent.py
Для работы обязательно понадобится токен от serper.dev и хотя бы один ключ LLM (например, GEMINI_API_KEY или OPENAI_API_KEY).
Что умеет на практике
После старта агент запускает набор типовых дорков по целевому домену. В чейнджлоге видно, как автор оттачивал промпты и список запросов: убрал мусорные дорки на поиск документов со словом «Confidential», добавил шаблоны для поиска панелей IIS Windows Server и конфигов.
В процессе выполнения агент формирует структурированный отчет:
- Классифицирует найденные утечки по уровню риска.
- Выделяет уязвимые параметры и потенциальные пейлоады в URL.
- Сохраняет результат в отдельный файл с таймстемпом вида
YYMMDD_HHMMSS.
Настройки поиска можно крутить под себя. Например, в serper_dev_tool.py регулируется глубина выборки и временной диапазон индексации:
# Поиск за последний месяц (qdr:m) или неделю (qdr:w)
payload = json.dumps({
"q": search_query,
"num": self.n_results,
"tbs": "qdr:m"
})
Это удобно, если вы мониторите появление новых поддоменов или свежих утечек у конкретной компании за последние пару недель.
Ложка дегтя
Репозиторий пока небольшой, у него всего около трехсот звезд. Документация в README скромная, часть нюансов приходится смотреть прямо в исходниках tasks.py и agents.py.
Если вы захотите добавить свои специфические дорки, готового конфиг-файла в yaml или json нет. Придется лезть в код функции task() и прописывать шаблоны запросов вручную. Также нужно помнить про лимиты Serper: бесплатного пула запросов хватит на тесты, но для глубокого сканирования широкого скоупа придется пополнять счет.
Стоит ли пробовать
DorkAgent пригодится в двух случаях. Во-первых, если вы занимаетесь OSINT или пентестом и устали вручную прокликивать поисковую выдачу. Во-вторых, если вы хотите посмотреть на живой пример того, как CrewAI применяется для прикладных задач безопасности, а не для абстрактного написания статей или пересказа текстов.
Код чистый, разбит на понятные модули config.py, agents.py, tasks.py и utils.py, так что его легко форкнуть и адаптировать под свои пайплайны разведки.
