
这里的脚本用于为 DEFCON 30 研讨会构建 MVS 3.8j 虚拟大型机。
感谢您关注 DEFCON 30 大型机缓冲区溢出研讨会。
此 Docker 容器包含学习 MVS 缓冲区溢出所需的全部内容!
要开始课程,请运行容器并访问 http://localhost:8080
要运行容器,请使用以下命令,确保将 $(pwd)/docker 改为适合您系统的文件夹。$(pwd) 会将 Docker 卷放在当前工作文件夹中。
如果您只想自包含运行,请使用此命令。⚠️ 如果您删除并重新启动容器,您将丢失对大型机环境所做的所有更改。
docker run -d \
--name=defcon30 \
-e HUSER=defcon \
-e HPASS=defcon \
-p 2323:3223 \
-p 8888:8888 \
-p 2121-2141:2121-2141 \
-p 8443:8443 \
-p 8080:8080 \
-p 31337-31347:31337-31347 \
-v ~/dumps:/printers \
--restart unless-stopped \
mainframed767/defcon30:latest
端口说明:
提到的 Python 脚本可在此处找到:https://github.com/mainframed/DC30_Workshop/tree/main/extra
这会暴露更多端口,并允许您使用持久化卷。可访问 Hercules 和 MVS 控制台、读卡器/写卡器等。
docker run -d \
--name=defcon30 \
-e HUSER=docker \
-e HPASS=docker \
-p 3221:3221 \
-p 2323:3223 \
-p 3270:3270 \
-p 3505:3505 \
-p 3506:3506 \
-p 8888:8888 \
-p 2121:2121 \
-p 8443:8443 \
-p 8080:8080 \
-p 31337-31347:31337-31347 \
-v $(pwd)/docker/config:/config \
-v $(pwd)/docker/printers:/printers \
-v $(pwd)/docker/punchcards:/punchcards \
-v $(pwd)/docker/logs:/logs \
-v $(pwd)/docker/dasd:/dasd \
-v $(pwd)/docker/certs:/certs \
--restart unless-stopped \
mainframed767/defcon30:latest
端口
卷
⚠️ 在当前配置下,最大并发用户数为 24。如果有第 25 个用户登录,您会收到
以下错误消息 IKT00203I ADDRESS SPACE CREATION FAILED。
cp extra/FTPD.MVP MVSCE/MVP/packagesMACLFTPF.jcl:cat jcl/MACLFTPF.jcl|ncat --send-only -w1 127.0.0.1 3505logon_screen.jcl:cat jcl/logon_screen.jcl|ncat --send-only -w1 127.0.0.1 3505terminal.jcl:cat terminal.jcl|ncat --send-only -w1 127.0.0.1 3505git clone https://github.com/jake-mainframe/ARBAUTHupload.py:./upload.py motd.txtupload.jcl:cat upload.jcl|ncat --send-only -w1 127.0.0.1 3505GETSPLOIT/hello.c 易受攻击的 C 程序,来自 https://github.com/jake-mainframe/GETSPLOITARBAUTH,来自 https://github.com/jake-mainframe/ARBAUTHoverflows/LGBT400、overflows/LOC400、overflows/WTO400DockerfileMACLFTPD.jcl:使用 MVP 安装 MACLIBS 和 FTPD 服务器的 JCL 文件logon_screen.ans/jcl/logon_screen.jcl:用于替换 NETSOL 登录屏幕的 ANSI/JCLupload.py 生成用于配置数据集、复制文件并使系统就绪的 JCLjcl/terminals.jcl 添加 32 个新的终端接口并更新 VTAM 配置usersjcl.py 在 文件夹中创建 到 | 端口 | 描述 |
|---|
| 2323 | TLS 加密的 TN3270 服务器端口 |
| 3270 | 未加密的 TN3270 服务器端口 |
| 3221 | 加密的 FTPD 服务器 |
| 2121 | 未加密的 FTP 服务器端口 |
| 8443 | 基于 Web 的 3270 客户端,自动连接到实验室大型机 https://localhost:8443 |
| 8080 | 课程 Wiki https://localhost:8080 |
| 8888 | Hercules Web 服务器/MVS 控制台。用户/密码 = docker |
| 3505 | 读卡器。将 ASCII 转换为 EBCDIC。 |
| 3506 | 读卡器。仅接受 EBCDIC 文件。 |
| 31337-32337 | FTP 服务器被动端口范围 |
| 文件夹 | 描述 |
|---|
| /config | 包含 Hercules 和 web3270 配置文件 |
| /printers | 包含 CLASS=A 打印机输出 |
| /punchcards | 包含 CLASS=B 打孔卡写入器输出 |
| /logs | 包含 Hercules 日志 |
| /dasd | 包含 MVS/CE 磁盘映像 |
| /certs | 包含用于 TLS 加密的证书 |
| 用户名 | 密码 | 描述 |
|---|
| IBMUSER | SYS1 | 拥有所有访问权限的管理员用户 |
| MVSCE01 | CUL8TR | 拥有所有访问权限的管理员用户 |
| MVSCE02 | PASS4U | 普通用户 |
| DC0 | DC0 | DEFCON 研讨会用户 |
| DC1 | DC1 | DEFCON 研讨会用户 |
| DC2 | DC2 | DEFCON 研讨会用户 |
| DC3 | DC3 | DEFCON 研讨会用户 |
| DC4 | DC4 | DEFCON 研讨会用户 |
| DC5 | DC5 | DEFCON 研讨会用户 |
| DC6 | DC6 | DEFCON 研讨会用户 |
| DC7 | DC7 | DEFCON 研讨会用户 |
| DC8 | DC8 | DEFCON 研讨会用户 |
| DC9 | DC9 | DEFCON 研讨会用户 |
| DC10 | DC10 | DEFCON 研讨会用户 |
| DC11 | DC11 | DEFCON 研讨会用户 |
| DC12 | DC12 | DEFCON 研讨会用户 |
| DC13 | DC13 | DEFCON 研讨会用户 |
| DC14 | DC14 | DEFCON 研讨会用户 |
| DC15 | DC15 | DEFCON 研讨会用户 |
| DC16 | DC16 | DEFCON 研讨会用户 |
| DC17 | DC17 | DEFCON 研讨会用户 |
| DC18 | DC18 | DEFCON 研讨会用户 |
| DC19 | DC19 | DEFCON 研讨会用户 |
| DC20 | DC20 | DEFCON 研讨会用户 |
| DC21 | DC21 | DEFCON 研讨会用户 |
| DC22 | DC22 | DEFCON 研讨会用户 |
| DC23 | DC23 | DEFCON 研讨会用户 |
https://github.com/mvslovers/rdrprephttps://github.com/mvslovers/jcc 克隆到此文件夹sudo apt install wine wine32GETSPLOIT/hello.c:
wine ./jcc/jcc.exe -I./jcc/include -o ./GETSPLOIT/hello.c./jcc/prelink -s ./jcc/objs hello.load hello.objhello.load 复制到 ./GETSPLOIT:cp hello.load GETSPLOIT./usersjcl.pyrdrprep 转换 users 文件夹中的每个作业并逐一提交:
for i in *.jcl; do echo $i;rdrprep $i;cat reader.jcl|ncat --send-only -w1 172.17.0.3 3506; read; doneprinters/prt00e.txt 来确认每个作业已完成web3270.inipython3 -u ./server.py --config /path/to/config --certs /path/to/certs 启动 web3270./usersDC00.jclDC23.jclautomation.py 一个用于部署到 Docker 的 MVS 自动化 Python 脚本matrix.txt 跟随白兔rexx/DEBRUIJN.rex:用于生成 de Bruijn 模式的 REXX 脚本rexx/decodei.rex:将 MVS 十六进制指令解码为人类可读格式motd.txt 登录 TSO 时运行的 CLISTmvs.sh 用于启动 web3270、hercules 的容器运行脚本