SHODAN API: Поиск в Shodan на Python

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:

OVERBAFER1

LAMERLAND

TESTLAND

CRYPTOVER


❤ Мы в VK:

OVERPUBLIC1


❤ YouTube:

OVERBAFER1

IGOR OVER


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

OVERBAFER1.RU

Report Page