Друга частина присвячена пошуковим можливостям Shodan. У ній детально описано структуру пошукових запитів, синтаксис фільтрів і принцип роботи пошукового рушія. Окремо розглядаються карти Shodan, стилі візуалізації, уразливості, а також модуль роботи з веб-компонентами та інтерфейсами. Ви навчитеся ефективно формувати запити, знаходити нестандартні служби й аналізувати результати. Додані приклади практичних вправ і зовнішніх інструментів для розширення функціоналу.
Інтерфейс командного рядка Shodan (CLI) постачається разом з офіційною Python-бібліотекою Shodan. Це означає, що якщо ви користуєтеся найновішою версією бібліотеки, то у вас уже є доступ до CLI. Для встановлення нового інструмента потрібно виконати команду:
Після завершення встановлення інструмент необхідно ініціалізувати вашим ключем API:
API-ключ для свого облікового запису можна отримати на сайті https://account.shodan.io
Команда alert дає змогу створювати, переглядати, очищати та видаляти сповіщення мережі. Вона використовується для моніторингу змін у вашому середовищі або для отримання попереджень про нові пристрої в межах заданої IP-мережі.
Команда convert перетворює стиснений JSON-файл, створений Shodan, у інші формати файлів. На цей момент підтримується конвертація у формати kml та csv. Це зручно, коли потрібно представити результати у вигляді таблиці або нанести їх на карту.
Команда count показує кількість результатів, які відповідають певному пошуковому запиту. Приклад використання:
Результат:
Цей приклад показує кількість серверів Microsoft IIS 6.0, знайдених у базі даних Shodan.
Команда download виконує пошук у Shodan і зберігає результати у файл, де кожен рядок містить окремий JSON-банер. За замовчуванням завантажується лише 1000 результатів. Якщо потрібно більше, можна скористатися прапорцем –limit.
Команда download є однією з найчастіше використовуваних, оскільки дозволяє не тільки отримати результати, але й зберегти їх для подальшої обробки командою parse. Оскільки перегортання результатів витрачає ваші query credits, доцільно зберігати дані локально, щоб не витрачати кредити повторно під час повторних запитів.
Перегляд інформації про хост: його географічне розташування, відкриті порти та організацію, якій належить IP-адреса.
Приклад:
$ shodan host 189.201.128.250
honeyscore — перевіряє, чи є IP-адреса honeypot’ом, тобто системою, що імітує промисловий пристрій для виявлення спроб атак.
Приклад:
info — показує основну інформацію про ваш тариф API, зокрема кількість запитів і сканувань, що залишилися у цьому місяці.
Приклад:
myip — показує вашу зовнішню IP-адресу, з якої ви виходите в інтернет.
Приклад:
parse — використовується для аналізу файлу, отриманого за допомогою команди download. Дозволяє відфільтрувати потрібні поля, конвертувати JSON у CSV і легко інтегрується з іншими скриптами.
Приклад: