Skip to content

Commit 3ea2613

Browse files
committed
release v1.1.0
1 parent 7c55d52 commit 3ea2613

File tree

9 files changed

+156
-29
lines changed

9 files changed

+156
-29
lines changed

CHANGELOG.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## 1.1.0
2+
3+
更新内容:
4+
5+
- [重要] 前端大重构和优化 @Ar3h
6+
- [重要] 提供 `docker` 一键启动命令 @Ar3h @4ra1n
7+
- [重要] 提供了从 `jar` 文件加载的简易插件系统 @Ar3h
8+
- [重要] 新增 `h2 without js` 全版本通杀链 @unam4
9+
- [功能] 基于 `spring security` 的登录功能 @springkill @4ra1n
10+
- [功能] 新增两种 `equals``c3p0 jndi/jdbc`@unam4
11+
- [功能] `hessian` 新增 `groovy` 利用链 @Ar3h
12+
- [功能] 字节码可添加 `main` 静态入口函数 @Ar3h
13+
- [BUG] 无法正确显示 `favicon.ico` 图标问题 @xcxmiku
14+
- [优化] `server` 探测新增 `netty` 框架探测 @Ar3h
15+
- [优化] 高版本 `Oralce JDK` 可以使用 `BCEL` 相关 @4ra1n
16+
- [优化] 优化某些仅 `unix` 类型的 `gadget` 提示信息 @4ra1n
17+
- [优化] 格式化输出日志,为日志附加颜色 @springkill
18+
- [优化] 启动时检测 `java` 版本给出警告 @4ra1n
19+
- [优化] 优化拦截器逻辑 @ssrsec
20+
- [优化] 优化 `base64` 通用性 @ssrsec
21+
- [文档] 编写新版本使用文档 @ssrsec
22+
23+
感谢以下用户的贡献:
24+
25+
- Ar3h (https://github.com/Ar3h)
26+
- 某匿名安全研究师傅
27+
- unam4 (https://github.com/unam4)
28+
- 小晨曦 (https://github.com/xcxmiku)
29+
- 4ra1n (https://github.com/4ra1n)
30+
- springkill (https://github.com/springkill)
31+
- 说书人 (https://github.com/ssrsec)
32+
33+
使用 `java -jar java-chains.jar` 即可启动(仅支持 `java 8` 环境)
34+
35+
推荐使用 `docker` 一键启动(请参考 `README` 页面)
36+
37+
其中 `chains-config.zip` 是补充插件,解压后放在 `jar` 同级目录即可
38+
39+
## 1.0.0
40+
41+
初始开源版本

README.md

Lines changed: 111 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,137 @@
1-
# Web-Chains
1+
# web-chains
22

3-
详细食用文档:https://www.yuque.com/shenjingwa-leuvd/wpqdhf/eekyvau9fcblzzt0?singleDoc#
3+
![](https://img.shields.io/github/downloads/java-chains/web-chains/total)
4+
![](https://img.shields.io/github/v/release/java-chains/web-chains)
45

6+
`web-chains` 项目,又名 `java-chains` 项目,由 `Ar3h` 师傅主导开发,漏洞百出和代码审计星球支持
57

8+
<center><img src="/img/000.png" alt=""></center>
69

7-
## 简介
10+
我们站在巨人肩膀上,致力于打造最强的 `Java` 安全研究领域的瑞士军刀
811

9-
web-chains 包含但不限于以下功能:
12+
![](img/001.png)
1013

11-
- Java 反序列化Payload生成
12-
- 支持的混淆:随机集合混淆、垃圾类插入、TC_RESET 填充、utf8 overlong encoding 混淆
13-
- Hessian 1/2 反序列化Payload生成
14+
## 介绍
1415

15-
- Hessian1 支持生成 HessianServlet 格式反序列化数据
16+
`web-chains` 包含但不限于以下功能:
1617

17-
- 支持的混淆:随机集合混淆、垃圾类插入、utf8 overlong encoding 混淆
18-
- 字节码生成
18+
- `Java` 反序列化原生 `Payload` 生成
19+
- `Hessian` 1/2 反序列化 `Payload` 生成
20+
- `Hessian1` 支持生成 `HessianServlet` 格式反序列化数据
21+
- `Shiro` 数据生成(自定义 `KEY` 使用 `GCM` 混淆字符等)
22+
- `AMF3` 数据生成(基于原生数据多种进阶组合)
23+
- `XStream` 数据生成(基于原生数据多种进阶组合)
24+
- `BCEL` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
25+
- `Class` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
26+
- 多种数据库 `Payload` 生成(`Derby` | `H2` | `PostgreSql` | `Sqlite`
27+
- `Fastjson/SnakeYAML/SpringBeanXML/Velocity/OGNL/MVEL/SPEL/JS/GROOVY`
1928

20-
- 支持自定义类名
29+
一些混淆方式:
2130

22-
- 支持自定义字节码版本
31+
- 随机集合混淆
32+
- 垃圾类插入
33+
- 去除字节码符号信息
34+
- `TC_RESET` 填充
35+
- `UTF-8 Overlong Encoding` 混淆
2336

24-
- 支持生成TemplatesImpl格式 Payload:实现 AbstractTranslet 接口
37+
一些高级选项:
2538

26-
- 支持生成SnakeYaml Jar 格式 Payload:实现 javax.script.ScriptEngineFactory 接口
39+
- 自定义类名/定义字节码版本
40+
- 选择 `Commons Beanutils` 链的多种 `comparator` 类型
41+
- 支持生成 `TemplatesImpl` 格式
42+
- 支持生成 `SnakeYaml Jar` 格式
43+
- 支持生成 `Fastjson Groovy` 格式
44+
- 支持生成 `JavaWrapper` 格式
45+
- 支持生成 `charsets.jar` 格式
46+
- 支持增强魔改版 `JMG/JEG` 格式 (java echo generator, java memshell generator)
2747

28-
- 支持生成Fastjson Groovy 格式 Payload:实现 ASTTransformation 接口
29-
- 支持生成 JavaWrapper 格式 Payload:添加 `public static void _main(String[] argv) {}` 方法
30-
- 支持生成 charsets.jar 格式 Payload
48+
Exploit 模块:
3149

32-
- 内置 java echo generator(Jeg)、java memshell generator(Jmg),并根据实战进行魔改
50+
- JNDI (远程加载字节码,高版本反序列化绕过,高版本 `ref` 绕过,)
51+
- Fake Mysql Server (经典 `JDBC` 攻击必备,基于生成模块多种进阶组合)
52+
- JRMPListener / TCP Server(Derby RCE)/ HTTP Server
3353

34-
- ...
35-
- Exploit 模块
36-
- JNDI Exploit
37-
- Fake Mysql
38-
- JRMPListener
39-
- Tcp Server(Derby RCE)
40-
- HTTP Server
54+
使用 `Fake Mysql Server` 进行测试
4155

56+
![](img/002.png)
4257

58+
正在开发中:
4359

60+
- 一个完善的插件系统
61+
- 更多的可用的 `gadget``payload` 生成
62+
- 字节码混淆(方法名/隐藏方法/花指令/异或混淆等)
63+
- 多种多样的可能的输出类型指定
64+
- 覆盖更全面的测试和报告
65+
- 多种 `gadget` 排序方式可选
66+
- 用户自定义偏好 `gadget``payload` 展示
67+
- 更多功能...
4468

45-
![image-20241102185320189](./assets/image-20241102185320189.png)
69+
## 快速开始
4670

71+
你可以通过 `docker` 一条命令启动 `web-chains` 项目(这也是推荐做法)
4772

73+
```shell
74+
docker run -d \
75+
--name web-chains \
76+
--restart=always \
77+
-p 8011:8011 \
78+
-p 58080:58080 \
79+
-p 50389:50389 \
80+
-p 13999:13999 \
81+
-p 3308:3308 \
82+
-p 11527:11527 \
83+
-p 50000:50000 \
84+
javachains/webchains:1.1.0
85+
```
4886

49-
## 更多
87+
生成功能仅使用 `8011` 端口即可,其他端口为 `exploit` 模块使用
5088

51-
[![Star History Chart](https://api.star-history.com/svg?repos=Ar3h/web-chains&type=Date)](https://star-history.com/#Ar3h/web-chains&Date)
89+
请使用以下命令获得随机的强用户名密码
5290

91+
```shell
92+
docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep -E 'username|password'
93+
```
5394

95+
输出示例
5496

97+
```text
98+
11-12 06:59:53.301 INFO [main] c.a.c.w.c.SecurityConfig | | generated random username: fBTWDfwlapmq
99+
11-12 06:59:53.301 INFO [main] c.a.c.w.c.SecurityConfig | | generated random password: XSsWerJFGcCjB8FU
100+
```
101+
102+
访问 `http://your-ip:8011` 即可(使用这里的用户名密码登录)
103+
104+
你也可以直接使用 `jar` 版本,使用 `java -jar web-chains.jar` 即可启动(推荐使用 `docker` 方式)
105+
106+
**特别注意:我们只对 8011 端口进行了保护,需要登陆后访问,其他端口可能存在被反制的风险,请自行注意**
107+
108+
## 参考和致谢
109+
110+
仅支持个人研究学习,切勿用于非法犯罪活动。
111+
112+
本项目的开发者、提供者和维护者不对使用者使用工具的行为和后果负责,工具的使用者应自行承担风险。
113+
114+
[更新日志 | CHANGELOG](CHANGELOG.md)
115+
116+
一些参考文档:https://java-chains.yuque.com/org-wiki-java-chains-woznyq/evwydq/tu2n6ycvlasvcw19
117+
118+
参考致谢:
119+
120+
- https://github.com/wh1t3p1g/ysomap
121+
- https://github.com/qi4L/JYso
122+
- https://github.com/X1r0z/JNDIMap
123+
- https://github.com/Whoopsunix/PPPYSO
124+
- https://github.com/4ra1n/mysql-fake-server
125+
- https://github.com/mbechler/marshalsec
126+
- https://github.com/frohoff/ysoserial
127+
- https://github.com/H4cking2theGate/ysogate
128+
- https://github.com/Bl0omZ/JNDIEXP
129+
- https://github.com/kezibei/Urldns
130+
- https://github.com/rebeyond/JNDInjector
131+
- https://github.dev/LxxxSec/CTF-Java-Gadget
132+
- https://xz.aliyun.com/t/5381
133+
- http://rui0.cn/archives/1408
134+
135+
## Star History
136+
137+
[![Star History Chart](https://api.star-history.com/svg?repos=java-chains/web-chains&type=Date)](https://star-history.com/#java-chains/web-chains&Date)

assets/image-20241102185320189.png

-742 KB
Binary file not shown.

img/000.png

9.85 KB
Loading

img/001.png

141 KB
Loading

img/002.png

108 KB
Loading
File renamed without changes.

old/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## README
2+
3+
历史的一些脚本,弃用,但保留备份

docker-compose.yml renamed to old/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: '3'
33

44
services:
55
web-chains:
6-
build: .
6+
build: ..
77
ports:
88
- "8011:8011"
99
volumes:

0 commit comments

Comments
 (0)