免责声明
本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。
工具介绍
Web-Chains
项目,又名 Java-Chains 项目,我们站在巨人肩膀上,致力于打造最强的 Java 安全研究领域的瑞士军刀
Web 版 Java Payload 生成与利用工具,提供 Java 反序列化、Hessian 1/2 反序列化等Payload生成,以及 JNDI、Fake Mysql、JRMPListener 等利用|The web version of Java Payload generation and utilization tool provides Payload generation such as Java deserialization and Hessian 1/2 deserialization, as well as JNDI, Fake Mysql, JRMPListener, etc
Web-Chains 含有六大模块:
1、Generate: 生成模块
自定义类名/定义字节码版本,支持使用 Class-Obf 进行字节码混淆
选择 Commons Beanutils 链的多种 comparator 类型
支持生成 TemplatesImpl 格式
支持生成 SnakeYaml Jar 格式
支持生成 Fastjson Groovy 格式
支持生成 JavaWrapper 格式
支持生成 charsets.jar 格式
支持增强魔改版 JMG/JEG 格式 (java echo generator, java memshell generator)
随机集合混淆
垃圾类插入
去除字节码符号信息
TC_RESET填充,仅适用于Java反序列化
UTF-8 Overlong Encoding混淆
Java反序列化原生 Payload 生成
Hessian1/2反序列化 Payload 生成
Hessian1支持生成 HessianServlet 格式反序列化数据
Shiro数据生成(自定义 KEY 使用 GCM 混淆字符等)
AMF3数据生成(基于原生数据多种进阶组合)
XStream数据生成(基于原生数据多种进阶组合)
BCEL字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
Class字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
多种数据库 JDBC Payload 生成(Derby | H2 | PostgreSql | Sqlite)
SnakeYAML/SpringBeanXML/Velocity/OGNL/MVEL/SPEL/JS/GROOVY
Java反序列化、Hessian反序列化支持以下混淆方式:
一些高级选项:。。。
2、JNDI: JNDI 注入利用模块
JndiBasicPayload: LDAP 远程加载字节码
JndiDeserializationPayload: LDAP 中基于 javaSerializedData 字段实现的反序列化
JndiResourceRefPayload: LDAP 基于 BeanFactory 的 Tomcat EL、Groovy等利用
JndiReferencePayload: LDAP 基于其他 ObjectFactory 的Reference利用,例如各种DataSource JDBC利用
JndiRMIDeserializePayload: LDAP 高版本 JDK 绕过之RMI反序列化
JndiRefBypassPayload: LDAP 高版本 JDK 绕过之ReferenceBypass
JndiShowHandPayload: JNDI梭哈链,一键测试常规利用链,提高测试效率
3、Fake MySQL
FakeMysqlPayload: 经典 MySQL JDBC 反序列化利用姿势
FakeMysqlShowHandPayload: FakeMySQL梭哈链,一键测试常规反序列化链,提高测试效率
4、JRMPListener:可配合 JRMPClient 反序列化链实现RMI低版本的绕过
5、TCP Server: 一个简易的 TCP Server,可以将生成的Payload文件挂载到TCP端口服务上。
适用于 Derby 反序列化 RCE 场景,可直接通过tcp端口获取反序列化数据
6、HTTP Server:一个简易的HTTP服务器,将生成的Payload文件挂载到HTTP端口服务上。
适用于 postgresql 远程加载 SpringBeanXML 文件等场景
工具使用
方式一
docker run -d \
--name web-chains \
--restart=always \
-p 8011:8011 \
-p 58080:58080 \
-p 50389:50389 \
-p 50388:50388 \
-p 13999:13999 \
-p 3308:3308 \
-p 11527:11527 \
-p 50000:50000 \
-e CHAINS_AUTH=true \
-e CHAINS_PASS= \
javachains/webchains:1.2.4
方式二
使用
java -jar web-chains.jar
即可启动,每次启动后会打印出随机生成的密码
默认监听 0.0.0.0 ,登录页面:
http://your-ip:8011 (使用这里的用户名密码登录)
可通过环境变量设置web登录密码,例如:
Linux:
export CHAINS_PASS=[your_password] && java -jar web-chains.jar
Windows:
set CHAINS_PASS=[your_password] && java -jar web-chains.jar
项目链接
https://github.com/Java-Chains/web-chains
标签:Web,Java,字节,生成,序列化,Chains,Payload From: https://www.cnblogs.com/o-O-oO/p/18686376原创 Java-Chains 贝雷帽SEC