Статья Как использовать Shodan API с Python для автоматизации сканирования уязвимых устройств

Йоу йоу йоу ! Здравствуйте мои дорогие читатели, друзья и испытатели!

Открываю рубрику Python для тестирования на проникновения!

Вся информация в моих статьях содержит сугубо ознакомительный характер, предупреждаю вас если вы будете использовать ее во вред, вас могут преследовать по закону УКРФ и вы понесете наказание в рамках закона.

Сегодня я хочу поговорить о супер поисковике "Shodan"

Как использовать Shodan API с Python, для автоматизации сканирования уязвимых устройств

Шодан называет себя «поисковиком для подключенных к интернету девайсов». С таким количеством устройств, подключенных к интернету с различными уровнями безопасности, специальные возможности этой поисковой системы дают нам огромные шансы для проведения тестирования и атак. В этом уроке мы будем использовать Python для уязвимостей программного обеспечения, и извлечения уязвимых IP-адресов из Shodan.

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

Здесь «Mr. robot», Tyrel использует поисковую систему Shodan для сбора информации об Evil Corp. и выполняет поиск «Apache Tomcat».

Поиск, подобный тому, который используется Tayrel Walleck, может найти полезную информацию о потенциальной цели. Используя эту же методику, мы посмотрим, что можно найти, используя функцию поиска Shodan и как его можно использовать для взлома.

Ну что интересно? Погнали! ;)
  1. Для начала разберемся с Shodan
Доступ к Shodan можно получить путем перехода на в веб-браузере.

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

например как в сериале Mr.robot от которого я просто тащусь))

org:"Evil Corp" product:"Apache Tomcat"

Мы можем набрать эту же команду ,но так как компания Evil Corp. вымышлена, то скорее всего, этот запрос не вернет нам никаких результатов. или вернет второй компонент запроса, это будет «apache Tomcat», выполнение поиска требует использования специальных фильтров, и эта опция будет доступна только зарегистрированным пользователям. Учетную запись Shodan можно легко зарегистрировать, нажав кнопку «Войти / зарегистрироваться» в правом верхнем углу домашней страницы или непосредственно посетив account.shodan.io/register.

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

И так переходим к поисковым фильтрам:
Код:
country: Страна
city: Город
geo: Гео локация
hostname: Хост
net: ip адрес
os: Операционная система
port: Порт
Кароче ребят, извините. Что то надоело мне про Shodan мыслить, знаю что этого материала достаточно написано в интернете . Не будем зря тратить не мое, не ваше время,а давайте перейдем сразу к работе с Python.

2. Вызов API Shodan с помощью Python

Чтобы использовать Python для запросов с использованием Shodan API, нам нужна функциональная среда Python, и установленный модуль Shodan Python. В примерах, используемых в этом посте, используется Python 2.7. Python 3 тоже работает , но требует ряд изменений синтаксиса. В операционных системах Linux на базе Debian Python 2.7 можно установить, открыв терминал и выполнить команды.
Код:
sudo apt-get update && sudo apt-get install python2.7
sudo apt-get install python-pip
sudo pip install shodan
sudo pip2.7 install shodan
easy_install shodan
Так , Python и библиотека Shodan установлены, мы можем начать писать скрипт Python. В командной строке Linux создадим файл с помощью редактора nano. Обязательно выберите имя файла, отличное от «shodan», чтобы не было конфликтов между ссылкой на библиотеку и скриптом. Давайте создадим файл под названием «search_ip.py»
Код:
nano search_ip.py
Для начала добавим строку которая будет загружать библиотеку Shodan. Мы будем использовать функцию импорта Python .
Код:
import shodan
Сейчас откройте личный кабинет в shodan и зайдите в свой акаунт скопируйте API key

и подставьте его в данные

SHODAN_API_KEY = "введите свой ключ сюда"

api = shodan.Shodan(SHODAN_API_KEY)

Теперь мы используем try, чтобы определить, что должен делать скрипт. После этого мы сможем добавить команду, которая использует блок api.search API Shodan для фактического запроса результатов поиска.
Код:
try:
     results = api.search('apache')
В этом примере строка поиска просто "apache" однако мы можем заменить ее на любую другую с фильтрами которые я дал выше.
Код:
#показать результат поиска

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
ВОУ ВОУ ВОУ ! Теперь этот скрипт нужно сохранить запустить и протестить, сохраняем ctrl +o и выходим ctrl +x

Запустим этот скрипт в той директории где мы сейчас находимся python2 search_ip.py

Та да дад дам! вуаля! Все работает!!!! :)

Ну вот теперь у нас есть инфа которая выглядит так:
Код:
IP: 11*.**.***.*2
HTTP/1.1 401 Authorization Required
Date: Sat Dec 16 15:53:50 2017
Server: Apache/2.0.40 (Red Hat Linux)
WWW-Authenticate: Digest realm="DigAuth", nonce="iNq3wdl1yKpo/qq1ZejbBNWGLg90gFfDTJ6Eng5aqjDpOuenMCDNQaUb7SPbXvf", algorithm=MD5, domain="/", qop="auth"
Vary: accept-language
Accept-Ranges: bytes
Content-Length: 0
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Круто! Ну в принципе автоматизировано, но может быть мы просто хотим много целевых айпишников, чтобы потом рассказать их владельцам.

А давайте изменим строки в скрипте чтобы выдавались одни айпи адреса!

Было
Код:
print 'IP: %s' % result['ip_str']
стало
Код:
results = api.search('apache')

#Show the results
for result in results['matches']:
print '%s' % result['ip_str']
except shodan.APIError, e:
print 'Error: %s' %e
Воп Воп, и мы получили кучу ценнейших отфильтрованных ip адресов! congratulations))

Отлично! а давайте напишем скрипт который сразу будет пинговать наши водоемы на предмет наличия живой рыбы. А да, еще надо эту инфу сразу отправить в тхт >>
Код:
python2 search_ip.py >> log_ip_shodan.txt
Теперь у нас есть текстовый файл, содержащий список IP-адресов, которые мы можем использовать для тестирования различных атак, в зависимости от того, какие условия поиска мы использовали для идентификации отдельных видов уязвимых систем.

Так приступим к пингу создадим .sh файл
Код:
nano ping_ip.sh
#!/bin/bash
cat log_ip_shodan.txt | while read line
do
ping $line
done
Сохраняем ctrl +o, закрываем ctrl +x

задаем права на исполнение
Код:
chmod +x ping_ip.sh
5.4.3.2.1......
Пуск!
Код:
./ping_ip.sh
Если работает, то вы успешно получили результаты от Shodan и обработали их! Пинг - это не вектор атаки, но с небольшими незначительными изменениями подобный скрипт может использоваться злоумышленником для злых целей которые караются по закону и портят карму!

Ребятишки ! Сделаем еще круче?! Пришьем nmap.

Добавим параметр -sS для тихого сканирования SYN что нас даже не кто и не припалит ;) УхАХАХА(злорадный смех)

Добавим в nmap -sS в начало 3й линии получится
Код:
#!/bin/bash

cat log_ip_shodan.txt | while read line
do
nmap -sS $line
done
Этот формат можно расширить до практически любой другой атаки, которая может быть запущена из командной строки и включает в себя IP. Такое сканирование и атака нескольких целей - чрезвычайно эффективный метод обнаружения уязвимых систем, не тратя времени на индивидуальное обнаружение и атаку их вручную.

Всем спасибо! Следите за моим блогом, будет очень много интересного! sbs196.ru

p.s Пока подача контента выглядит не можко не эстетично, но все исправим это мои первые шаги!


следите за моим блогом, полный отчет о моих достижениях за пол года с 0 в ИБ который будет 31 декабря 2017! здесь ===> https://codeby.net/threads/blog-kak-ja-deputatom-stal-blagodarja-informacionnoj-bezopasnosti.60012/
 
Последнее редактирование модератором:
V

Valkiria

Низкая уникальность текста.
WebWare Team, ни в коем случае не хочу обидеть тебя, но не смогла не сдержаться от соблазна оставить комментарий.
Дело в том, что у подобных текстов уникальность не может равняться 100 процентам из-за подобных строк.
Код:
#!/bin/bash
cat log_ip_shodan.txt | while read line
do
nmap -sS $line
done
Такие строки невозможно изменить и они отрицательно влияют на прохождение тестов на уникальность.
На форуме выкладываются не просто литературные статьи.
 

