Серверы Minecraft как ботнет для DDoS атак

Серверы Minecraft как ботнет для DDoS атак

Спустя много лет я решил поиграть в Minecraft на пиратских серверах. Никакого исследовательского умысла не было - просто хотел поиграть. Но профессиональная деформация взяла свое: я начал ковырять функционал плагинов сервера. То, что я обнаружил, заставило забыть про игру и открыть Interactsh

Спустя много лет я решил поиграть в Minecraft на пиратских серверах. Никакого исследовательского умысла не было - просто хотел поиграть. Но профессиональная деформация взяла свое: я начал ковырять функционал плагинов сервера. То, что я обнаружил, заставило забыть про игру и открыть Interactsh

Уязвимый компонент

Плагин Skins Restorer (повсеместно используется на пиратских серверах Minecraft для кастомизации внешности персонажа). Механика : игрок вводит в чат команду /skin url <ссылка>, после чего плагин инициирует загрузку изображения скина. На этом, казалось бы, безобидном действии строится все дальнейшее.

Технический анализ

Стало интересно, а что будет, если вставить ссылку от interachsh.

И получил результат, который меня насторожил: запросы приходили не с IP игрового сервера, а с нескольких разных IP адресов.

Дальнейший анализ показал, что архитектура плагина устроена следующим образом:

Сервер не проксирует трафик.

Сервер не проксирует трафик.

Он просто передает URL клиенту в составе игрового пакета.

Он просто передает URL клиенту в составе игрового пакета.

Клиент Minecraft самостоятельно выполняет HTTP запрос к указанному URL для загрузки файла скина.

Клиент Minecraft самостоятельно выполняет HTTP запрос к указанному URL для загрузки файла скина.

Если сервер не возвращает валидное изображение, клиент удерживает соединение до истечения тайм-аута (в зависимости от версии - от 15 до 60 секунд).

Если сервер не возвращает валидное изображение, клиент удерживает соединение до истечения тайм-аута (в зависимости от версии - от 15 до 60 секунд).

Никакой валидации URL на стороне сервера не происходит: можно указать любой HTTP/HTTPS эндпоинт

Никакой валидации URL на стороне сервера не происходит: можно указать любой HTTP/HTTPS эндпоинт

Вывод : любой игрок, находящийся на уязвимом сервере, может стать источником HTTP флуда на целевую жертву. Сервер выступает как командный центр (C2), а клиенты как узлы ботнета.

Почему это работает?

На этом этапе мне стало интересно: может ли один случайный игрок нанести урон? Очевидно, нет. Но в процессе исследования я столкнулся с теневым феноменом Minecraft комьюнити - спам ботами. Это целая индустрия: злоумышленники содержат фермы из десятков и сотен аккаунтов, размещенных на VPS, которые могут массово подключаться к серверам и выполнять команды. Боты управляются централизованно через C2 панель, где задаётся: целевой сервер, количество ботов, команда для спама. Случайное знакомство с владельцем одной из таких ферм позволило провести контролируемый эксперимент. Мы направили ботов на мой тестовый стенд.

Тестовый стенд: VPS с веб сервером nginx, без WAF, без CDN, без рейт лимита. Есть мониторинг CPU и мониторинг сетевого трафика в реальном времени. Сценарий 1 : Один сервер, 20 ботов.

20 подключенных ботов к одному серверу, непрерывно отправляли /skin url http://IP

20 подключенных ботов к одному серверу, непрерывно отправляли /skin url http://IP

Длительность: 30 минут

Длительность: 30 минут

Результат: нагрузка CPU поднялась с 2% до 18%. Сайт оставался доступен, но наблюдались задержки

Результат: нагрузка CPU поднялась с 2% до 18%. Сайт оставался доступен, но наблюдались задержки

Сценарий 2 : Три сервера, 300 ботов.

300 ботов, распределенных по 3-м серверам

300 ботов, распределенных по 3-м серверам

Длительность: до отказа цели

Длительность: до отказа цели

Результат: CPU достиг 100% за 14 минут. Сервер перестал отвечать на запросы

Результат: CPU достиг 100% за 14 минут. Сервер перестал отвечать на запросы

Ограничения и потенциал : Этот вектор не опасен для ресурсов уровня PayPal или Google с многослойной защитой. Но может быть опасен для малого или среднего бизнеса, чьи сайты хостятся на незащищенных серверах.

← Cybersecurity