SHODAN API: Поиск в Shodan на Python
TestLand
SHODAN является одним из наиболее интересных веб-инструментов среди хакеров, который позволяет искать уязвимые устройства в сети.
Однако каждый раз заходить в браузер для поиска - довольно надоедливое занятие, поэтому мы можем воспользоваться модулем Shodan и выполнять поиск прямо в терминале. Это удобнее, быстрее и проще.
К тому же, в этой статье я вам предоставлю бесплатный API-ключ от Shodan для использования.
Установка:
Начнём с установки модуля:
pip install shodan

Пишем тестовый скрипт:
Как только библиотека Shodan установлена, мы можем начать писать новый скрипт Python.
Первое, что мы хотим добавить к этому файлу — это строка, которая будет загружать библиотеку Shodan:
import shodan
Затем мы определяем наш API-ключ Shodan, чтобы скрипт мог использовать его для воспроизведения запросов:
SHODAN_API_KEY = "insert your API key here" api = shodan.Shodan(SHODAN_API_KEY)

Если у вас нет API-ключа, то вы можете воспользоваться бесплатным, поискав в интернете.
В качестве примера предоставляю ключ, который я взял из утилиты "free_shodan":
PSKINdQe1GyxGgecYz2191H2JoS9qvgD

Добавляем ещё несколько строк для скрипта, который будет производить запросы и отображать результаты в терминале:
# Show the results print 'Results found: %s' % results'total' for result in results'matches': print 'IP: %s' % result'ip_str' print result'data' print '' except shodan.APIError, e: print 'Error: %s' % e

Запуск сценария должен возвращать несколько IP-адресов и некоторую информацию, связанную с ними, включая статус HTTP, местоположение и другую информацию об устройстве, проиндексированную Shodan. Эта информация формируется точно так же, как и данные, отображаемые при поиске в веб-интерфейсе.

Однако не всегда нужно выводить подробную информацию, в некоторых случаях достаточно просто отобразить список IP-адресов по запросу.
В таком случае редактируем код:
print 'IP: %s' % result'ip_str' print 'Results found: %s' % results'total' print result'data' print ''

Запускаем скрипт и видим, как в терминале отображаются только IP:

Помимо этого, чтобы сохранить все эти IP в файл, достаточно запустить скрипт следующей командой, указав вместо log.txt любое доступное имя файла:
python2 search.py >> log.txt
По такому же принципу работает утилита "free_shodan", но давайте рассмотрим и другие методы использования модуля.
Пингуем хосты:
Напишем небольшой Bash-скрипт для автоматизации проверки соединения:
#!/bin/bash cat log.txt | while read line do ping $line done

Выдаём разрешение на запуск:
chmod +x ping.sh
И запускаем:
./ping.sh

Тоже самое можно сделать на примере NMap, чтобы утилита сканировала найденные хосты:

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

❤ Мы в Telegram:
❤ Мы в VK:
❤ YouTube:
🔥 Telegram-Бот для разведки и поиска информации в сети: