
DEFCON 30 메인프레임 버퍼 오버플로 워크숍 컨테이너

여기 있는 스크립트들은 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
포트
| Port | Description |
|---|---|
| 2323 | TLS 암호화 TN3270 서버 포트 |
| 3270 | 암호화되지 않은 TN3270 서버 포트 |
| 3221 | 암호화된 FTPD 서버 |
| 2121 | 암호화되지 않은 FTP 서버 포트 |
| 8443 | 랩 메인프레임에 자동 연결되는 웹 기반 3270 클라이언트 https://localhost:8443 |
| 8080 | 수업 위키 https://localhost:8080 |
| 8888 | Hercules 웹 서버/MVS 콘솔. 사용자/비밀번호 = docker |
| 3505 | 펀치 카드 리더. ASCII를 EBCDIC로 변환합니다. |
| 3506 | 펀치 카드 리더. EBCDIC 파일만 허용합니다. |
| 31337-32337 | FTP 서버 패시브 포트 범위 |
볼륨
| Folder | Description |
|---|---|
| /config | Hercules 및 web3270 구성 파일 포함 |
| /printers | CLASS=A 프린터 출력 포함 |
| /punchcards | CLASS=B 펀치카드 라이터 출력 포함 |
| /logs | Hercules 로그 포함 |
| /dasd | MVS/CE 디스크 이미지 포함 |
| /certs | TLS 암호화에 사용되는 인증서 포함 |
| Username | Password | Description |
|---|---|---|
| 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 워크숍 사용자 |
⚠️ 현재 구성에서 최대 동시 사용자 수는 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 3505https://github.com/mvslovers/rdrprep을 설치하세요.https://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.ini를 적절히 편집하세요.python3 -u ./server.py --config /path/to/config --certs /path/to/certs로 실행하세요.