На проверке Автоматизация recon для red team с помощью ИИ: от дорков до атрибуции через Claude-OSINT

Ночная лаборатория разведки: два монитора светятся зелёным кодом сканирования поддоменов и янтарной схемой JSON с меткой T1593. Тёплая лампа освещает клавиатуру среди спутанных Ethernet-кабелей и к...


Год назад я подключил мультиагентную систему на CrewAI к своему bash-пайплайну для поиска information disclosure в проиндексированных PDF-файлах - и получил 200+ «находок», из которых ровно три оказались валидными. Остальные содержали слово «password» в заголовках документации. Знакомо? Bronxi из Bugcrowd описывает ту же картину: его AI-агенты генерировали ложные срабатывания десятками, пока он не перестроил архитектуру - оставил bash для сбора данных, а LLM отдал только классификацию и генерацию отчётов. Этот опыт запустил мою цепочку экспериментов с Claude-OSINT: от слепого прогона LLM на сырых данных до рабочего пайплайна, где Claude через function calling корреляет результаты amass, subfinder и Shodan, а я трачу время только на валидацию финального output.

Бизнес-логика reconnaissance-цепочки​

Reconnaissance в терминах MITRE ATT&CK покрывает целый пласт тактик: от поиска по открытым веб-ресурсам - Search Open Websites/Domains (T1593, Reconnaissance) и Search Engines (T1593.002, Reconnaissance) - до анализа технических баз данных - Search Open Technical Databases (T1596, Reconnaissance), WHOIS (T1596.002, Reconnaissance) - и сбора идентификационных данных жертвы - Gather Victim Identity Information (T1589, Reconnaissance). Подробнее - в нашем обзоре безопасность llm атаки.

Финальная цель recon - не список поддоменов и не отчёт nuclei. Это attack-path map: граф связей «домен → IP → сертификат → организация → другой домен → открытый порт → утечка ключа → вектор входа». Чем полнее граф, тем быстрее переход к exploitation. В bug bounty скорость recon напрямую конвертируется в деньги: кто первый раскопал забытый staging-эндпоинт с дефолтными кредами - тот и получил bounty.

Проблема классического подхода - не отсутствие инструментов, а объём ручной корреляции. Subfinder выдаёт 500 поддоменов, httpx пробует каждый, nuclei сканирует всё - и ты сидишь перед 80-страничным отчётом, вручную решая, что из этого реально эксплуатируемо. На пятом часу глаза замыливаются. Автоматизация recon для red team с помощью ИИ решает именно эту задачу - не сбор данных (тулы справляются), а их корреляцию и приоритизацию.

Claude-OSINT автоматизация разведки: архитектура пайплайна​

Предусловия и требования к окружению​

  • OS: Linux (Kali/Parrot/Ubuntu 22.04+), macOS. Windows - через WSL2
  • RAM: минимум 8 GB (для локальных тулов). VRAM не нужен - inference на стороне Anthropic API
  • API: Anthropic API key (Claude Sonnet или Opus). Бюджет: $5–15 на один полный recon scope из 500+ поддоменов
  • Зависимости: Python 3.10+, subfinder, httpx, nuclei, amass в PATH
  • Сеть: доступ к API Anthropic, Shodan API key, crt.sh, SecurityTrails (опционально)

AI skills для кибербезопасности: структура скиллов​

Главная ошибка при внедрении ИИ для пентеста и разведки - скармливать LLM сырой сетевой трафик или просить «найди уязвимости». Я это проходил. Рабочая архитектура другая:
  1. Традиционные тулы собирают данные (subfinder, amass, httpx, Shodan API)
  2. Claude через tool use получает результаты в JSON
  3. LLM выполняет корреляцию, классификацию и приоритизацию
  4. Человек валидирует финальный output
Каждый скилл - обёртка над CLI-инструментом с JSON-схемой входа/выхода:
Python:
tools = [
    {"name": "subdomain_enum",
     "description": "Run subfinder for target domain",
     "input_schema": {"type": "object",
         "properties": {"domain": {"type": "string"}},
         "required": ["domain"]}},
    {"name": "cert_search",
     "description": "Query crt.sh for CT logs",
     "input_schema": {"type": "object",
         "properties": {"domain": {"type": "string"}},
         "required": ["domain"]}}
]
Аналогично создаются скиллы для whois_lookup (T1596.002, WHOIS), shodan_search (T1596, Search Open Technical Databases), google_dork (T1593.002, Search Engines) и favicon_hash. Критически важно: каждый скилл возвращает JSON, а не текстовый blob - иначе LLM начинает галлюцинировать при парсинге. Проверено на собственных нервах.

Промпт-инженерия для AI recon инструментов​

Системный промпт для Claude при OSINT-задаче - не «найди уязвимости», а явный порядок вызовов с требованием структурированного выхода:
Код:
You are an OSINT analyst. Build an infrastructure map for {target}.
1. subdomain_enum → collect subdomains
2. cert_search → find related domains via CT logs
3. For each unique IP: shodan_search → identify services
4. whois_lookup → identify registrant patterns
5. Correlate: group by registrant, IP range, cert issuer
Output: JSON {related_domains[], ip_map{}, priority_targets[]}
Без явного порядка Claude вызывает инструменты хаотично и жрёт токены впустую. Без JSON-формата на выходе - генерирует свободный текст, который невозможно программатически обработать на следующем этапе. Я потратил примерно $40 на эксперименты, прежде чем пришёл к этой структуре.

Практический пайплайн: от Google dorks для OSINT до атрибуции целей​

Dorking с AI-корреляцией​

[Применимо: внешний пентест, bug bounty]

Работает если: scope определён, домены известны. Не работает если: target за CDN с wildcard-сертификатами (Cloudflare Enterprise), скрывающим реальную инфраструктуру.

Стандартный подход: серия дорков (site:target.com filetype:pdf "confidential", site:target.com inurl:admin, site:target.com intitle:"index of") через API или googler, скачивание результатов, ручная проверка каждого файла.

AI-augmented подход: Claude получает текст файла и промпт с определением sensitive data - API-ключи конкретных паттернов (AWS AKIA..., GitHub ghp_...), внутренние IP-адреса, credentials в формате user:pass. Это убирает 85–90% false positives из серии «слово password в заголовке раздела документации». Те самые 200 находок, с которых начиналась статья, сжимаются до 10–15 кандидатов.

Когда техника НЕ работает: Google rate-limiting при массовом dorking (>100 запросов за сессию). Решение - распределение по времени, SerpAPI или Zenserp как backend. Также бесполезно для целей без проиндексированного контента.

Subdomain enumeration и AI-обогащение​

[Применимо: внешний пентест, bug bounty]

Работает если: у цели несколько доменов и поддоменов. Не работает если: target - single-page application на одном домене без видимой инфраструктуры.

Цепочка subfinder -d target.com -allhttpx -status-code -title -tech-detect -json - стандарт. Red team automation инструменты на основе AI добавляют слой семантического анализа: по title и response headers Claude классифицирует каждый поддомен (staging/prod/dev/internal tool), определяет стек без ручного анализа, приоритизирует по потенциальной attack surface.

Пример: staging-api.target.com с title «Django Debug» и статусом 200 получает приоритет HIGH, а www.target.com за CloudFlare WAF - LOW. Вручную эту классификацию для 500 поддоменов делать - полдня коту под хвост.

Атрибуция целей через OSINT: сертификаты и WHOIS​

[Применимо: внешний пентест, bug bounty, OSINT-расследования]

Работает если: цель использует собственные сертификаты (не wildcard от CDN-провайдера). Не работает если: все домены за Cloudflare/AWS ALB с их сертификатами - CT-логи покажут только CDN.

Запрос к crt.sh (curl -s "https://crt.sh/?q=%25.target.com&output=json") возвращает все сертификаты для домена и поддоменов. Claude анализирует issuer_name, common_name, name_value и ищет паттерны:
  • Сертификаты с SAN (Subject Alternative Name), покрывающие несколько доменов → связанные активы, которые могут быть вне заявленного scope
  • Одинаковый registrant в WHOIS для разных доменов → расширение attack surface
  • Favicon hash (mmh3 от favicon.ico) → поиск через Shodan http.favicon.hash:XXXXXX обнаруживает серверы без DNS-записей
Вот здесь OSINT автоматизация через LLM экономит реальные часы. Корреляция CT-логов, WHOIS-истории и Shodan-результатов вручную - это десятки вкладок и таблица в Excel, в которой через час уже сам не разберёшься. Claude делает это за один вызов с JSON-выходом.

Secret scanning в bug bounty с AI-валидацией​

[Применимо: внешний пентест, bug bounty]

Работает если: у цели есть публичные репозитории или проиндексированные файлы. Не работает если: нет public-facing кода и документации.

Традиционные инструменты (trufflehog, gitleaks) находят паттерны строк, похожих на секреты. Процент false positives - 70–80%: base64-строки из README, примеры API-ключей из документации, отозванные токены.

