Матрёшка на антистатическом коврике: внешняя фигура с гравировкой «staging.corp.internal» раскрыта, внутри — фигурка с надписью «T1590 RECON → EMPLOYEE». Тёплый свет настольной лампы выхватывает де...


На одном из проектов по оценке внешней атакующей поверхности мне хватило трёх часов, чтобы от забытого staging-поддомена выйти на конкретного разработчика, найти его коммит с хардкоженным API-ключом AWS, а затем обнаружить тот же корпоративный email в двух breach-базах с паролями, которые почти наверняка переиспользовались. Ноль пакетов в сторону целевой сети - только открытые источники. Для blue team вывод простой: если вы не прогоняете OSINT-разведку инфраструктуры компании против самих себя, кто-то уже делает это за вас.

Бизнес-логика атаки: зачем разведка до первого эксплойта​

Перед запуском эксплойта или фишинговой кампании атакующий собирает максимум данных из открытых источников - фаза Reconnaissance в терминологии MITRE ATT&CK. Техника Gather Victim Network Information (T1590) и её подтехники - Domain Properties (T1590.001), DNS (T1590.002), IP Addresses (T1590.005) - описывают то, что происходит до первого активного контакта с целью. Подробнее - в нашем руководстве по osint для специалиста по информационной безопасности.

По данным Mandiant M-Trends 2025, в 2024 году отслеживаются 4+ новых APT-группировок, финансовый сектор входит в тройку наиболее атакуемых отраслей. Чтобы эксплуатировать уязвимость, нужно знать, какой софт запущен, на какой версии и на каком хосте. Для фишинга - кому отправить письмо, на какой адрес, с какой легендой. Всё это даёт разведка на основе открытых источников.

Конечная цель - получить одно из трёх: прямой доступ через утёкший секрет (API-ключ, пароль), точку входа через уязвимый сервис на забытом хосте, или убедительный вектор социальной инженерии через данные конкретного сотрудника. Чаще - комбинацию всех трёх.

Дальше - четыре фазы, которые я прохожу на каждом проекте. Та же последовательность работает и в обратную сторону: если вы в blue team, пройдите каждую фазу против собственного домена и посмотрите, что увидит атакующий.

Фаза 1: footprinting инфраструктуры - от домена до забытого сервера​

1787645494746.webp

Поиск сабдоменов через Certificate Transparency и DNS​

Каждый TLS-сертификат, выданный публичным CA, попадает в Certificate Transparency (CT) логи. Это значит, что staging.company.ru, dev-api.company.ru и jira.internal.company.ru - все они видны в открытом доступе, даже если DNS-запись ведёт на внутренний IP. В терминах ATT&CK - техника Domain Properties (T1590.001, Reconnaissance).

Самый быстрый способ проверить - запрос к crt.sh по корневому домену. Для автоматизации - subfinder, который агрегирует CT-логи, поисковые движки и пассивные DNS-базы в один прогон:
Bash:
subfinder -d company.ru -o subdomains.txt
cat subdomains.txt | httpx -sc -title -td
Первая команда собирает поддомены, вторая - проверяет, какие из них живые, какие HTTP-коды отдают и какие технологии видны в заголовках. (Флаги -sc -title -td - для httpx v1.3+; в более ранних версиях используйте -status-code -title -tech-detect.) Важный момент: httpx уже отправляет HTTP-запросы к хостам - это активное взаимодействие. Для defensive recon против собственной инфраструктуры - допустимо, для стороннего домена без авторизации - нет.

Дополнительный вектор - Google dorking: запрос site:company.ru -www покажет проиндексированные поддомены за пределами основного сайта. Фильтры inurl:admin или intitle:login выявляют административные интерфейсы, которые не должны быть в публичном индексе.

