Pastebin / Raw Text C2 Server
Влияние на механику Minecraft
Приложения могут использовать удаленные серверы конфигурации для показа объявлений, получения экстренных сообщений или обновления списка серверов без выпуска новой версии мода.
Pastebin_C2 выявляет модификации, содержащие прямые ссылки на эндпоинты открытого текста (pastebin.com/raw/). Во вредоносном коде анонимные сервисы публикации текста могут использоваться как динамические конфигураторы: создатели мода размещают в пасте актуальные адреса вебхуков Discord, флаги деактивации или ссылки на дополнительные файлы. Мод обращается к пасте при запуске клиента через сетевой поток (например, URL.openStream()) и применяет полученные строки как параметры работы.
Само по себе чтение текстового документа не исполняет код в системе, однако обращение к неаутентифицированным публичным пастам дает автору пасты возможность в любой момент изменить сетевое поведение мода без ведома пользователя.
Анализируемые функции и API
ConstantPool CONSTANT_Utf8
Строковый литерал в пуле констант класса с адресом pastebin.com/raw.
Реализация в моде (Исходный код)
package com.example.config;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.nio.charset.StandardCharsets;
public class RemoteTextConfigReader {
private static final String PASTE_URL = "hxxps://pastebin[.]com/raw/<redacted_paste_id>";
public static String fetchConfiguration() {
try {
URI uri = URI.create(PASTE_URL);
try (InputStream in = uri.toURL().openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))) {
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line).append("\n");
}
return builder.toString().trim();
}
} catch (Exception e) {
return "";
}
}
}
Сигнатура байткода и статический детект
Детектор анализирует строковые константы в пуле констант класса (CONSTANT_Utf8) на совпадение с шаблоном прямых ссылок публичного сервиса паст:
https?://(?:www\.)?pastebin\.com/raw/[a-zA-Z0-9]+
Правило выявляет явные строковые литералы, указывающие на этот конкретный эндпоинт открытого текста. Главное техническое ограничение заключается в строгой привязке к домену Pastebin: если конфигурация считывается с альтернативных сервисов (Rentry, Hastebin, GitHub Gists) или URL собирается динамически из отдельных строк, это правило не сработает.