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
含有六大模块:
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反序列化支持以下混淆方式: -
一些高级选项:
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梭哈链,一键测试常规利用链,提高测试效率
Fake MySQL
FakeMysqlPayload
: 经典 MySQL JDBC 反序列化利用姿势 FakeMysqlShowHandPayload
: FakeMySQL梭哈链,一键测试常规反序列化链,提高测试效率
JRMPListener
-
可配合 JRMPClient 反序列化链实现RMI低版本的绕过
-
TCP Server
-
一个简易的 TCP Server,可以将生成的Payload文件挂载到TCP端口服务上 -
适用于 Derby 反序列化 RCE 场景,可直接通过tcp端口获取反序列化数据
-
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
下载链接
原文始发于微信公众号(贝雷帽SEC):【红队】Java 安全研究领域的瑞士军刀
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论