【工具分享】Chains漏洞生成&利用 Web 平台

admin 2025年3月20日14:05:07评论0 views字数 2518阅读8分23秒阅读模式
 

1、工具简介

Java-Chains 是一个 Java Payload 生成与漏洞利用 Web 平台,便于广大安全研究员快速生成 Java Payload,以及对 JNDI 注入、MySQL JDBC 反序列化、JRMP 反序列化等漏洞进行方便快速测试,能够在一定程度上提高测试效率。

【工具分享】Chains漏洞生成&利用 Web 平台
【工具分享】Chains漏洞生成&利用 Web 平台
2、功能简介

Java-Chains包含以下功能但不限于

Payload生成引擎

Java 反序列化原生 Payload 生成Hessian 1/2 反序列化 Payload 生成Shiro 数据生成(自定义 KEY 使用 GCM 混淆字符等)AMF3 数据生成(基于原生数据多种进阶组合)XStream 数据生成(基于原生数据多种进阶组合)BCEL 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)Class 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)数据库Payload (Derby/H2/PostgreSQL/Sqlite)Fastjson/SnakeYAML/SpringBeanXML/Velocity/OGNL/MVEL/SPEL/JS/GROOVY
JavaNativePayload: 生成 Java 反序列化Payload (例如 CB/CC/Fastjson/Jackson/JRMP/FindClassd 等链)Hessian1Payload: 生成 Hessian1 版本的反序列化Payload (例如 SwingLazyValue/Xslt 等链)Hessian2ToStringPayload: 生成 Hessian2 exception toString PayloadHessian2Payload: 生成 Hessian2 版本的反序列化PayloadBytecodePayload: 生成各种字节码(例如 读写文件/命令执行/Sleep/内存马/回显)ShiroPayload: 生成Shiro PayloadExpressionPayload: 生成各种表达式 PayloadJDBCPayload: 生成各种 JDBC PayloadOtherPayload: 生成 SpringBeanXml、Groovy、charsets.jar 等 Payload...

JNDI Control: JNDI 控制面板,使用以下功能前需要提前打开相关端口

JNDIBasicPayload: JNDI LDAP 远程加载字节码JNDILDAPDeserializePayload: JNDI LDAP 反序列化JNDIResourceRefPayload: JNDI LDAP BeanFactory 利用姿势,例如TomcatEL表达式执行JNDIReferencePayload: JNDI LDAP 其他ObjectFactory利用姿势,例如通过各种DataSourceFactory实现Jdbc的加载JNDIRMIDeserializePayload: JNDI RMI 反序列化,适用于较高的JDK版本中JNDIRefBypassPayload: 属于 JNDIReferencePayload 的绕过版本,适用于 javaSerializedData 无法反序列化Reference对象的场景,即高版本JDK场景下JNDIShowHandPayload: 梭哈链,涵盖了常见的利用链

JNDI注入 payload支持

Payload 名称
说明
适用版本
JNDIBasicPayload
最基础漏洞利用姿势,可远程加载,推荐使用LDAP,可利用的JDK版本覆盖比RMI的广
JDK < 8u191
JNDILDAPDeserializePayload
LDAP 反序列化
低版本JDK
JNDIResourceRefPayload
基于ObjectFactory的利用,通过 Tomcat BeanFactory 类实现漏洞利用
大部分Tomcat版本: tomcat8 < 8.5.79 tomcat9 < 9.0.63 tomcat10 < 10.0.21 tomcat10.1 < 10.1.0-M14
JNDIReferencePayload
基于ObjectFactory的利用,通过其他姿势实现漏洞利用,条件相对苛刻
低版本JDK
JNDIRefBypassPayload
在高版本 JDK 中限制 LDAP 反序列化,该姿势使用 javaReferenceAddress 属性绕过高版本 JDK 的限制
低版本JDK
JNDIRMIDeserializePayload
RMI 反序列化
全JDK版本

高级功能

自定义类名/定义字节码版本选择 Commons Beanutils 链的多种 comparator 类型支持生成 TemplatesImpl 格式支持生成 SnakeYaml Jar 格式支持生成 Fastjson Groovy 格式支持生成 JavaWrapper 格式支持生成 charsets.jar 格式支持增强魔改版 JMG/JEG 格式 (java echo generator, java memshell generator)
3、安装方式

方法一: Docker

您可以java-chains使用单个命令启动项目docker(这是推荐的方法)。

docker run -d   --name java-chains   --restart=always   -8011:8011   -58080:58080   -50389:50389   -50388:50388   -3308:3308   -13999:13999   -50000:50000   -11527:11527   -e CHAINS_AUTH=true   -e CHAINS_PASS=   javachains/javachains:1.4.0

方法二:通过 Jar包

启动命令:java -jar java-chains-[version].jar

每次启动时都会默认打印随机生成的密码。

默认监听0.0.0.0,登录页面:http://your-ip:8011

4、资源获取

https://github.com/vulhub/java-chains

原文始发于微信公众号(小白爱学习Sec):【工具分享】Chains漏洞生成&利用 Web 平台

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月20日14:05:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【工具分享】Chains漏洞生成&利用 Web 平台https://cn-sec.com/archives/3862154.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息