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

Схема атаки
Схема атаки

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

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

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

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

Команда
Команда

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

Множества IP адресов
Множества IP адресов

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

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

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

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

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

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

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

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

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

Демонстрация

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

Сценарий 1: Один сервер, 20 ботов.

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

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

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

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

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

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

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

Нагрузка на тестовый стенд
Нагрузка на тестовый стенд

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

Комментарии (0)