ГЛУБИННЫЙ ПОИСК С ИНСТРУМЕНТАРИЕМ SHODAN

ГЛУБИННЫЙ ПОИСК С ИНСТРУМЕНТАРИЕМ SHODANЧто такое Shodan? Его принято называть поисковиком по интернету вещей.

Т.е., другими словами, это поисковая система которая ищет устройства подключенные к интернету. Устройства и информацию о них. Использовать Shodan немного сложнее.

Как работает Shodan

Принцип работы Shodan, на самом деле, очень прост. Он ищет и собирает баннеры. Не те что на зданиях, а те которые описывают службу, используемую на устройстве. Баннер для Shodan это основная единица информации. Не только баннер конечно, но об этом чуть позже.

Один из примеров баннера — это баннер веб-сервера т.е. заголовок. Чтобы увидеть заголовок веб-сервера можно ввести команду:

curl -I https://hacker-basement.ru

Результат поисковой выдачи Shodan на использование протокола HTTP

Что мы узнаем из этого заголовка? В первую очередь мы видим, что используется протокол HTTP и код статуса 200.

По кодам статусов можно понять как реагирует сервер на запрос:
200 — все хорошо, запрос успешный;
300 — перенаправление на другую страницу;
400 — проблема с запросом;
500 — проблема с сервером.

После этого идет непосредственно сам заголовок. В котором содержится разнообразная техническая информация. Грубо говоря, смысл в том, что в абсолютно любом протоколе есть баннер. А в абсолютно любом баннере есть техническая информация. Она, конечно, отличается в зависимости от протокола, но смысл, я думаю, понятен. Именно эти данные и собирает Shodan. А учитывая что, очень часто, в баннере содержится довольно много данных описывающих само устройство, это может быть очень полезно. Помимо этого Shodan также собирает метаданные устройства. Например геолокацию, операционную систему и т.д.

Поиск

Перед тем как начинать работать с Shodan есть смысл там зарегистрироваться. Это имеет смысл хотя бы потому, что нам станет доступно больше результатов поиска, фильтры и можем получить свой API ключ. Он понадобится немного позже. Переходим непосредственно к поиску.

Интерфейс поисковой системы Shodan

Самый простой вариант поиска — это ввести название или производителя нужного нам устройства. Например если мы введем tp-link то справа увидим найденные устройства и их баннеры, а слева некоторые статистические данные, по которым также можно отфильтровать устройства. Также нужно помнить, что это не Google, а потому запрос для поиска обрабатывается как точное выражение, без всяких вариаций.

Результаты поисковой выдачи Shodan по устройствам tp-link

Подобный поиск вряд ли может быть полезен из-за огромного количества результатов. Например только если заниматься сбором статистики.

Тут ещё нужно отметить, что по умолчанию Shodan показывает результаты собранные за последние 30 дней и ищет только по баннерам, не принимая в учет метаданные.

Чтобы исправитьэту ситуацию и конкретизировать результаты поиска нужно использовать фильтры.

Фильтры Shodan

Фильтры — это, по сути, просто конкретизация запроса. Они работают как уточнение запроса.

Тут нужно учитывать, что чтобы максимально эффективно использовать Shodan нужно очень хорошо понимать: во-первых что ты хочешь найти, а во-вторых как работает нужное тебе устройство: какое программное обеспечение использует, какие у него бывают версии, какой протокол, ну и другую техническую информацию в зависимости от устройства.

Да и вообще для практики и тренировки неплохо будет изучить что и как люди ищут. Для этого Shodan собирает наиболее популярные запросы:

https://www.shodan.io/explore/popular?page=1

Теперь более подробно о самих фильтрах. Как видно  запрос tp-link дал нам почти полтора миллиона результатов. Это очень много.

Что бы сократить количество результатов, можно отфильтровать их по стране. Для этого используется фильтр country и, после двоеточия, без пробелов указываем код страны.

Например: tp-link country:RU покажет результаты по России. Чтобы было легче использовать этот фильтр ниже таблица с кодами стран:

Таблица с кодами стран для поиска в Shodan

По такому же принципу работают и другие фильтры. Т.е. логика их использования такая: сначала указываем сам запрос, а потом пишем фильтр и через двоеточие, без пробела, значение для фильтра. Если значение состоит из нескольких слов то его нужно взять в кавычки.

запрос фильтр:значение

Наиболее популярные фильтры Shodan:

country: — покажет данные только по выбранной стране:

country:RU

city: — покажет данные только по выбранному городу:

city:Moskow

os: — найти определенную операционную систему, например os:linux

geo: — поиск по геопозиции, нужно указать координаты:

geo:»45.0746,39.0587″

port: — покажет результаты только по выбранному порту:

port:22

hostname: — будет искать только в определенной доменной зоне:

hostname:.ru

net: — поиск в заданном сетевом диапазоне:

net:190.73.40.50/24

product: — поиск по названию программы отдающей баннер:

product:openssh

Также нужно знать, что если мы хотим убрать из выдачи результаты по какому то фильтру, то перед фильтром нужно поставить знак минус, например если написать country:UA -city:Kiev, то нам покажет все результаты поиска по Украине, без результатов по Киеву. По такому же принципу это работает и с другими фильтрами.

Примеры поиска в Shodan

Чтобы было более понятно, как все это работает давай посмотрим реальные примеры поиска. Для примера найдем вебкамеры, в Москве, которые используют порт 8080:

webcam country:RU city:Moscow port:8080

Результаты поисковой выдачи по вебкамерам города Москвы

Теперь, найдем, например, сервера nginx, под управлением операционной системы Linux, с открытым портом 5000

nginx os:linux port:5000

Результаты поиска серверов nginx с открытым портом 5000

Таких серверов очень много. Полученные результаты можно дополнительно отфильтровать по параметрам которые мы видим в таблице слева. А если выберем какой-то конкретный результат, то увидим развернутую информацию о нем. В том числе IP-адрес, геопозицию, страну, какие порты открыты, какие службы эти порты используют, ну и кончено баннеры этих служб.

Я думаю, с тем как формировать запросы Shodan более-менее понятно. Это, кончено, один из самых важных моментов, но далеко не все о чем нужно и важно знать.

Shodan CLI

Работать с Shodan можно не только через сайт, но и прямо из терминала. Причем в некоторых ситуациях так даже удобнее и быстрее. Для начала нужно установить библиотеку Python для Shodan. Потом добавить свой API ключ, чтобы его получить нужно зарегистрироваться на сайте и перейти в раздел My Account.

sudo apt install python3-shodan
shodan init API
shodan

Вводим команду Shodan и видим справку по использованию.

Справка по использованию Shodan

Общая справка по Shodan

Использование: shodan [OPTIONS] COMMAND [ARGS]…

Опции:

-h, --help - показать это сообщение и выйти.

Команды:

alert  - управление сетевыми оповещениями для вашей учетной записи

convert - преобразовать указанный файл входных данных в другой формат

count - возвращает количество результатов поиска

data - массовый доступ к Shodan

domain - просмотр всей доступной информации для домена

download - скачать результаты поиска и сохраните их в формате JSON

honeyscore - проверить, является ли IP-адрес приманкой или нет

host - просмотр всей доступной информации по IP-адресу

info - показать общую информацию о вашей учетной записи

init - инициализировать командную строку Shodan

myip - показать внешний IP-адрес

org - управление доступом вашей организации к Shodan

parse - извлечь информацию из файлов JSON

radar - карта некоторых результатов в реальном времени, когда их находит Shodan

scan - сканирование IP/netblock с помощью Shodan

search - поиск в базе данных Shodan

stats - показать сводную информацию о поисковом запросе

stream - потоковая передача данных в реальном времени

version - версия для печати этого инструмента

Также по каждой команде есть дополнительные фильтры и параметры которые можно указать. Например, что бы увидеть фильтры для команды search:

shodan search -h

Фильтры для команды search в Shodan

Теперь раcсмотрим как это все работает. Алгоритм в принципе довольно простой. Зависит, конечно, от ситуации, но в большинстве случаев можно начать с команды count, она покажет сколько всего результатов по интересующему нас запросу. Например, давай глянем сколько в России серверов nginx с открытым портом 443:

shodan count nginx port:443 country:RU

Результат поисковой выдачи количества серверов nginx в России

Видим из ответа, что таких серверов 272353. Запрос надо уточнять. Как видите эта команда позволяет быстро оценить возможное количество результатов поиска.

Следующая команда которую придется применять часто - download. Она позволяет сделать поиск по нашему запросу и скачать результаты в файл JSON, в котором каждая новая строка это новый баннер. По умолчанию скачивает первую тысячу результатов. Если нужно другое количество то используется параметр —limit.

shodan download nginx port:5555 country:RU

Результаты поисковой выдачи команды download в Shodan

Если нужно обработать данные полученные командой download, используем команду parse, после которой перечисляем поля по которым хотим отфильтровать данные. Например:

shodan parse --fields ip_str,org,location nginx.json.gz

Результаты поисковой выдачи команды parse в Shodan

Следующая команда host. Позволяет просмотреть информацию о хосте.

shodan host 184.31.72.83

Результаты поисковой выдачи о хосте в Shodan

Ну и одна из самых актуальных команд, просто потому что она позволяет делать то что мы перед этим делали в браузере т.е. искать. Вводим команду search и указываем нужный нам поисковый запрос, который формируем точно также как мы делали на сайте Shodan. Если нужно вывести результат только по определенным значениям добавляем параметр —fields. Также как мы делали при использовании команды parse.

shodan search webcam country:RU city:Moscow port:8080

Результат поисковой выдачи вебкамер в Москве

Карты Shodan

Когда ты что-то ищешь в Shodan можно визуализировать расположение найденных результатов перейдя на Shodan Maps. Практическая полезность ситуативная, лично у меня ни разу такой необходимости не было. Но тем не менее такая возможность есть и знать о ней стоит.

Карты Shodan

Shodan Images

Shodan сохраняет себе все скриншоты которые ему попадаются. В основ это скрины удаленного доступа и камеры видеонаблюдения. Опять же практическая составляющая данной функции мне не совсем понятна. Но ради интереса заглянуть можно.

Скриншоты вебкамер в Shodan

Shodan Exploit

Ещё одна интересная особенность Shodan в том что он собирает уязвимости и эксплойты. Их поиск немного отличается, нам нужно указать платформу под которую мы хотим найти уязвимость и вид уязвимости. Например:

platform:windows type:exploit

Результаты поисковой выдачи уязвимостей в Shodan

Ну, а на этом наше знакомство с Shodan можно считать оконченным. Как видишь возможности у него очень не слабые и в некоторых ситуациях он может быть очень полезен. Ну и не забывай возвращаться к нам, ведь есть ещё очень много что нам предстоит изучить.

Источник: https://hacker-basement.ru/2020/08/07/shodan-poisk-v-glubinax-interneta/

Опубликовано: 6.12.2021