Крупная линза на чёрном антистатическом коврике разделена трещиной надвое: слева чёткая карта сети из сотен узлов, справа сквозь морозные разломы проступают скрытые красные узлы. На ободе линзы выг...


На проекте по инвентаризации активов для логистической компании Nmap обнаружил 340 хостов с открытыми портами - ровно столько, сколько ожидала IT-служба. Всё чисто, все довольны. А потом пассивная разведка через Certificate Transparency и Shodan добавила ещё 87 хостов, о которых не знал ни один отдел. Среди них - забытый staging с устаревшей Log4j, два поддомена с дефолтным WordPress и API-эндпоинт без аутентификации. Эти точки не ответили бы на прямой Nmap-скан: они прятались за CDN или не резолвились в известные IP-диапазоны. Активное и пассивное сканирование видят разные фрагменты attack surface. Разделять их - гарантированно пропустить часть периметра.

Почему одного Nmap не хватает для анализа внешнего периметра компании​

В матрице MITRE ATT&CK разведка делится на два класса. Первый - техники прямого сканирования: Active Scanning (T1595, Reconnaissance) с подтехниками Scanning IP Blocks (T1595.001) и Vulnerability Scanning (T1595.002). Второй - сбор информации без контакта с целью: Gather Victim Network Information (T1590, Reconnaissance) с подтехниками DNS (T1590.002) и IP Addresses (T1590.005), а также Search Open Technical Databases (T1596, Reconnaissance). Подробнее - в нашем руководстве по asset management пентест.

Атакующие используют обе группы последовательно. Сначала пассивная разведка строит карту без единого пакета к инфраструктуре. Затем активное сканирование уточняет: какие сервисы живы, какие версии ПО крутятся, какие порты слушают. Если blue team ограничивается Nmap-сканом известных IP-диапазонов - команда работает в парадигме «проверяю то, что знаю». Shadow IT, забытые поддомены, сервисы за CDN - всё это выпадает из зоны видимости.

По данным RiskIQ (2024), средняя организация экспонирует более 500 уникальных активов через публичные пассивные источники - и большинство из них не числятся в инвентаре IT-отдела. Сканирование внешнего периметра компании без OSINT-компонента - это аудит половины площади.

Бизнес-логика атаки тут простая: злоумышленник ищет самое слабое звено. Ему не нужен основной веб-сервер с WAF и IDS - ему нужен тот staging-сервер с Jenkins, который DevOps забыл выключить полгода назад. Пассивная разведка находит именно такие цели.

Nmap сканирование сети: активное сканирование портов на периметре​

Nmap остаётся стандартом для активного сканирования портов. При работе с внешним периметром его задача - определить открытые порты, идентифицировать версии сервисов и собрать баннеры. Каждый отправленный SYN-пакет - прямая реализация техники Active Scanning (T1595): он фиксируется в логах IDS/IPS и firewall целевой инфраструктуры.

На практике сканирование крупного периметра (сотни и тысячи IP-адресов) требует двухфазного подхода. Первая фаза - быстрый SYN-скан всех портов для построения карты живых хостов. Вторая - точечное определение версий и запуск NSE-скриптов по найденным сервисам.
Bash:
# Фаза 1: быстрый SYN-скан 65535 портов
nmap -sS -p- --min-rate 5000 -Pn -oG phase1.gnmap 198.51.100.0/24

# Фаза 2: детализация по найденным портам
nmap -sV -sC -Pn -p 22,80,443,8080,8443 -oA phase2 198.51.100.0/24
Расшифровка ключевых параметров для тех, кто привык запускать nmap -A на всё подряд:
  • -sS - SYN-скан (полуоткрытый), быстрее полного TCP-connect и создаёт меньше логов на стороне цели
  • --min-rate 5000 - минимальная скорость отправки пакетов; значения выше 10000 при интернет-сканировании приводят к потерям пакетов и ложным негативам
  • -Pn - не проверять доступность хоста пингом; админы часто блокируют ICMP, и без этого флага Nmap пропустит живые хосты
  • -sV -sC - определение версий сервисов и запуск дефолтных NSE-скриптов (safe category); скрипт ssl-cert покажет CN и SAN из TLS-сертификата, http-title - заголовок веб-страницы
  • -oG и -oA - вывод в grepable и все форматы для последующей автоматизации
Что Nmap покажет: TCP/UDP порты, версии серверного ПО (Apache 2.4.51, OpenSSH 8.9p1), TLS-информацию, результаты скриптов.

Что Nmap не покажет: поддомены, не резолвящиеся в известные IP-диапазоны; активы за CDN (Cloudflare, Akamai), где реальный IP скрыт; исторические DNS-записи; утечки учётных данных и API-ключей в публичных репозиториях. Всё это - зона ответственности пассивной разведки.

Отдельно про NSE-скрипт smb-vuln-ms17-010: он проверяет наличие CVE-2017-0144 (EternalBlue, CVSS 8.8 High) за секунды. Уязвимость из каталога CISA KEV с пометкой RANSOMWARE - и она до сих пор обнаруживается на периметрах организаций, не отключивших SMBv1. Если Nmap её нашёл - это приоритет немедленного реагирования, без вариантов.

OSINT-фреймворк для разведки: пассивная разведка домена​

Пассивная разведка - сбор данных о цели без отправки трафика в её инфраструктуру. Источники: DNS-резолверы, реестры сертификатов, Shodan, Censys, архивы Wayback Machine, публичные репозитории кода. По MITRE ATT&CK это техники Gather Victim Network Information (T1590, Reconnaissance) и Search Open Technical Databases (T1596, Reconnaissance).

Для blue team тут принципиальный момент: пассивная разведка позволяет увидеть периметр глазами атакующего без создания записей в журналах собственных средств защиты. Firewalls, IDS/IPS, WAF - ни один из них не обнаружит пассивную разведку, потому что наблюдатель обращается к сторонним реестрам и базам данных, а не к инфраструктуре организации напрямую. CyCognito в своих отчётах акцентируют именно этот разрыв.

DNS intelligence разведка и Certificate Transparency​

DNS-энумерация без трансфера зоны - первый шаг footprinting и reconnaissance. subfinder и amass собирают поддомены из десятков источников одновременно: API публичных DNS-резолверов, VirusTotal, SecurityTrails, Censys. Команда subfinder -d example.com -all -o subs.txt за 2-3 минуты выдаёт список поддоменов, который Nmap никогда бы не обнаружил - потому что Nmap-у нужен IP, а subfinder работает на уровне доменных имён.

DNS-разведка раскрывает не только поддомены:
  • MX-записи - какие почтовые серверы используются, внешний это хостинг или собственный
  • TXT-записи - SPF/DKIM/DMARC конфигурация, показывающая какие IP и сервисы авторизованы для отправки писем от имени домена
  • NS-записи - кто управляет DNS, и есть ли признаки shadow DNS (записи у стороннего провайдера, не согласованные с IT)
Certificate Transparency (CT) - один из самых недооценённых источников разведки. И это странно, потому что данные лежат в открытом доступе. CT-логи - публичные криптографически защищённые реестры всех выпущенных SSL/TLS-сертификатов. Каждый раз, когда организация получает сертификат для нового поддомена (включая dev.internal.example.com или staging-api.example.com), запись появляется в CT-логе до того, как поддомен начнёт отвечать. Запрос к crt.sh возвращает полную историю сертификатов домена - включая поддомены dev-окружений, staging-серверов и внутренних систем, которые не должны быть публичными.

На одном из аудитов CT-логи показали 14 поддоменов вида jenkins-*.client.example.com - каждый с отдельным Let's Encrypt сертификатом. Ни один не числился в инвентаре. Три из четырнадцати оказались доступны из интернета с дефолтным паролем. Занавес.

Shodan, Censys и картирование attack surface без единого пакета

Shodan и Censys - поисковые системы по интернет-инфраструктуре. Они постоянно сканируют весь IPv4-диапазон и индексируют баннеры сервисов, TLS-сертификаты, HTTP-заголовки и скриншоты веб-интерфейсов. Когда аналитик ищет ssl.cert.subject.cn:"example.com" в Censys или hostname:example.com в Shodan - результат приходит из уже собранных данных. Ни одного пакета к инфраструктуре организации не уходит.

Что дают эти инструменты для инвентаризации активов компании:
  • IP-адреса, ассоциированные с организацией по сертификатам и баннерам, но не входящие в известные диапазоны
  • Версии ПО из HTTP-заголовков (Server: Apache/2.4.49) и TLS handshake
  • Открытые панели администрирования (Kibana, Grafana, phpMyAdmin), которые могут висеть на нестандартных портах
  • IoT-устройства, IP-камеры и принтеры с интерфейсами в интернете
Разница с Nmap принципиальная: Nmap сканирует то, что ему указали. Shodan и Censys показывают то, что их инфраструктура просканировала в масштабе всего интернета. Если у компании есть сервер на забытом IP - Shodan его найдёт.

Дополнительные инструменты: theHarvester (email-адреса, поддомены из поисковиков), SpiderFoot (автоматизированный OSINT-фреймворк с 200+ модулями, но шумный - требует тюнинга), Google Dorks (поиск утечек через операторы site:, filetype:, inurl:).

SSL/TLS checker: проверка сертификатов как источник разведки​

SSL/TLS checker - не только про проверку HTTPS-настройки. При анализе внешнего периметра компании проверка сертификатов решает три задачи.

Первая - обнаружение активов. Поле Subject Alternative Name (SAN) в TLS-сертификате часто содержит десятки доменных имён - как внешних, так и внутренних. Один wildcard-сертификат может раскрыть всю структуру поддоменов, включая имена вида jira.corp.example.com или vpn-backup.example.com.

Вторая - оценка гигиены инфраструктуры. Просроченные сертификаты, самоподписанные сертификаты на продакшен-сервисах, SHA-1 вместо SHA-256 - индикаторы небрежного управления. Для атакующего это сигнал: если сертификаты не обновляют - патчи тоже вряд ли ставят вовремя.

Третья - отслеживание изменений. Появление нового сертификата для поддомена - ранний индикатор: кто-то разворачивает сервис. Если это легитимный процесс - отлично. Если typosquat или фишинговый домен - нужно реагировать. NSE-скрипт ssl-cert в Nmap, sslyze и testssl.sh закрывают эту задачу и из активного, и из пассивного контура.

Сравнение активного и пассивного сканирования​

Главная ошибка - воспринимать два подхода как конкурирующие. Они дополняют друг друга.

КритерийАктивное сканирование (Nmap)Пассивная разведка (OSINT)
Взаимодействие с цельюПрямое: SYN/ACK пакеты к хостамНет: данные из третьих сторон
Видимость для SOCДа: записи в IDS, firewall, SIEMНет: невозможно обнаружить
Актуальность данныхРеальное время: порт открыт сейчасВозможна задержка: кэш, архивы
Обнаружение shadow ITНет: только указанные IPДа: CT-логи, DNS-архивы, Shodan
Поддомены за CDNНе видит реальный IPВидит через CT и исторический DNS
Версии ПОТочные: banner grabbingПриблизительные: кэшированные баннеры
Правовые рискиТребует авторизацииМинимальные: публичные источники
Нагрузка на инфраструктуруЕсть: высокий rate вызывает проблемыНет
Основные инструментыNmap, Masscan, Nucleisubfinder, amass, Shodan, Censys, theHarvester
MITRE ATT&CKT1595 (Active Scanning)T1590, T1596
Когда НЕ подходитАктивы за CDN, неизвестные IPНужна подтверждённая актуальность

Данные пассивной разведки могут быть устаревшими - баннер в Shodan мог быть собран неделю назад. Пассивная разведка формирует гипотезы, активное сканирование их подтверждает. В этой связке - сила подхода.

Recon workflow пентест: от пассивной разведки до активного скана​

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

. Запуск nuclei -t cves/2021/CVE-2021-44228.yaml -l alive_hosts.txt - стандартная практика после сканирования периметра. Обе упомянутые CVE (Log4Shell и EternalBlue) находятся в каталоге CISA KEV с пометкой RANSOMWARE.

Шаг 7. Diff и алертинг. Сравниваем результаты с предыдущим прогоном. Новый открытый порт, новый поддомен, изменение версии ПО - потенциальный инцидент, который уходит в тикет-систему.

Весь пайплайн покрывает обе стороны MITRE ATT&CK: пассивные техники T1590.002 (DNS), T1590.005 (IP Addresses), T1596 (Search Open Technical Databases) и активные T1595.001 (Scanning IP Blocks), T1595.002 (Vulnerability Scanning).

Автоматизация пайплайна для непрерывного мониторинга​

Разовый аудит показывает состояние на дату проверки. Через неделю DevOps поднимет сервис, маркетинг запустит лендинг у нового хостера, подрядчик откроет тестовый порт и забудет его закрыть. Единственный способ не пропустить изменения - автоматизация.

Минимальный пайплайн на bash для ежедневного запуска по cron:
Bash:
#!/bin/bash
DOMAIN="example.com"
DATE=$(date +%Y%m%d)
DIR="/opt/recon"

subfinder -d $DOMAIN -all -silent > $DIR/$DATE-subs.txt
cat $DIR/$DATE-subs.txt | httpx -silent > $DIR/$DATE-alive.txt
nmap -sS -Pn --top-ports 1000 -iL $DIR/$DATE-alive.txt \
  -oG $DIR/$DATE-nmap.gnmap 2>/dev/null
diff $DIR/baseline-nmap.gnmap $DIR/$DATE-nmap.gnmap \
  > $DIR/$DATE-diff.txt
[ -s $DIR/$DATE-diff.txt ] && \
  mail -s "Perimeter change: $DOMAIN" soc@company.com \
  < $DIR/$DATE-diff.txt
Скрипт за 10-15 минут проходит цикл от subdomain enumeration до diff-анализа. Расширенный вариант добавляет запросы к Shodan API, проверку сертификатов через sslyze и запись в базу данных для построения тренда.