Сергей Попов

Кодебай
30.12.2015
4 718
6 705
BIT
369
WebWare Team, ни в коем случае не хочу обидеть тебя, но не смогла не сдержаться от соблазна оставить комментарий.
Дело в том, что у подобных текстов уникальность не может равняться 100 процентам из-за подобных строк.
Код:
#!/bin/bash
cat log_ip_shodan.txt | while read line
do
nmap -sS $line
done
Такие строки невозможно изменить и они отрицательно влияют на прохождение тестов на уникальность.
На форуме выкладываются не просто литературные статьи.
Код в таком случае необходимо скрывать под спойлер. В данной статье заимствован не только код.
Прошу принять мой комментарий не как осуждение, а принять к сведению рекомендации.
Уверен, что автор текста знаком со словом "Рерайт". В случае с данной статьей поможет глубокий рерайт = заимствованный материал описать своими словами.
 
  • Нравится
Реакции: Vertigo и Valkiria

☠xrahitel☠

Grey Team
09.12.2016
240
305
BIT
84
Код в таком случае необходимо скрывать под спойлер. В данной статье заимствован не только код.
Прошу принять мой комментарий не как осуждение, а принять к сведению рекомендации.
Уверен, что автор текста знаком со словом "Рерайт". В случае с данной статьей поможет глубокий рерайт = заимствованный материал описать своими словами.
статья от сюда полный копипаст
[doublepost=1513463342,1513462590][/doublepost]есть хороший софт для автоматизации сканирования уязвимых устройств с Shodan API.

 
  • Нравится
Реакции: Underwood и Vertigo

pro194

Green Team
30.06.2017
41
63
BIT
0
Отсюда, оттуда, какая разница ? Что то я здесь такой статьи не видел. Стараешься тут, бумагу мараешь. Я что в конкурсе оригинальных статей участвую? мы тут питон вообще то изучаем. А это яркий пример красивого и рабочего кода с отличным выходом!
В следующий раз напишу «перевод статьи»
Хотя, нет в следующий раз ни чего писать не буду. Скину ссылку на видео. А лучше на курс в “Coursera” или на книжку по питону, Зачем время тратить, юзер сам все найдёт что ему нужно и сам код напишет. А когда код писать будет ему нужно обязательно указать ссылку на книгу или курс где он питон учил.
 
Последнее редактирование:

Сергей Попов

Кодебай
30.12.2015
4 718
6 705
BIT
369
Я что в конкурсе оригинальных статей участвую?
На кодебай запрещен копипаст.
В следующий раз напишу «перевод статьи»
Это одно из требований, если статья переведена. Ссылка на источник обязательна.

Перевод сделал другой человек:
заимствованный материал описать своими словами
Правильно ли я понимаю, что Вы не планируете изменять текст статьи ?
 
  • Нравится
Реакции: rastachiter и Kalina

☠xrahitel☠

Grey Team
09.12.2016
240
305
BIT
84
Отсюда, оттуда, какая разница ? Что то я здесь такой статьи не видел. Стараешься тут, бумагу мараешь. Я что в конкурсе оригинальных статей участвую? мы тут питон вообще то изучаем. А это яркий пример красивого и рабочего кода с отличным выходом!
В следующий раз напишу «перевод статьи»
Хотя, нет в следующий раз ни чего писать не буду. Скину ссылку на видео. А лучше на курс в “Coursera” или на книжку по питону, Зачем время тратить, юзер сам все найдёт что ему нужно и сам код напишет. А когда код писать будет ему нужно обязательно указать ссылку на книгу или курс где он питон учил.
p/s Просто надо Уважать труд других вот и всё не кто не против копипастов но что трудно поставить в конце статьи такие значки (© copyright) или (© rewrite) так как источник порой не известен и Всем сразу понятно будет и к Вам меньше тупых вопрос по части статьи будет,думаю Администрации следует это внести в правило, что-бы не возникало больше таких вопрос и что это это просто хороший тон.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!