Спустя много лет я решил поиграть в Minecraft на пиратских серверах. Никакого исследовательского умысла не было — просто хотел поиграть. Но профессиональная деформация взяла свое: я начал ковырять функционал плагинов сервера. То, что я обнаружил, заставило забыть про игру и открыть Interactsh
Уязвимый компонент
Плагин Skins Restorer (повсеместно используется на пиратских серверах Minecraft для кастомизации внешности персонажа).
Механика: игрок вводит в чат команду /skin url <ссылка>, после чего плагин инициирует загрузку изображения скина. На этом, казалось бы, безобидном действии строится все дальнейшее.
Технический анализ
Стало интересно, а что будет, если вставить ссылку от interachsh.
И получил результат, который меня насторожил: запросы приходили не с 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 с многослойной защитой. Но критически опасен для малого и среднего бизнеса, чьи сайты хостятся на незащищенных серверах.
ссылка на оригинал статьи https://habr.com/ru/articles/1053694/