На пентесте финтех-компании в начале 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 включён с оговоркой: он до сих пор всплывает в курсах и рекомендациях, и надо явно сказать - он мёртв)
Место 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-заголовки
По данным IBM X-Force Threat Intelligence Index 2025, среднее время между публикацией CVE и устранением в организациях - 29 месяцев. Если поисковый движок находит сервис с версией софта, для которой есть публичный PoC, вероятность рабочего вектора initial access высока. Почти два с половиной года на патч - это не «окно возможностей», это распахнутая дверь.
Shodan vs Censys: сравнение ветеранов сканирования интернета
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 - поисковик уязвимостей с покрытием азиатского сегмента
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)"
[Применимо: внешний пентест, 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}")
[Применимо: внешний пентест, 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 инструменты в сравнении
| Критерий | Shodan | Censys | FOFA | Netlas |
|---|---|---|---|---|
| Бесплатный API | Ограниченный | Да (Community, лимиты см. censys.io) | Нет | Да (Community) |
| CLI-утилита | Да (shodan) | Да (censys) | Нет (cURL) | Да (netlas) |
| Покрытие IoT/OT | Широкое | Среднее | Среднее | Ограниченное |
| Покрытие Азии | Среднее | Среднее | Широкое | Среднее |
| Покрытие облаков | Среднее | Широкое | Среднее | Среднее |
| Поиск по CVE | Да (платный) | Частично | Частично | Да |
| CT-логи / сертификаты | Да | Глубокое | Базовое | Да |
| Визуализация attack surface | Monitor | Нет | Attack Surface Inventory | Discovery 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
Разница между инструментами по конкретному периметру составляет 15–30% уникальных находок в каждом - по наблюдениям из нескольких проектов. Мульти-источниковый подход - не перестраховка, а требование для полного покрытия.
Когда одного EASM-инструмента мало и нужен другой
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Последние полтора года я строю recon-пайплайны, которые агрегируют данные минимум из трёх платформ сканирования. Ни один проект не показал нулевое расхождение между инструментами. Shodan стабильно находит то, что Censys пропускает - и наоборот. FOFA добавляет 5–15% уникальных хостов в азиатских диапазонах. Netlas чаще показывает более свежие данные для российских и восточноевропейских ASN.
Рынок EASM движется в сторону enterprise-решений с автоматической приоритизацией и тикетингом - для security-команд с задачей continuous monitoring это правильный выбор. Но для пентестера и баг-хантера ценность остаётся в сырых данных и скорости доступа через API. Ставить на один инструмент - значит гарантированно упускать часть attack surface. Один забытый dev-стенд с Kibana без авторизации может стоить дороже, чем годовая подписка на все четыре платформы.
Если команда спрашивает «какой EASM-движок купить» - ответ «один» почти всегда неправильный. Вопрос не в том, какой лучше. Вопрос в том, какую долю периметра вы готовы не видеть.
Последнее редактирование модератором: