Статья EASM инструменты: сравнение Shodan, Censys, FOFA и Netlas для внешней разведки поверхности атаки

Сравнительная таблица на плотной бумаге с колонками четырёх инструментов и рукописными пометками чернилами. Латунный пресс-папье в углу, мягкий оконный свет слева.


На пентесте финтех-компании в начале 2025 года запустил параллельный поиск по ASN клиента через четыре платформы. Shodan нашёл 47 сервисов, Censys - 52, FOFA - 63, Netlas - 58. Но дело не в цифрах, а в составе: dev-стенд с Kibana без авторизации обнаружился только в FOFA. VPN-шлюз с OpenSSL 1.0.2 - только в Netlas. Через ту самую Kibana за три часа собрал карту внутренней инфраструктуры, которая сократила lateral movement до двух переходов. Ни одна платформа из четырёх не закрыла задачу в одиночку - и этот вывод подтверждается в каждом проекте по внешней разведке поверхности атаки.

Критерии отбора: почему именно эти EASM-платформы​

В обзор вошли четыре живых инструмента - Shodan, Censys, FOFA, Netlas - и один покойник: Spyse. Критерии включения:
  • Публичный API для автоматизации recon-пайплайнов
  • Глобальное покрытие - поиск сервисов за пределами одного региона или провайдера
  • Релевантность для пентеста - поиск по баннерам, сертификатам, портам, технологиям, CVE
  • Активный статус - поддержка и обновление данных (Spyse включён с оговоркой: он до сих пор всплывает в курсах и рекомендациях, и надо явно сказать - он мёртв)
Что осталось за рамками: enterprise EASM-платформы полного цикла - CyCognito, Cortex Xpanse, Bitsight, Mandiant ASM, CrowdStrike Falcon Exposure Management. Они решают задачу continuous monitoring с приоритизацией, тикетингом и интеграцией в GRC-стек - другой класс продуктов. Здесь речь о поисковых движках для ручной и автоматизированной разведки, которые пентестер или баг-хантер запускает на этапе reconnaissance.

Место EASM-инструментов в цепочке атаки​

Все четыре платформы работают на этапе reconnaissance по MITRE ATT&CK. Конкретные техники:
  • Search Open Technical Databases (T1596, Reconnaissance)- прямое использование Shodan, Censys, FOFA, Netlas как баз данных сканирования интернета
    • Scan Databases (T1596.005) - подтехника T1596: поиск по индексам портов и баннеров
  • Gather Victim Network Information (T1590, Reconnaissance)- сбор данных об ASN, IP-диапазонах, DNS-записях цели
    • IP Addresses (T1590.005) - подтехника T1590: идентификация IP-адресов периметра
  • Gather Victim Host Information (T1592, Reconnaissance) - fingerprinting конкретных хостов: версии ПО, TLS-конфигурации, HTTP-заголовки
Операционный контекст: эти инструменты закрывают первый этап kill chain - от определения периметра до выбора вектора initial access. На выходе - приоритизированный список целей: сервис без авторизации (Security Misconfiguration, A05:2021 по OWASP), устаревшее ПО с публичными эксплойтами (Vulnerable and Outdated Components, A06:2021), слабая TLS-конфигурация (Cryptographic Failures, A02:2021). Дальше - exploit -> foothold -> post-exploitation, но без качественного recon вся эта цепочка начинается вслепую.

По данным IBM X-Force Threat Intelligence Index 2025, среднее время между публикацией CVE и устранением в организациях - 29 месяцев. Если поисковый движок находит сервис с версией софта, для которой есть публичный PoC, вероятность рабочего вектора initial access высока. Почти два с половиной года на патч - это не «окно возможностей», это распахнутая дверь.

Shodan vs Censys: сравнение ветеранов сканирования интернета​

1781084473787.webp

Shodan: покрытие и ограничения​

Shodan - первый массовый поисковик по интернет-устройствам (запущен в 2009 году, активно поддерживается). Индексирует баннеры сервисов, HTTP-заголовки, TLS-сертификаты, SNMP-данные и специфичные протоколы промышленных систем.

