-
Notifications
You must be signed in to change notification settings - Fork 170
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
42 lines (41 loc) · 1.92 KB
/
Copy pathdocker-compose.yml
File metadata and controls
42 lines (41 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
services:
java-chains:
image: javachains/javachains:2.0.0-beta5
container_name: java-chains
restart: unless-stopped
ports:
- "8011:8011" # Web / Studio
- "58080:58080" # JNDI HTTP
- "50389:50389" # JNDI LDAP
- "50388:50388" # JNDI RMI
- "13999:13999" # JRMPListener
- "3308:3308" # Fake MySQL
- "11527:11527" # TCP Server
- "50000:50000" # HTTP Server
environment:
# true=开启 Web 登录鉴权;false 需同时设置 CHAINS_ALLOW_AUTH_DISABLED=true
CHAINS_AUTH: ${CHAINS_AUTH:-true}
# 为空则启动时随机生成密码(docker logs | grep -i auth → "Auth" 行)
CHAINS_PASS: ${CHAINS_PASS:-}
CHAINS_ALLOW_AUTH_DISABLED: ${CHAINS_ALLOW_AUTH_DISABLED:-false}
# 可选:启动时查询公网 IP(会访问第三方 IP 回显服务)
CHAINS_SHOW_PUBLIC_IP: ${CHAINS_SHOW_PUBLIC_IP:-false}
volumes:
# Persist config / plugins / presets / FakeMySQL captures.
# Prefer copying chains-config from the release tarball next to this file.
# An empty host dir still works for writes (entrypoint chowns it for appuser),
# but hides the image's baked-in chains-config — copy from the tarball for plugins.
- ./chains-config:/chains/chains-config
# Optional: mount a host path you want available *inside* the container for
# other tooling. FakeMySQLReadPayload does NOT read host/container files itself —
# the victim JDBC client reads the path you configure (e.g. /etc/passwd on the victim).
# Captures land in chains-config/cache/fake-server-files/.
# - /path/on/host:/chains/host-files:ro
# Optional: run as a specific host UID/GID instead of image appuser.
# Entrypoint skips chown when not root; ensure the volume is writable by that user.
# user: "1000:1000"
networks:
- java-chains-net
networks:
java-chains-net:
driver: bridge