快速上手
什么是 Java Chains
Java Chains 是一个 Java Payload 综合生成与利用平台,提供了生成各种 Java Payload 功能,能够用于测试 JNDI 注入、MySQL JDBC 反序列化、JRMP 反序列化等场景。
快速开始
注意
该平 台默认只对 8011 端口进行了随机密码的登陆保护,其他端口可能存在被反制的风险,使用完相关功能后记得及时关闭相应端口
方式一:Docker
你可以通过 docker
一条命令启动 java-chains
项目(这也是推荐做法)
docker run -d \
--name java-chains \
--restart=always \
-p 8011:8011 \
-p 58080:58080 \
-p 50389:50389 \
-p 50388:50388 \
-p 3308:3308 \
-p 13999:13999 \
-p 50000:50000 \
-p 11527:11527 \
-e CHAINS_AUTH=true \
-e CHAINS_PASS= \
javachains/javachains:1.4.0
通过环境变量配置鉴权或密码;
CHAINS_AUTH: true
为开启鉴权,false
为关闭鉴权,默认开启鉴权
CHAINS_PASS: 指定 web 密码,若该变量为空则随机生成密码,默认随机生成密码
提示
Payload 生成功能仅使用 8011
端口即可,其他端口为 exploit
模块所使用
使用以下命令从 docker 中获取随机生成的强密码
docker logs $(docker ps | grep javachains/javachains | awk '{print $1}') | grep -E 'password'
输出示例
11-12 06:59:53.301 INFO [main] c.a.c.w.c.SecurityConfig | | password: XSsWerJFGcCjB8FU
登录页面:http://your-ip:8011
方式二:Jar包启动
下载链接:https://github.com/vulhub/java-chains/releases/latest
启动命令
java -jar java-chains-[version].jar
每次启动后会默认打印出随机生成的密码
默认监听 0.0.0.0 ,登录页面:http://your-ip:8011
可通过环境变量设置 web 登录密码,例如:
- Bash
- Cmd
- Powershell
export CHAINS_PASS=[your_password] && java -jar java-chains-[version].jar
set CHAINS_PASS=[your_password] && java -jar java-chains-[version].jar
$env:CHAINS_PASS="[your_password]"; java -jar java-chains-[version].jar
默认端口说明
端口 | 备注 |
---|---|
8011 | Java Chains Web端 |
58080 | JNDI 提供 HTTP 字节码 |
50389 | JNDI LDAP |
50388 | JNDI RMI |
3308 | Fake MySQL Server |
13999 | JRMPListener |
50000 | HTTP Server |
11527 | TCP Server |