Пишем Shodan-сканнер на Python
https://t.me/it_ha
[Авторский контент]
Доброго времени суток, господа. Сегодня пишем сканнер сайтов на Python и API от SHODAN. Для этого нам понадобятся библиотеки requests, sys и shodan. Поставить их можно так:
Так-же надо зарегаться на shodan и получить API-ключ. Там все просто. Зацикливаться на этом не будем. Вот наш код:
#!/usr/bin/python3
import shodan
import requests
import sys
SHODAN_API_KEY = "Ваш API-ключ"
api = shodan.Shodan(SHODAN_API_KEY)
#получаем нашу жертву от юзера
target = str(input("\nInput host: "))
#формируем запрос для Shodan
dnsResolve = 'https://api.shodan.io/dns/resolve?hostnames=' + target + '&key=' + SHODAN_API_KEY
try:
#получаем ответ от Shodan и выводим его в консоль
resolved = requests.get(dnsResolve)
hostIP = resolved.json()[target]
host = api.host(hostIP)
print("\nIP: %s" % host['ip_str'])
print("Organization: %s" % host.get('org', 'n/a'))
print("Operating System: %s" % host.get('os', 'n/a'))
for item in host['data']:
print("Port: %s" % item['port'])
print("Banner: %s" % item['data'])
for item in host['vulns']:
CVE = item.replace('!', '')
print("Vulns: %s" % item)
exploits = api.exploits.search(CVE)
for item in exploits['matches']:
if item.get('cve')[0] == CVE:
print(item.get('description') + '\n')
except Exception:
e = sys.exc_info()[1]
print(e.args[0] + '\n')
Вы наверняка хотите увидеть как оно работает:

Такое можно проводить почти с любыми сайтами. Наш скрипт будет выдавать нам открытые порты, возможные уязвимости и даже экспойты к ним.
Спасибо за внимание.