Сильные стороны для пентеста. Широкое покрытие IoT и OT-протоколов (Modbus, BACnet, EtherNet/IP) - если в проекте есть промышленная инфраструктура, без Shodan не обойтись. Фильтр vuln: для поиска по CVE на платных тарифах. CLI-утилита shodan с интеграцией в Metasploit и nmap. Shodan Monitor для непрерывного отслеживания изменений на периметре.

Ограничения. Бесплатный тариф зажат: 100 результатов за запрос без пагинации, фильтр vuln: недоступен. Обновление данных неравномерное - популярные диапазоны сканируются чаще, нишевые регионы (Азия, СНГ) могут отставать на недели. И главное - не сканирует все 65535 портов, покрытие ограничено набором из примерно 1500 наиболее распространённых. То есть сервис на порту 9200 (Elasticsearch) найдёт, а кастомный бэкдор на 48321 - вряд ли.

Типичный запрос для внешнего пентеста: ssl.cert.subject.cn:"target.com" -port:443 - поиск сервисов организации по TLS-сертификату на нестандартных портах. Часто находит забытые dev-стенды и админки, которые не вытащить перебором поддоменов.

[Применимо: внешний пентест, black box, любой тип инфраструктуры, особенно IoT/OT]

Censys: архитектурные отличия от Shodan​

Censys (запущен в 2015 году командой University of Michigan, авторами сканера ZMap, сейчас коммерческая компания) отличается от Shodan фокусом на TLS/SSL-данные и Certificate Transparency логи.

Сильные стороны. Глубокий индекс TLS-сертификатов - обнаружение поддоменов через CT-логи работает эффективнее, чем поиск по баннерам. Раздельные индексы для хостов, сертификатов и автономных систем дают гибкость запросов. Censys Search Language (синтаксис field:value с поддержкой вложенных полей) удобен для автоматизации сложных фильтров. Покрытие облачных провайдеров (AWS, GCP, Azure) шире, чем у Shodan: Censys лучше видит динамичные облачные ресурсы, которые постоянно меняют IP.

Ограничения. IoT/OT-протоколы покрывает хуже Shodan - если цель промышленная, Censys в одиночку не хватит. Бесплатный Community-тариф с ограниченным числом запросов (лимиты менялись с 2023 года - актуальные на censys.io/pricing). Веб-интерфейс для быстрого ad-hoc поиска менее удобен, чем у Shodan - к нему нужно привыкнуть.

Типичный запрос: services.tls.certificates.leaf.subject.common_name: "target.com" - агрегация всех сертификатов организации, включая wildcard и SAN-записи. Подход через CT-логи часто раскрывает поддомены раньше, чем пассивный DNS или перебор словарём.

[Применимо: внешний пентест, grey box (если известен домен), cloud-native инфраструктура]

FOFA - поисковик уязвимостей с покрытием азиатского сегмента​

1781084504520.webp

FOFA (разработка Beijing Huashun Xin'an Technology, активно поддерживается) исторически заточен под азиатский интернет. По данным сравнительного исследования из блога Netlas, FOFA показывает более широкое покрытие в диапазонах IP китайских, японских и южнокорейских провайдеров.

Сильные стороны. Покрытие азиатского сегмента шире, чем у Shodan и Censys - критично для организаций с филиалами или CDN в этом регионе. Attack Surface Inventory: вводишь корневой домен -> получаешь поддомены, favicon-хеши, организации-эмитенты сертификатов. Поиск по favicon-хешу - удобная штука для идентификации кастомных панелей управления (кто менял favicon на дефолтном Django-приложении - тот знает).

Ограничения. API только за деньги. Fuzzy search (подстановка wildcards) - тоже платный. Нет официального CLI или SDK - работа через голые HTTP-запросы. Интерфейс и документация преимущественно на китайском, что создаёт порог входа. Браузерные плагины и Maltego-модули - неофициальные, от сторонних разработчиков, без поддержки со стороны FOFA.

Пример обращения к API:
Bash:
curl -X GET "https://fofa.info/api/v1/search/all?key=YOUR_KEY&qbase64=$(echo -n 'title="Kibana" && country="RU"' | base64)"
Когда FOFA критически важен: целевая организация имеет инфраструктуру в Азии (филиалы, облачные ресурсы у China Telecom / China Unicom). В одном проекте по инвентаризации attack surface для e-commerce компании с производством в Китае Shodan показал 12 сервисов в азиатских ASN, FOFA - 31. Почти тройная разница. Объяснение простое: FOFA агрессивнее сканирует диапазоны крупных китайских провайдеров.

[Применимо: внешний пентест, black box, организации с азиатской инфраструктурой]

Netlas - альтернатива Shodan с акцентом на API и точность​

Netlas (активно развивается, команда из Восточной Европы) позиционируется как EASM-платформа с акцентом на точность данных и автоматизацию.

Архитектурные отличия от конкурентов. CLI из коробки: pip install netlas - полноценный инструмент командной строки, доступный с бесплатного тарифа. API тоже бесплатен на Community-плане - в отличие от FOFA, где за каждый запрос к API надо платить. Attack Surface Discovery Tool - визуальный граф связей между доменами, IP, сервисами и сертификатами: кликнул на домен -> поддомены -> кликнул на поддомен -> IP -> кликнул на IP -> сервисы. Итеративное наращивание карты attack surface, удобное для формирования скоупа на старте пентеста. Private Scanner - сканирование целевых хостов по более чем 1200 портам (меньше, чем у Shodan ~1500 и Censys ~3500) с сохранением результатов в приватном индексе, к которому можно обращаться через тот же язык запросов, что и к публичным данным.

По данным одного из пентестеров (цитата с сайта Netlas, так что делайте поправку на источник): «I tested Fofa, Hunter, Shodan, but Netlas gives absolutely accurate results... 95% working URLs vs 70-80% in others»«Я протестировал Fofa, Hunter, Shodan, но Netlas дал абсолютно точный результат... 95% рабочих URLов против 70-80% в остальных.»
Python:
# Поиск через Netlas Python SDK
import netlas
client = netlas.Netlas(api_key="YOUR_KEY")
# Структура ответа зависит от версии SDK - см. [URL='https://github.com/netlas-io/netlas-python']github.com/netlas-io/netlas-python[/URL]
results = client.query(query="domain:target.com")
for item in results["items"]:
    ip = item["data"]["ip"]
    port = item["data"]["port"]
    title = item["data"].get("http", {}).get("title", "N/A")
    print(f"{ip}:{port} - {title}")
Ограничения. Общая база меньше, чем у Shodan, который сканирует интернет с 2009 года - 16 лет форы. Покрытие IoT/OT-протоколов уже. Fuzzy search бесплатен (плюс перед FOFA), но лимиты запросов на Community-тарифе ограничены. Исторические данные доступны для всех коллекций, кроме SSL-сертификатов (впрочем, сертификаты содержат даты валидности, так что отдельная история менее критична).

[Применимо: внешний пентест, bug bounty, автоматизированные recon-пайплайны, визуализация для отчётов]

Spyse - OSINT-инструмент, который прекратил работу​

Spyse включён в обзор намеренно: он до сих пор всплывает в рекомендациях, курсах и writeups. Реальность - Spyse как самостоятельный поисковый сервис мёртв с 2022 года. Команда перешла к разработке Netlas, что объясняет архитектурное сходство (graph-based discovery, API-first подход). Публичный доступ к движку Spyse закрыт.

Если в вашем recon-пайплайне стоит Spyse - выкидывайте. Ближайший аналог по API-модели и типу данных - Netlas. Для работы с сертификатами и DNS - комбинация Censys + crt.sh. Оставлять Spyse в скриптах и чек-листах без пометки - ошибка, которая создаёт ложное чувство покрытия. Скрипт отрабатывает без ошибок, данных возвращает ноль, а вы думаете, что периметр чист.

Сводная таблица: attack surface management инструменты в сравнении​

КритерийShodanCensysFOFANetlas
Бесплатный APIОграниченныйДа (Community, лимиты см. censys.io)НетДа (Community)
CLI-утилитаДа (shodan)Да (censys)Нет (cURL)Да (netlas)
Покрытие IoT/OTШирокоеСреднееСреднееОграниченное
Покрытие АзииСреднееСреднееШирокоеСреднее
Покрытие облаковСреднееШирокоеСреднееСреднее
Поиск по CVEДа (платный)ЧастичноЧастичноДа
CT-логи / сертификатыДаГлубокоеБазовоеДа
Визуализация attack surfaceMonitorНетAttack Surface InventoryDiscovery Tool (граф)
Fuzzy searchДаДаТолько платныйДа (бесплатно)
Maltego-интеграцияОфициальнаяОфициальнаяНеофициальнаяОфициальная
Сканируемые портыОколо 1500~3500 портов (по данным censys.io)Не раскрывается1200+
Типичная свежесть данныхДни - неделиДни - неделиДниДни
Детектируемость запросов цельюНет (пассивный)Нет (пассивный)Нет (пассивный)Нет (пассивный, кроме Private Scanner)

Оговорка: точное количество портов и частота сканирования у Shodan и Censys варьируются по тарифам и не полностью раскрываются публично. Числа основаны на наблюдаемом поведении и данных из сравнительного исследования Netlas. Private Scanner Netlas - активное сканирование, детектируемое IDS/WAF на стороне цели.

Практический workflow внешней разведки поверхности атаки​

Требования к окружению​

  • ОС: GNU/Linux (Kali, Ubuntu 22.04+) или macOS
  • Python: 3.8+ для CLI-инструментов Shodan, Censys, Netlas
  • RAM: 4 ГБ минимум (для скриптов агрегации)
  • API-ключи: Shodan (бесплатный или Membership - актуальную цену проверять на shodan.io/pricing), Censys (бесплатная регистрация), Netlas (бесплатная регистрация)
  • Сеть: обязательно онлайн - все платформы работают как SaaS, локальных альтернатив нет

Три шага от нуля до полной карты периметра​

Шаг 1. Первичная идентификация через сертификаты. Censys для поиска по CT-логам - даёт максимально полный список поддоменов и связанных сертификатов. Параллельно - netlas search "domain:target.com" через CLI для перекрёстной проверки. На выходе: список поддоменов и IP из двух независимых источников.

Шаг 2. Расширение через ASN. Определив основной ASN цели, расширяю поиск: shodan search "asn:AS12345" покажет все проиндексированные сервисы в диапазоне. Параллельный запрос в FOFA покрывает хосты, которые Shodan мог пропустить - особенно в нестандартных региональных диапазонах, где Shodan сканирует реже.

Шаг 3. Агрегация и дедупликация. Python-скрипт собирает результаты из всех четырёх API, дедуплицирует по IP:PORT и классифицирует находки: сервисы без авторизации (P1), устаревшее ПО с публичными CVE (P2), прочие открытые порты (P3). Итог - единый список с пометками, из какого источника каждая находка. Если что-то нашлось только в одном движке - это как раз те самые 15–30% уникальных находок, ради которых стоит запускать несколько платформ.

Разница между инструментами по конкретному периметру составляет 15–30% уникальных находок в каждом - по наблюдениям из нескольких проектов. Мульти-источниковый подход - не перестраховка, а требование для полного покрытия.

Когда одного EASM-инструмента мало и нужен другой​

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

Последние полтора года я строю recon-пайплайны, которые агрегируют данные минимум из трёх платформ сканирования. Ни один проект не показал нулевое расхождение между инструментами. Shodan стабильно находит то, что Censys пропускает - и наоборот. FOFA добавляет 5–15% уникальных хостов в азиатских диапазонах. Netlas чаще показывает более свежие данные для российских и восточноевропейских ASN.

Рынок EASM движется в сторону enterprise-решений с автоматической приоритизацией и тикетингом - для security-команд с задачей continuous monitoring это правильный выбор. Но для пентестера и баг-хантера ценность остаётся в сырых данных и скорости доступа через API. Ставить на один инструмент - значит гарантированно упускать часть attack surface. Один забытый dev-стенд с Kibana без авторизации может стоить дороже, чем годовая подписка на все четыре платформы.

Если команда спрашивает «какой EASM-движок купить» - ответ «один» почти всегда неправильный. Вопрос не в том, какой лучше. Вопрос в том, какую долю периметра вы готовы не видеть.
 
Последнее редактирование модератором:
Мы в соцсетях:

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

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab