Skip to content

Repository files navigation

English | 简体中文

Java Chains

Java-Chains is a Java payload generation platform for security researchers. Build deserialization / JNDI / JDBC / JRMP payloads quickly and run protocol listeners (JNDI, FakeMySQL, JRMP, HTTP, TCP) from a web Studio or CLI.

Standing on the shoulders of giants

Quick start

Docs: https://java-chains.github.io/en/docs/guide

Docker Compose

# recommended: place chains-config from the release tarball next to docker-compose.yml
# (an empty ./chains-config mount still starts, but hides image-baked config/plugins)
docker compose up -d
# startup banner prints credentials on the "Auth" line
docker logs -f java-chains | grep -i auth

Open http://your-ip:8011

Docker run

docker run -d \
  --name java-chains \
  --restart=unless-stopped \
  -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:2.0.0-beta7

Empty CHAINS_PASS → a random password is generated at startup (see the Auth line in logs).
CHAINS_AUTH=false also requires CHAINS_ALLOW_AUTH_DISABLED=true (explicit acknowledgement).

Jar

Requires OpenJDK / Temurin / Zulu JDK 8 (Oracle JDK 8 is not recommended for BCEL chains).

tar -xzf java-chains-2.0.0-beta7.tar.gz
cd java-chains-2.0.0-beta7   # or unpack layout with java-chains.jar + chains-config/
java -jar java-chains.jar

CLI (optional)

Product CLI is the fat java-chains-cli.jar (remote catalog/generate + offline local generate). There is no separate SDK jar.

# remote generate against a running server
export CHAINS_API_TOKEN=...
java -jar java-chains-cli.jar generate \
  --execution remote --server http://127.0.0.1:8011 --token-env CHAINS_API_TOKEN \
  --payload JavaNativePayload --chain CommonsBeanutils1 --arg cmd=id --encode base64 --json

# offline local generate (fat jar)
java -jar java-chains-cli.jar generate --execution local \
  --payload JavaNativePayload --chain CommonsBeanutils1 --arg cmd=id --encode base64 --json

Changelog

CHANGELOG.md

References and acknowledgments

For personal research and learning only. Never use for illegal activity.

The developers, providers and maintainers are not responsible for actions or consequences of using this tool; users assume all risk.

Acknowledgments:

Communication

If you have any questions, please open an issue or join Discord.

Star History

Star History Chart

Contributors

Project contributors (in no particular order):

Ar3h xcxmiku unam4 phith0n CHYbeta ssrsec springkill su18 4ra1n ReaJason

About

Java Vulnerability Exploitation Platform

Topics

Resources

Stars

2.1k stars

Watchers

17 watching

Forks

Releases

Used by

Contributors

Languages