Стоимость - VPS за 1000-2000 рублей в месяц плюс время специалиста на настройку и разбор алертов. Коммерческое EASM-решение решает ту же задачу за 500 000 - 2 000 000 рублей в год. Для компании с 5-10 доменами и 2-3 специалистами в ИБ-отделе открытые инструменты закрывают 80% потребностей. SpiderFoot (self-hosted) дополняет картину, собирая 200+ источников threat intelligence в единый граф связей - бесплатно.

Инструменты для внешнего пентеста: выбор под задачу​

Выбор инструмента зависит от этапа пайплайна:

ИнструментТипЗадачаКогда НЕ подходит
NmapАктивныйПорты, версии, NSE-скриптыНе видит поддомены, бесполезен за CDN
MasscanАктивныйБыстрый скан больших IP-диапазоновГрубый fingerprinting, пропускает UDP
subfinderПассивныйSubdomain enumerationБез API-ключей результат ограничен
amassПассивный/АктивныйDNS enum, ASN mappingРесурсоёмкий, долгий в полном режиме
ShodanПассивныйПоиск сервисов, баннеров, IoTДанные могут отставать на 1-7 дней
CensysПассивныйTLS-сертификаты, хостыБесплатный тариф: 250 запросов/месяц
theHarvesterПассивныйEmail, поддомены, VHostЧасть источников требует API-ключей
SpiderFootПассивныйАвтоматизированный OSINT (200+ модулей)Шум в результатах, требует тюнинга
httpxАктивный*Проверка живых HTTP/HTTPS хостовСоздаёт минимальные записи в логах
NucleiАктивныйПроверка CVE по YAML-шаблонамСоздаёт записи в логах цели
testssl.shАктивныйSSL/TLS аудитПодключается к целевому серверу

\*httpx отправляет HTTP-запрос к цели, но используется после пассивного этапа как фильтр.

Непрерывный анализ внешнего периметра компании vs разовый аудит​

Между пентестом раз в год по требованию регулятора и непрерывным мониторингом - пропасть. FireMon формулирует точно: мониторинг внешнего attack surface - не одноразовый аудит, а постоянный динамический процесс, который адаптируется по мере изменения среды.

Что меняется между ежегодными аудитами:
  • Новые поддомены - DevOps создаёт среды для каждого спринта
  • Облачные ресурсы - маркетинг арендует VPS для промо-кампании
  • Забытые окружения - staging, который «временно» стал постоянным
  • DNS-изменения - подрядчик поменял A-запись и создал open redirect
  • Новые сертификаты - каждый Let's Encrypt фиксируется в CT-логах
Процесс мониторинга укладывается в цикл NIST CSF 2.0. Этап Identify (ID.AM-01 - инвентаризация оборудования и активов) закрывается пассивной разведкой и активным сканированием. Этап Detect (DE.AE-01 - определение базелайна сетевых операций) - diff-анализом между прогонами. Этап Respond (RS.AN-01 - расследование уведомлений от систем детектирования) - разбором алертов о новых портах и поддоменах.

Рекомендуемая частота прогонов зависит от динамики инфраструктуры:
  • Subdomain enumeration - ежедневно (пассивная, нулевая нагрузка)
  • Shodan/Censys обогащение - ежедневно (API-запросы)
  • Nmap-скан известных хостов - еженедельно (активный, требует окна)
  • Полный Nmap-скан новых IP - по алерту от пассивного контура
  • SSL/TLS аудит - еженедельно
  • Полный прогон всего пайплайна - ежемесячно с пересмотром baseline
Последние два года я наблюдаю одну и ту же картину: компания покупает дорогой EASM-продукт, подключает домены, получает красивый дашборд - и на этом всё. Результаты коммерческого сканера живут в отдельной вкладке браузера, а IT-служба ведёт инвентарь в Excel. Никто не сопоставляет находки EASM с результатами Nmap-скана. Никто не настроил алерт на появление нового поддомена в CT-логах. По документам «процесс мониторинга периметра внедрён», на практике - два изолированных потока данных, которые никогда не пересекаются.

Реальная защита начинается не с покупки инструмента, а с пайплайна: пассивная разведка генерирует гипотезы, активное сканирование подтверждает, diff-анализ ловит изменения, алерт уходит в SOC. Весь цикл работает автоматически, каждый день, без участия человека до момента разбора алерта. Средства для этого бесплатны и открыты.

Самый частый аргумент против: «нет людей на поддержку скриптов». Но людей нет и на разбор 200 алертов коммерческого сканера, если за ними никто не следит. Проблема не в инструментах - проблема в отсутствии процесса, который связывает обнаружение с реагированием. Без этой связки что бесплатный bash-скрипт, что решение за два миллиона - одинаково бесполезны. Если интересно как другие команды строят такой пайплайн - на codeby.net есть тред, где разбираем конфиги мониторинга периметра и интеграции с тикет-системами.
 
Мы в соцсетях:

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

Похожие темы

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