Предусловия и ограничения:
  • CT-логи не покрывают самоподписанные сертификаты. Wildcard-сертификаты (*.company.ru) не раскроют конкретные имена хостов
  • DNS-брутфорс даёт результаты только для словарных имён поддоменов (dev, staging, api, test, admin)
  • Забытый поддомен с dangling CNAME - CNAME указывает на деаллоцированный ресурс в облаке - это не просто находка, а потенциальный subdomain takeover. Если staging.company.ru имеет CNAME на yourapp.herokuapp.com, а Heroku-приложение удалено, атакующий может занять это имя и подставить свой контент под вашим доменом

Shodan и Censys: пассивный анализ без пакетов к цели​

Shodan и Censys непрерывно сканируют весь IPv4-диапазон и индексируют баннеры сервисов. Запрос к ним - чтение уже собранных данных, ни один пакет не уходит к цели. В ATT&CK это техники IP Addresses (T1590.005) и DNS (T1590.002).

Запрос, который покажет все хосты с TLS-сертификатом для конкретного домена на нестандартных портах:
Код:
ssl.cert.subject.cn:"company.ru" port:443,8443
Вернёт все хосты, где в поле CN сертификата указан company.ru, на портах 443 и 8443. Тут регулярно всплывают хосты, о которых IT-команда не знает: старые балансировщики, тестовые API-гейтвеи, shadow IT. Для поиска по организации: org:"Company Name" port:22,3389 - SSH и RDP, торчащие наружу. MySQL (3306) или PostgreSQL (5432) на публичном IP - критическая находка для немедленного закрытия.

Когда техника НЕ работает:
  • Инфраструктура полностью за CDN (Cloudflare, Akamai) - реальные IP скрыты, Shodan покажет только CDN-фронт
  • Бесплатный аккаунт Shodan ограничен 100 результатами - для крупных организаций нужен платный доступ или Censys
  • Данные обновляются с задержкой от дней до недель - свежеразвёрнутый сервер может не появиться сразу

Фаза 2: email harvesting и профилирование персонала OSINT​

1787645519893.webp

Паттерны email и инструменты сбора данных о сотрудниках компании​

Когда собран список поддоменов и есть базовое понимание инфраструктуры, следующий шаг - email-адреса сотрудников. В ATT&CK - техники Email Addresses (T1589.002, Reconnaissance) и Employee Names (T1589.003).

Знание формата email (first.last@company.ru, flast@company.ru, first_last@company.ru) позволяет сгенерировать адрес любого сотрудника, чьё имя найдено в открытых источниках. Дальше - credential stuffing, фишинг или проверка по breach-базам.

theHarvester агрегирует email из поисковых систем и публичных API одной командой: theHarvester -d company.ru -b all (без настроенных API-ключей в api-keys.yaml данные вернутся только с бесключевых источников - Google, Bing, DuckDuckGo, crt.sh). Hunter.io определяет формат email для домена и возвращает верифицированные адреса.

Ограничения: theHarvester для полных результатов требует API-ключи (Google CSE, Bing API, Shodan API). Hunter.io бесплатно даёт 25 запросов в месяц - хватит для разовой проверки, но не для мониторинга. Если компания использует catch-all почтовый сервер, SMTP-верификация не даст надёжного результата - все адреса будут выглядеть валидными.

Вакансии и LinkedIn как источник HUMINT​

LinkedIn - открытая база оргструктуры. В ATT&CK - техники Identify Roles (T1591.004) и Social Media (T1593.001). Из профилей атакующий вытаскивает полные имена, должности, иерархию подчинения, стек технологий и историю работы.

Но вакансии - ещё более ценный и часто недооцениваемый источник. Из практики OSINT-разведки: вакансия вроде "Senior Okta Engineer с опытом миграции с Cisco AnyConnect на Zscaler ZPA" раскрывает провайдера SSO, текущий VPN-вендор, будущую zero-trust платформу и факт незавершённости миграции. Вакансия "DevOps, Kubernetes, Terraform, AWS, HashiCorp Vault" сообщает: контейнерная оркестрация, облако AWS, управление секретами в процессе - до завершения миграции секреты хранятся где-то ещё. Люди сами рассказывают, как к ним зайти.

Google dorking для LinkedIn: site:linkedin.com/in "Company Name" "security engineer" - способ найти ключевых сотрудников без автоматизированного скрапинга (который нарушает Terms of Service LinkedIn).

Когда техника НЕ работает: часть сотрудников ставит приватный режим, часть не ведёт профиль. Вакансии иногда содержат wishlist вместо реального стека - это шум, требующий фильтрации. Для российских компаний LinkedIn менее информативен, чем для западных, но hh.ru и Хабр Карьера частично компенсируют этот gap.

Фаза 3: поиск утечек кода на GitHub​

1787645563263.webp

Разработчики регулярно коммитят чувствительные данные в публичные репозитории - API-ключи, пароли от баз данных, приватные ключи, внутренние URL. На практике GitHub dorking часто оказывается финальной точкой инфраструктурного recon: утёкший секрет даёт прямой доступ без необходимости искать эксплойт.

Примеры поисковых запросов:
Код:
org:companyname password
org:companyname "api_key"
org:companyname filename:.env
"company.ru" filename:config extension:yml
Первый ищет слово password в репозиториях организации. Третий - файлы .env с переменными окружения. Четвёртый - YAML-конфигурации с упоминанием домена. Для автоматизации - trufflehog (сканирует git-историю на высокоэнтропийные строки и известные паттерны секретов) и gitleaks (проверяет по конфигурируемым правилам).

Критический момент: удалённый секрет остаётся в git-истории. Разработчик закоммитил AWS-ключ, потом удалил следующим коммитом - ключ доступен через git log и git show. Репозиторий нужно перезаписывать через git filter-repo, и на практике это делают единицы. Я за последние пару лет видел может десяток проектов, где после утечки реально почистили историю, а не просто "удалили файлик".

Предусловия: GitHub dorking работает только по публичным репозиториям. Если организация не ведёт публичных репозиториев - вектор формально закрыт, но личные аккаунты сотрудников (найденные в Фазе 2) могут содержать форки рабочих проектов. trufflehog генерирует false positives на тестовых данных - ручная верификация обязательна.

Фаза 4: анализ breach data сотрудников​

1787645636608.webp

Когда есть список email из Фазы 2, следующий шаг - проверка по базам утечек. Have I Been Pwned (HIBP) позволяет проверить домен целиком: сколько корпоративных email попали в известные утечки и из каких источников.

Масштаб проблемы: утечка LinkedIn 2012 года, ставшая публичной в 2016, затронула 164 611 595 записей с email-адресами и паролями (по данным HIBP). Combo-лист Exploit.In (2016) содержал 593 427 119 уникальных email-адресов, многие - с несколькими разными паролями, из множества различных источников. Когда сотрудник использует корпоративный email для регистрации на сторонних сервисах и переиспользует пароль - это прямой вектор initial access через credential stuffing.

Что проверять: HIBP Domain Search показывает, сколько корпоративных email попали в какие утечки. Корреляция с инфраструктурой из Фазы 1: если VPN-портал компании принимает email+пароль без MFA, а email из Фазы 2 найден в breach-базе с паролем - вектор готов. Утёкшие данные также появляются на paste-сайтах и в Telegram-каналах раньше, чем попадают в HIBP.

Ограничения: HIBP бесплатный поиск по домену требует верификации ownership - для мониторинга нужен доступ к DNS или email домена. Breach data устаревает: пароль из утечки 2012 года мог быть сменён. Но паттерн генерации (любимое слово + год) часто сохраняется, и атакующий строит wordlist на основе утёкшего пароля. Видел это не раз: пароль из утечки - Sergey2012, текущий - Sergey2024. Угадайте с одной попытки.

Корреляция: как четыре фазы складываются в initial access​

Каждая фаза по отдельности - набор сырых данных. Ценность появляется при корреляции. Реалистичный сценарий из практики (анонимизированный):
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Итог: три потенциальных вектора initial access - Jenkins без MFA (credential stuffing), утёкший AWS-ключ (если не ротирован), учётные данные из breach-базы для VPN. Всё обнаружено без единого активного сканирования целевой инфраструктуры.

