Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
DC30_Workshop — Container do workshop sobre buffer overflow em mainframe da DEFCON 30 | Kitploit
Ferramentas/GitHubGitHub/mainframed/dc30_workshop
Análise de VulnerabilidadesExploraçãoEngenharia ReversaAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de BináriosLabs e Prática
GitHubmainframed/dc30_workshop

DC30_Workshop

Container do workshop sobre buffer overflow em mainframe da DEFCON 30

Ver Repositório
9612há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

DEF CON 30 Workshop Mainframe Container

DEFCON MAINFRAME

Os scripts aqui são usados para construir o mainframe virtual MVS 3.8j para o workshop do DEFCON 30.

Obrigado por dar uma olhada no workshop de Buffer Overflow de Mainframe do DEFCON 30.

Use docker

Este contêiner docker tem tudo o que você precisa para aprender a fazer buffer overflows em MVS!

Para iniciar a aula, execute o contêiner e acesse http://localhost:8080

Para executar o contêiner, use os comandos abaixo e certifique-se de alterar $(pwd)/docker para uma pasta do seu sistema. O $(pwd) coloca os volumes do docker na sua pasta de trabalho atual.

Contêiner mínimo

Use este comando se você quiser apenas executá-lo de forma autocontida. ⚠️ Se você remover e relançar o contêiner, perderá todas e quaisquer alterações feitas no ambiente do mainframe.

root@kitploit:~
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

Explicação das portas:

  • 2323: porta do servidor 3270
  • 8443: cliente tn3270 baseado na web, o segredo é D3FC0N
  • 8888: servidor web do console Hercules. Usuário/senha: defcon
  • 8080: as instruções do workshop
  • 2121-2141 e 31337-31347: faixa de portas para o servidor FTP

Os scripts Python mencionados podem ser encontrados aqui: https://github.com/mainframed/DC30_Workshop/tree/main/extra

Contêiner para especialistas

Este expõe mais portas e permite que você tenha volumes com persistência. Dá acesso aos consoles Hercules e MVS, aos leitores/gravadores de cartões, etc.

root@kitploit:~
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

Portas

Volumes

Usuários

⚠️ Com a configuração atual, o número máximo de usuários simultâneos é 24. Se um 25º usuário fizer logon, você receberá a seguinte mensagem de erro IKT00203I ADDRESS SPACE CREATION FAILED.

Construindo do zero

  • Baixe a versão mais recente do MVSCE de https://github.com/MVS-sysgen/sysgen/releases
  • Copie o servidor FTPD vulnerável para MVP: cp extra/FTPD.MVP MVSCE/MVP/packages
  • Inicie o MVSCE
  • Submeta o job MACLFTPF.jcl: cat jcl/MACLFTPF.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Submeta o job logon_screen.jcl: cat jcl/logon_screen.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Submeta o job terminal.jcl: cat terminal.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Clone o repositório ARBAUTH: git clone https://github.com/jake-mainframe/ARBAUTH
  • Execute o script python upload.py: ./upload.py motd.txt
  • Submeta o job upload.jcl:

Arquivos

  • GETSPLOIT/hello.c programa C vulnerável de https://github.com/jake-mainframe/GETSPLOIT
  • ARBAUTH de https://github.com/jake-mainframe/ARBAUTH
  • Arquivos EBCDIC overflows/LGBT400, overflows/LOC400, overflows/WTO400
  • Dockerfile usado para construir a imagem docker
  • MACLFTPD.jcl: arquivo JCL para instalar MACLIBS e o servidor FTPD usando MVP
  • logon_screen.ans/jcl/logon_screen.jcl: ANSI/JCL para substituir a tela de logon NETSOL
  • upload.py gera o JCL usado para provisionar datasets, copiar arquivos e deixar o sistema pronto
  • jcl/terminals.jcl adiciona 32 novas interfaces de terminal e atualiza a configuração da VTAM
Baixar ferramenta
PortaDescrição
2323Porta do servidor TN3270 criptografada com TLS
3270Porta do servidor TN3270 não criptografada
3221Servidor FTPD criptografado
2121Porta do servidor FTP não criptografada
8443Cliente 3270 baseado na web que se conecta automaticamente ao mainframe do laboratório https://localhost:8443
8080A wiki da aula https://localhost:8080
8888Servidor web/MVS Console do Hercules. Usuário/senha = docker
3505Leitor de cartões perfurados. Converte ASCII para EBCDIC.
3506Leitor de cartões perfurados. Aceita apenas arquivos EBCDIC.
31337-32337Faixa de portas passivas do servidor FTP
PastaDescrição
/configContém os arquivos de configuração do Hercules e do web3270
/printersContém a saída das impressoras em CLASS=A
/punchcardsContém a saída do gravador de cartões perfurados em CLASS=B
/logsContém os logs do Hercules
/dasdContém as imagens de disco do MVS/CE
/certsContém os certificados usados para criptografia TLS
UsuárioSenhaDescrição
IBMUSERSYS1Usuário administrativo com acesso a tudo
MVSCE01CUL8TRUsuário administrativo com acesso a tudo
MVSCE02PASS4UUsuário genérico
DC0DC0Usuário do Workshop DEFCON
DC1DC1Usuário do Workshop DEFCON
DC2DC2Usuário do Workshop DEFCON
DC3DC3Usuário do Workshop DEFCON
DC4DC4Usuário do Workshop DEFCON
DC5DC5Usuário do Workshop DEFCON
DC6DC6Usuário do Workshop DEFCON
DC7DC7Usuário do Workshop DEFCON
DC8DC8Usuário do Workshop DEFCON
DC9DC9Usuário do Workshop DEFCON
DC10DC10Usuário do Workshop DEFCON
DC11DC11Usuário do Workshop DEFCON
DC12DC12Usuário do Workshop DEFCON
DC13DC13Usuário do Workshop DEFCON
DC14DC14Usuário do Workshop DEFCON
DC15DC15Usuário do Workshop DEFCON
DC16DC16Usuário do Workshop DEFCON
DC17DC17Usuário do Workshop DEFCON
DC18DC18Usuário do Workshop DEFCON
DC19DC19Usuário do Workshop DEFCON
DC20DC20Usuário do Workshop DEFCON
DC21DC21Usuário do Workshop DEFCON
DC22DC22Usuário do Workshop DEFCON
DC23DC23Usuário do Workshop DEFCON
cat upload.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Instale https://github.com/mvslovers/rdrprep na sua máquina Linux
  • Clone https://github.com/mvslovers/jcc para esta pasta
  • Instale o wine e o wine 32: sudo apt install wine wine32
  • Compile GETSPLOIT/hello.c:
    • wine ./jcc/jcc.exe -I./jcc/include -o ./GETSPLOIT/hello.c
    • ./jcc/prelink -s ./jcc/objs hello.load hello.obj
  • Copie hello.load para ./GETSPLOIT: cp hello.load GETSPLOIT
  • Execute o usersjcl.py: ./usersjcl.py
  • Converta cada job na pasta users com rdrprep e submeta-os um a um:
    • for i in *.jcl; do echo $i;rdrprep $i;cat reader.jcl|ncat --send-only -w1 172.17.0.3 3506; read; done
    • Você pode verificar a saída do MVSCE printers/prt00e.txt para confirmar que cada job foi concluído
  • Desligue o MVS/CE
  • Re-IPL o MVS/CE e aproveite seu ambiente de laboratório
  • Em seguida, baixe o web3270 de https://github.com/MVS-sysgen/web3270
  • Siga as instruções sobre como se preparar para o web3270
  • Edite o web3270.ini conforme apropriado
  • Inicie o web3270 com python3 -u ./server.py --config /path/to/config --certs /path/to/certs
  • usersjcl.py cria de DC00.jcl a DC23.jcl na pasta ./users
  • automation.py um script python de automação MVS usado para implantar no docker
  • matrix.txt Siga o coelho branco
  • rexx/DEBRUIJN.rex: script REXX para gerar padrão de Bruijn
  • rexx/decodei.rex: decodifica instruções hexadecimais do MVS para formato legível
  • motd.txt o CLIST executado no logon do TSO
  • mvs.sh o script de execução do contêiner para iniciar web3270, hercules