Shodan — это специализированная поисковая система, которая позволяет найти устройства, подключенные к Интернету, такие как веб-камеры, маршрутизаторы, серверы, системы "умного дома", промышленные контроллеры, системы безопасности, базы данных и другие устройства. В отличие от традиционных поисковых систем, таких как Google, которые индексируют веб-страницы, Shodan фокусируется на сканировании и индексации метаданных, полученных от устройств, подключенных к сети.
Shodan часто называют "поисковиком для хакеров", потому что он предоставляет доступ к устройствам, которые иногда могут быть неправильно настроены, оставлены без защиты или содержат уязвимости. Однако это инструмент, который активно используется не только злоумышленниками, но и специалистами по кибербезопасности, исследователями, системными администраторами и правоохранительными органами для анализа атак, проверки безопасности инфраструктуры и выявления уязвимостей.
Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить.
Как работает Shodan?
Shodan сканирует Интернет, отправляя запросы ко всем IP-адресам в поисках открытых портов и сервисов. В процессе он собирает и хранит информацию, такую как:
- Баннеры (информация, которую устройство отправляет при подключении, например, версия ПО, операционная система и другие метаданные).
- Тип устройства и его производитель.
- Открытые порты и используемые протоколы (HTTP, FTP, SSH, Telnet, RDP и др.).
- Географическое расположение устройства (на основе IP-адреса).
- Используемые сертификаты и конфигурации SSL/TLS.
- Потенциальные уязвимости, связанные с конкретным устройством или ПО.
Эти данные индексируются и становятся доступными для поиска через веб-интерфейс или API Shodan.
Основные функции Shodan
1. Поиск устройств:
Shodan позволяет находить устройства по множеству параметров, включая:
- IP-адрес.
- Название производителя или модели устройства.
- Операционная система.
- Открытые порты.
- Географическое местоположение.
- Используемый протокол (например, HTTP, FTP, Telnet).
2. Фильтры для поиска:
Shodan предоставляет мощные фильтры для уточнения запросов. Например:
- country: поиск по стране (например, country:RU).
- city: поиск по городу (например, city:Moscow).
- port: поиск по определенному порту (например, port:22 для SSH).
- hostname: поиск по имени хоста (например, hostname:example.com).
- os: поиск по операционной системе (например, os:Linux).
- before/after: поиск по дате индексации (например, before:2023-10-01).
3. Проверка уязвимостей:
Shodan интегрирован с базой данных уязвимостей (CVE — Common Vulnerabilities and Exposures). Это позволяет находить устройства с известными уязвимостями, что полезно для анализа безопасности.
4. Мониторинг сети:
Shodan может быть использован для мониторинга вашей собственной сети. Вы можете настроить уведомления, чтобы получать оповещения, если в вашей инфраструктуре появились новые устройства или открылись уязвимые порты.
5. Shodan API:
Для разработчиков и специалистов Shodan предоставляет API, который позволяет автоматизировать поиск и интегрировать функционал в другие инструменты. API используется для выполнения сложных запросов, построения отчетов и мониторинга инфраструктуры.
6. Shodan Maps и Shodan Images:
- Shodan Maps: визуализация географического расположения устройств на карте.
- Shodan Images: поиск снимков с подключенных камер или других устройств, передающих изображения.
Установка и использование Shodan
Shodan можно использовать через веб-интерфейс, командную строку (CLI) или API. В зависимости от ваших целей и навыков, вы можете выбрать наиболее подходящий способ. Вот пошаговая инструкция:
1. Использование Shodan через веб-интерфейс
Это самый простой способ для начинающих пользователей. Вам не нужно ничего устанавливать — достаточно зарегистрироваться и использовать веб-сайт Shodan.
Шаги:
1. Зарегистрируйтесь на сайте Shodan:
Перейдите на официальный сайт Shodan.
Нажмите "Sign Up" (Регистрация) и создайте учетную запись, указав email, пароль и другие данные.
2. Войдите в систему: После регистрации войдите в вашу учетную запись.
3. Начните поиск: В поисковой строке на главной странице введите запрос, например:
port:80 country:RU
Это покажет устройства в России с открытым портом 80 (обычно веб-сервера).
4. Используйте фильтры:
Применяйте фильтры для уточнения поиска. Например:country:RU — устройства в России.
port:22 — устройства с открытым SSH.
product:MongoDB — поиск баз данных MongoDB.
Полный список фильтров доступен в документации Shodan.
5. Просмотр результатов: Нажмите на любой результат, чтобы увидеть подробные данные об устройстве: IP-адрес, открытые порты, метаданные и даже уязвимости.
6. Платная подписка (по желанию): Бесплатная версия Shodan имеет ограничения на количество запросов. Для снятия ограничений можно приобрести подписку (например, "Shodan Membership" за 49 USD — разовая плата).
2. Установка Shodan CLI (Command Line Interface)
Для более продвинутых пользователей, особенно тех, кто работает с терминалом, можно установить CLI-версию Shodan. Это позволит выполнять запросы и автоматизировать задачи через командную строку.
Шаги:
1. Установите Python:Shodan CLI требует Python версии 3.7 или выше. Проверьте текущую версию Python:
python3 --version
Если Python не установлен, загрузите и установите его с официального сайта Python.
2. Установите Shodan CLI через pip:
- Откройте терминал и выполните:
pip install shodan
Эта команда установит инструмент Shodan.
3. Получите API-ключ: Войдите в свою учетную запись на сайте Shodan.
Перейдите на страницу API и скопируйте ваш API-ключ.
4. Настройте Shodan CLI: В терминале выполните:
shodan init YOUR_API_KEY
Замените YOUR_API_KEY на ваш API-ключ.
Использование Shodan CLI:
Примеры команд:
1. Поиск устройств с открытыми портами
Найти устройства с открытым портом 80 (HTTP):
shodan search "port:80"
Найти устройства с открытым портом 22 (SSH):
shodan search "port:22"
Найти устройства с открытым портом 3389 (RDP — удаленный рабочий стол):
shodan search "port:3389"
2. Поиск по стране
Найти все устройства в России:
shodan search "country:RU"
Найти устройства с открытым портом 443 (HTTPS) в США:
shodan search "port:443 country:US"
3. Поиск по конкретному устройству или ПО
Найти устройства с веб-камерой:
shodan search "product:webcam"
Найти устройства с доступным интерфейсом Elasticsearch:
shodan search "product:Elasticsearch"
Найти устройства с базой данных MongoDB без пароля:
shodan search "product:MongoDB 'Authentication Disabled'"
Найти устройства с базой данных Redis, доступной без авторизации:
shodan search "product:Redis 'unauthorized access'"
4. Поиск уязвимых устройств
Shodan может искать устройства, уязвимые к конкретным уязвимостям (CVE). Это возможно благодаря интеграции с базой данных уязвимостей.
Найти устройства, уязвимые к CVE-2021-44228 (Log4Shell):
shodan search "vuln:CVE-2021-44228"
Найти устройства, уязвимые к CVE-2017-0144 (уязвимость EternalBlue, использовавшаяся в атаке WannaCry):
shodan search "vuln:CVE-2017-0144"
Найти устройства с открытым Telnet, которые могут быть подвержены атакам:
shodan search "port:23"
Найти Apache-серверы с уязвимостями:
shodan search "product:Apache vuln:"
5. Поиск по географическим данным
Найти устройства в определенном городе, например, в Москве:
shodan search "city:Moscow"
Найти устройства в определенном регионе или области:
shodan search "region:California"
6. Поиск по производителям и устройствам
Найти устройства от производителя Cisco:
shodan search "Cisco"
Найти устройства от производителя MikroTik:
shodan search "MikroTik"
Найти веб-серверы nginx:
shodan search "server:nginx"
7. Поиск по SSL/TLS сертификатам
Shodan может анализировать SSL/TLS сертификаты, что полезно для проверки конфигурации HTTPS.
Найти устройства с сертификатами, выданными Let's Encrypt:
shodan search "ssl:Let's Encrypt"
Найти устройства с истекшими сертификатами:
shodan search "ssl.expired:true"
Найти устройства с самоподписанными сертификатами:
shodan search "ssl.self_signed:true"
8. Поиск по баннерам (информация о сервисе)
Shodan позволяет искать текстовую информацию в баннерах (например, версии ПО или сообщения).
Найти устройства с баннером, содержащим текст "Welcome":
shodan search "banner:Welcome"
Найти устройства с баннером "Unauthorized access":
shodan search "banner:'Unauthorized access'"
9. Поиск промышленных и IoT-устройств
Shodan может находить устройства, связанные с промышленными системами (ICS/SCADA), а также IoT-устройства.
Найти устройства с протоколом Modbus (промышленные контроллеры):
shodan search "port:502"
Найти устройства с интерфейсом BACnet (автоматизация зданий):
shodan search "port:47808"
Найти устройства "умного дома" с открытым интерфейсом:
shodan search "home automation"
10. Поиск по организациям
Найти устройства, принадлежащие конкретной организации, например, Google:
shodan search "org:Google"
Найти устройства в сети определенного интернет-провайдера:
shodan search "isp:Comcast"
11. Поиск с помощью маски IP-адресов
Найти устройства в диапазоне IP-адресов:
shodan search "net:192.168.0.0/24"
Найти устройства на конкретном IP-адресе:
shodan host 8.8.8.8
12. Проверка собственной сети
Найти устройства в вашей собственной сети (если вы знаете свой внешний IP или диапазон):
shodan search "net:YOUR_IP_RANGE"
Замените YOUR_IP_RANGE на диапазон вашей сети, например 192.168.1.0/24.
13. Дополнительные функции CLI
Получить информацию о своем текущем IP-адресе:
shodan myip
Получить статистику по запросу:
shodan stats "port:80"
Проверить доступные команды:
shodan --help
Полезные советы
1. Уточняйте запросы, добавляя фильтры. Например, вместо общего поиска "port:80", можно использовать:
shodan search "port:80 country:RU city:Moscow"
2. Используйте команду shodan stats для получения агрегированных данных.
Например:
shodan stats "port:80"
Это покажет статистику по портам, странам и другим параметрам.
3. Автоматизация с помощью скриптов. Если вы часто выполняете одни и те же запросы, автоматизируйте их с использованием Shodan API и Python.
3. Использование Shodan API
Shodan API — это инструмент для разработчиков и специалистов по безопасности, позволяющий интегрировать поиск в собственные приложения или автоматизировать задачи.
Шаги:
1. Получите API-ключ:Как и в случае с CLI, вам потребуется API-ключ из вашего аккаунта Shodan.
2.Установите библиотеку Shodan для Python:Если вы работаете с Python, установите библиотеку:
pip install shodan
3. Пример использования API: В Python вы можете написать скрипт для поиска устройств. Например:
4. Документация API:
- Ознакомьтесь с официальной документацией Shodan API, чтобы узнать о доступных методах и их функционале.
4. Использование Shodan через сторонние инструменты
Shodan интегрируется с рядом других инструментов, таких как:
- Metasploit Framework: Для проведения тестов на проникновение.
- Nmap: Для расширенного сканирования сети.
- Maltego: Для построения графов и визуализации связей между устройствами.
Для этого вам потребуется установить соответствующий инструмент и настроить его для работы с Shodan API.
5. Рекомендации по этическому использованию
Shodan предоставляет доступ к огромному количеству данных, поэтому важно соблюдать этические нормы и законы:
- Сканируйте только те устройства, которые вам принадлежат или на которые у вас есть разрешение.
- Не используйте Shodan для незаконной деятельности.
- Убедитесь, что ваши действия соответствуют местным законам о кибербезопасности.
6. Как защититься от сканирования Shodan?
Чтобы минимизировать риск обнаружения ваших устройств через Shodan:
- Закройте ненужные порты и отключите неиспользуемые сервисы.
- Используйте сложные пароли и двухфакторную аутентификацию.
- Убедитесь, что устройства обновлены до последней версии прошивки.
- Настройте брандмауэры для ограничения доступа к устройствам.
- Используйте VPN для скрытия устройств от прямого доступа из Интернета.
Заключение
Shodan — это мощный инструмент для анализа глобальной сети. Вы можете использовать его через веб-интерфейс, командную строку или API, в зависимости от ваших потребностей. Однако, несмотря на функционал, он требует ответственного подхода и понимания этических границ использования.
Поддержать блог можно лайком и комментарием. А если хочется сделать больше, можно кинуть монетку сове на кофе.
Раз вы прочитали эту статью, скорее всего вам будет интересен весь раздел про Анонимность в сети, а также Инструменты хакера / пентестера
Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?
Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика
Пишите в комментариях что еще было бы интересно рассмотреть более подробно.