Как хакеры используют Shodan для создания ботнетов
Moody
Согласно сайту Akamai, ботнет представляет собой компьютерную сеть, состоящую из множества подключенных к интернету устройств с запущенными на них ботами. Владельцы ботнетов управляют ими при помощи С&C серверов (серверов команд и управления) и могут использовать для:
- атак на отказ в обслуживании (DoS- и DDoS-атаки);
- перебора паролей при помощи Credential Stuffing атак;
- использования в качестве прокси-сервера;
- сбора и продажи информации с носителей
Что такое Shodan

Shodan - это поисковая система, которая позволяет пользователю находить компьютеры определенного типа (веб-камеры, роутеры, сервера и прочее), подключенные к Интернету, используя различные фильтры. Некоторые называют его поисковиком по служебным баннерам. Баннер, в контексте Shodan, - текстовая информация, которая описывает службу, работающую на устройстве. Например, для веб-серверов это будет хэдер, возвращаемый как отклик, для Telnet - экран входа.
Как создать ботнет
- Определить цели для атаки
- Анонимизировать траффик
- Взломать и заразить цели
1. Определение целей для атаки
Для того, чтобы найти определенные устройства в Shodan, используются дорки. Дорки - специальные операторы в поисковых системах, при помощи которых можно сузить поиск до интересующего нас контента, без "мусора" в поиске.
Например:
- authentication disabled port:445 - SMB-серверы без аутентификации. Такой запрос позволит найти открытые SMB-серверы для просмотра их содержимого без ввода данных для входа.
- “authentication disabled” port:5900,5901 - VNC-серверы без аутентификации.
- port:”3389” - RDP-сервера.
2. Анонимизация траффика
Перед тем, как преступник начнет атаковать конкретные устройства, ему необходимо использовать средства анонимизации для того, чтобы в последствие его не смогли идентифицировать после взлома. Один из таких способов является использование TOR.
TOR + Torsocks

Для начала необходимо установить сам TOR-сервер (как это сделать, можно прочитать тут).
После того, как он будет запущен, мы увидим примерно такой лог:
Dec 02 13:14:22.147 [notice] Tor 0.3.1.9 (git-727d3f1b5e6eeda7) running on Darwin with Libevent 2.1.8-stable, OpenSSL 1.0.2p, Zlib 1.2.11, Liblzma N/A, and Libzstd N/A. Dec 02 13:14:22.147 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning Dec 02 13:14:22.148 [notice] Read configuration file "/usr/local/etc/tor/torrc". Dec 02 13:14:22.151 [notice] Opening Socks listener on 127.0.0.1:9050 Dec 02 13:14:22.151 [notice] Opening Control listener on 127.0.0.1:9051 Dec 02 13:14:22.000 [notice] Parsing GEOIP IPv4 file /usr/local/Cellar/tor/0.3.1.9/share/tor/geoip. Dec 02 13:14:22.000 [notice] Parsing GEOIP IPv6 file /usr/local/Cellar/tor/0.3.1.9/share/tor/geoip6. Dec 02 13:14:22.000 [notice] Bootstrapped 0%: Starting Dec 02 13:14:22.000 [notice] Starting with guard context "default" Dec 02 13:14:22.000 [notice] Bootstrapped 80%: Connecting to the Tor network Dec 02 13:14:23.000 [notice] Bootstrapped 85%: Finishing handshake with first hop Dec 02 13:14:23.000 [notice] Bootstrapped 90%: Establishing a Tor circuit Dec 02 13:14:24.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working. Dec 02 13:14:24.000 [notice] Bootstrapped 100%: Done
Это значит, что сервер запущен и соединение успешно установлено.
Пакет TOR включает в себя программу Torsocks. Torsocks позволяет заставить приложение работать через сеть Tor без необходимости корректировать настройки самого приложения (иногда соответствующих настроек вообще нет). Иначе говоря, Torsocks - это обёртка между библиотекой и приложением с целью сделать каждое интернет-соединение проходящим через сеть Tor. Сетевая активность, которую нельзя пропустить через Tor, будет отсекаться (например, UDP).
Torsocks использовать просто. Чтобы его использовать, необходимо ввести в консоли torsocks <программа>. После чего программа запустится и её трафик будет проходить через TOR.
Однако, не все программы поддерживают переменную окружения LD_PRELOAD, которая позволяет загрузить вашу библиотеку до загрузки остальных. Чтобы решить эту проблему, можно использовать следующий видео-гайд.

Чтобы проверить наличие утечки DNS, можно использовать ресурс https://www.dnsleaktest.com/.
Whonix

Если киддис сомневается, что сможете вручную все корректно настроить, на помощь приходит Linux-дистрибутив под названием Whonix.
Whonix — дистрибутив Linux на основе Debian, предназначенный для обеспечения анонимности средствами VirtualBox и Tor. Анонимность в сети достигается благодаря отказоустойчивому и общесистемному использованию сети TOR на нескольких виртуальных машинах, благодаря которому ни вредоносные программы, ни компрометация учётной записи суперпользователя не смогут привести к утечкам IP-адреса и DNS.
3. Взлом и заражение устройства
После того, как установлено безопасное соединение, необходимо оставить только те устройства, которые подвержены уязвимости удаленного выполнения кода.
Например
- OpenDreamBox 2.0.0 - Plugin WebAdmin RCE

- Jenkins manage plugins Groovy RCE


Заключительный шаг - установка агента на уязвимый сервер. Один из известных представителей - Merlin.
Весь процесс может быть автоматизирован при помощи Shodan API.
Заключение
Прежде чем эксплуатировать устройства, необходимо правильно настроить их конфигурацию в соответствиями с требованиями безопасности. В случае, если требуется сделать ту или иную службу общедоступной, прежде всего нужно обновить все программное обеспечение до последней версии и установить строгую аутентификацию. Это первые шаги в построении "здоровой" инфраструктуры.