По данным IBM X-Force Threat Intelligence Index 2025, 70% атак, обработанных IBM X-Force, затронули организации критической инфраструктуры, а генерация фишинговых писем с помощью GenAI стала быстрее в 11,4 раза при сопоставимом качестве. Имея данные всех четырёх фаз, атакующий создаёт убедительное письмо конкретному сотруднику с упоминанием реальных проектов и коллег - GenAI ускоряет этот процесс многократно.

Деанонимизация атакующей поверхности: чеклист для blue team​

Разовый аудит бесполезен, если атакующая поверхность меняется каждую неделю. Еженедельный минимум:

ЗадачаИнструментЧто ищем
Мониторинг CT-логовcrt.sh / CertstreamНовые сертификаты = новые поддомены (shadow IT, забытые dev-среды)
Сканирование секретовGitHub Advanced Security / gitleaksКоммиты с API-ключами, токенами, .env
Оповещения ShodanShodan Alerts (по IP/org)Новые открытые порты и сервисы на вашем периметре
Мониторинг утечекHIBP Domain NotifyКорпоративные email в новых breach-базах
Проверка dangling DNSПериодический DNS-аудитCNAME-записи, указывающие на деаллоцированные ресурсы

Требования к окружению для defensive recon​

  • ОС: любая с Python 3.8+ (subfinder, theHarvester, trufflehog - кроссплатформенные)
  • API-ключи: Shodan (бесплатно, лимит 100 результатов/запрос), Hunter.io (25 запросов/мес бесплатно), VirusTotal (опционально для обогащения)
  • Доступ: DNS ownership или admin email для HIBP Domain Search; доступ к GitHub организации для gitleaks; Shodan Alerts - бесплатно до 16 IP-мониторов
Формула на бумаге понятна, но по-настоящему ощущается, когда сам прогоняешь каждую фазу на живом стенде. На HackerLab.pro (https://hackerlab.pro) есть категория OSINT с тасками разной сложности - нужна регистрация, после неё доступны задачи от базового поиска по открытым источникам до полной цепочки деанонимизации.

Ограничения OSINT-мониторинга​

Мониторинг открытых источников закрывает внешнюю видимость, но не заменяет:
  • Внутренний аудит конфигурации - OSINT не покажет ACL на внутренних ресурсах и ошибки в IAM-политиках
  • Активный пентест - пассивная разведка выявляет потенциальные векторы, но не подтверждает эксплуатабельность
  • DLP-контроль - утечки в приватных каналах (корпоративный Slack, закрытые чаты) невидимы для внешнего OSINT
Threat intelligence из открытых источников - early warning system. Его ценность - в обнаружении exposure до того, как этим воспользуется атакующий.

Нередко OSINT-проверку запускают раз в год - во время планового пентеста. К этому моменту staging-поддомен с дефолтными кредами висит в интернете девять месяцев, а коммит с AWS-ключом - полгода. Проблема не в инструментах: subfinder, Shodan, HIBP Domain Search - всё бесплатно или условно бесплатно. Проблема в операционной дисциплине. Я видел компании с SOC на 15 человек и годовым бюджетом на threat intelligence, где ни один аналитик не прогонял subfinder -d company.ru за последние полгода - зато часы уходили на разбор внутренних SIEM-алертов, пока внешняя поверхность обрастала забытыми CNAME и светящимися в breach-базах email-адресами. По данным CrowdStrike Global Threat Report 2025, вредоносное использование GenAI для социальной инженерии удвоилось за 2024 год - каждая единица данных в открытом доступе делает такие атаки точнее. Инфраструктурный recon занимает 30 минут в неделю при настроенных алертах. Это дешевле одного инцидента. Если у вас другой стек детекции - на форуме yg140.servegame.com обсуждаем, как адаптировать подобный мониторинг под разные инфраструктуры.
 
Последнее редактирование модератором:
Мы в соцсетях:

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

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

HackerLab