Claude получает список находок с контекстом (5 строк до и после каждого match) и классифицирует:
  • Валидный секрет - паттерн соответствует формату (AWS AKIA, Slack webhook https://hooks.slack.com/), контекст указывает на production
  • Пример из документации - строка внутри code block с комментарием «example» или «placeholder»
  • Отозванный - рядом комментарий о ротации или DEPRECATED
Это сокращает ручную верификацию с 200 строк до 10–15 реальных кандидатов. Автоматизация bug bounty recon на этом этапе окупается моментально - один валидный AWS-ключ в публичном репозитории может стоить $1000+ bounty.

Attack-path mapping​

Финальный этап - Claude получает все собранные данные и строит карту атаки:
Код:
Priority targets:
1. staging.target.com (Django 4.2, no auth) → HIGH
   Found: AWS_ACCESS_KEY in /static/config.js.bak
   Path: leaked key → S3 enumeration → internal data
2. api-v1.target.com (Express, outdated) → MEDIUM
   Nuclei match: known CVE in framework version
   Path: exploit → internal network pivot
Это не автоматическая эксплуатация. Это карта для пентестера, где каждый путь содержит обоснование и приоритет. Решение о дальнейших действиях остаётся за человеком. AI-агенты для пентеста - разведка на основе открытых данных с интеллектуальной надстройкой, не автопилот. Claude не нажмёт за вас Enter на exploit.

Ограничения автоматизации: когда AI recon инструменты бесполезны​

Галлюцинации в OSINT-контексте​

Главный риск - ложная атрибуция. Claude может «увидеть» связь между доменами, которой нет: совпадение фрагмента WHOIS, похожий naming pattern, общий /24 IP-диапазон у разных организаций. На одном проекте Claude уверенно заявил, что два домена принадлежат одной организации на основании совпадения города в WHOIS. Город - Москва. Ну спасибо, Шерлок.

Практическое правило: если LLM утверждает связь между активами - верификация через минимум два независимых источника (WHOIS + cert + IP ownership).

По данным исследования Bugcrowd, полностью автономные AI-решения для пентеста по-прежнему требуют человеческого вмешательства. Поведение агентов зависит от промпта и контекста, предоставленного пользователем.

Стоимость vs скорость​

Полный recon для scope из 500+ поддоменов через Claude API: $8–15 (Sonnet) или $25–40 (Opus). Для bug bounty с выплатами от $500+ - оправдано. Для программ с максимальной выплатой $100 - bash-скрипты экономичнее.

Bronxi подчёркивает: выбор модели критически важен. Классификация поддоменов - Haiku/Sonnet. Корреляция сложных связей - Opus. Генерация отчёта - снова Sonnet. Такой подход сокращает расходы на 60–70%. Я пришёл к той же схеме: гонять Opus на каждом поддомене - всё равно что стрелять из пушки по воробьям.

Когда AI НЕ нужен​

ЗадачаПочему AI бесполезен
Nmap/masscanПорты открыты или закрыты - интерпретация не нужна
Nuclei с готовыми шаблонамиУже даёт структурированный JSON-output
Scope < 10 поддоменовБыстрее проверить вручную за 15 минут
Внутренний пентест без интернетаOSINT неприменим по определению
Active Scanning (T1595)Традиционные сканеры точнее и быстрее

Минилаб для отработки​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Ожидаемый результат: AI-классификация экономит 60–80% времени на этапе фильтрации, но пропускает 5–10% edge cases. Это нормально - пайплайн гибридный by design.

Я думаю о LLM в кибербезопасности как о junior-аналитике, которому делегируешь рутину. Хороший junior экономит часы на грепании CSV, но его выводы никогда не отправляются клиенту без проверки. С Claude - та же модель. Только junior не просит повышения и не уходит в отпуск.

За последний год я провёл около двадцати внешних пентестов с AI-augmented recon. Паттерн стабильный: ускорение на этапе корреляции в 3–5 раз, но каждый третий вывод LLM о связи активов - натяжка. Самое ценное - не скорость, а то, что AI замечает паттерны, которые человек пропускает от усталости. На пятом часу recon ты перестаёшь вчитываться в WHOIS-записи. LLM не устаёт. Но LLM не понимает бизнес-логики цели, не чувствует, какой staging-сервер «пахнет» забытым, не видит социальную инженерию в naming conventions поддоменов. Через год-два AI-augmented recon станет baseline-навыком, как сейчас bash-скриптинг. Те, кто строят пайплайны сегодня, формируют конкурентное преимущество. Те, кто ждут готовый продукт - будут прогонять чужие промпты без понимания ограничений и терять доверие клиентов на ложных атрибуциях. Если хочется отработать reconnaissance-цепочку на живом стенде - на HackerLab есть лабы по OSINT и web-recon, где можно прогнать весь пайплайн без риска выйти за scope.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab