qwerty120
Green Team
- 02.01.2025
- 15
- 3
Всем привет! Давно искал на форумах толковый и актуальный мануал по Censys на русском, но везде либо обрывки инфы, либо сравнения с Shodan в духе "ну это почти то же самое". А ведь инструмент мощнейший и со своими киллер-фичами. Он является ярким представителем целого класса инструментов для открытой разведки (OSINT), о которых стоит знать каждому специалисту. В общем, не нашел — пишу сам.
Censys - это не просто поисковик по устройствам, торчащим в интернет. Это мощный инструмент для глубокого анализа интернет-активов, разработанный исследователями из
Ссылка скрыта от гостей
в Урбана-Шампейн, что придает ему дополнительный научный вес. Если Shodan — это Google для серверов, то Censys - это Google с углубленной аналитикой, историческими данными и фокусом на взаимосвязях. Для пентеста, OSINT-расследований, мониторинга своей инфраструктуры и анализа угроз вещь незаменимая. И да, в Kali он есть, но CLI-инструмент нужно ставить отдельно. Погнали разбираться.Чем Censys круче Shodan?
Главное отличие, на мой взгляд, — это контекст. Censys не просто показывает вам открытый порт, он строит связи: какие еще домены хостятся на этом IP, какие SSL/TLS сертификаты на нем висели за последние годы, какие технологии он использует. Это позволяет раскручивать целые цепочки и видеть картину целиком. Идеально для этапа разведки.Первые шаги: Установка и настройка API
Тут все просто, но есть нюанс с API. Без него вы сможете сделать лишь пару запросов.- Регистрируемся на
Ссылка скрыта от гостей. Нам нужен бесплатный аккаунт.
- Идем в свой профиль (
My Account
) -> вкладкаAPI
. Там вы найдете своиAPI ID
иSecret
. Это ваши ключи к поисковику, никому их не показывайте. - Устанавливаем клиент:
Bash:pip3 install censys
- Конфигурируем, подставляя свои ключи:
Bash:censys config
API ID
иSecret
. Вводим их, и все готово.
Важно: На бесплатном тарифе есть лимиты (на момент написания — около 250 запросов в месяц). Для большинства личных исследований этого хватит с головой, но имейте в виду.
Что ищет Censys: Разбираем источники данных
Чтобы понимать, какие запросы строить, нужно знать, по чему мы вообще можем искать.- Сетевые активы (Hosts): IP-адреса, открытые порты, запущенные сервисы (баннеры), версии ПО, операционные системы, геолокация.
- Сертификаты (Certificates): Огромная база SSL/TLS сертификатов. Можно искать по доменным именам в сертификате (
names
), издателю (parsed.issuer
), самоподписанным сертам и т.д. - DNS-записи: A, MX, TXT и другие. Помогает находить связанные домены и субдомены.
- Теги и уязвимости: Censys автоматически тегирует хосты (например,
database
,remote-access
,botnet
). Иногда добавляет теги по известным уязвимостям, но на это не стоит полагаться как на сканер. - История: Вот это киллер-фича. Censys хранит исторические данные, позволяя посмотреть, что было на IP-адресе, например, год назад.
Магия в командной строке: Практические примеры
Теория — это хорошо, но давайте к практике. Далее я буду часто использовать утилиту jq для красивого парсинга JSON-ответа. Советую поставить:sudo apt install jq
.1. Ищем "бесхозные" веб-серверы
Классический пример — поиск страниц с заголовком "Index of /", что часто говорит о незащищенной директории.
Bash:
censys search "services.http.response.html_title: 'Index of /'" --index-type hosts | jq
2. Раскручиваем домен через сертификаты
Допустим, наша цель —example.com
. Найдем все сертификаты, когда-либо выданные для этого домена и его поддоменов.
Bash:
censys search "names: example.com" --index-type certificates | jq ".[].parsed.names"
dev.example.com
, test.api.example.com
и т.д.).3. Ищем уязвимости ПРАВИЛЬНО Внимание!
Не ищите уязвимости по CVE в тегах, это ненадежно. Лучше искать по конкретным признакам уязвимого ПО. Возьмем для примера старый добрый Heartbleed. Он был в OpenSSL версий 1.0.1-1.0.1f.
Bash:
# Ищем хосты с уязвимыми версиями OpenSSL, которые могут быть подвержены Heartbleed
censys search "services.tls.heartbeat_enabled: true" --index-type hosts > heartbleed_targets.txt
4. Смотрим досье на конкретный IP
Узнаем все, что Censys знает о DNS-сервере Google.
Bash:
censys view 8.8.8.8
5. Собираем статистику: где больше всего серверов Apache?
С помощью модуляreport
можно строить сводные отчеты. Узнаем топ-5 стран по количеству веб-серверов Apache.
Bash:
censys report 'services.http.response.headers.server: "Apache"' --field location.country_code --index-type hosts --buckets 5
Классика для пентестера. Ищем хосты с открытым портом 3389 и операционной системой, похожей на Windows.
Bash:
censys search "services.port: 3389 and services.operating_system.product: 'Windows'" --index-type hosts > rdp_hosts.txt
А что насчет censys data?
Командаcensys data download
действительно существует, но она предназначена для аккаунтов с платной подпиской (Enterprise или для исследователей). Она позволяет скачивать огромные срезы данных Censys для оффлайн-анализа. Для рядового пользователя эта функция, скорее всего, будет недоступна.