Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DC30_Workshop — DEFCON 30 Contenedor del taller de desbordamiento de búfer de mainframe | Kitploit
Herramientas/GitHubGitHub/mainframed/dc30_workshop
Análisis de VulnerabilidadesExplotaciónIngeniería InversaAprendizaje y EducaciónDesarrollo de PayloadsExplotación de BinariosLabs y Práctica
GitHubmainframed/dc30_workshop

DC30_Workshop

DEFCON 30 Contenedor del taller de desbordamiento de búfer de mainframe

Ver Repositorio
9612hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Contenedor del mainframe del taller DEF CON 30

Mainframe de DEFCON

Los scripts que se incluyen aquí se utilizan para construir el mainframe virtual MVS 3.8j para el taller de DEFCON 30.

Gracias por echar un vistazo al taller de desbordamiento de búfer en mainframe de DEFCON 30.

Usar Docker

Este contenedor de Docker tiene todo lo que necesitas para aprender a realizar desbordamientos de búfer en MVS.

Para comenzar la clase, ejecuta el contenedor y ve a http://localhost:8080

Para ejecutar el contenedor usa los comandos siguientes; asegúrate de cambiar $(pwd)/docker por una carpeta de tu sistema. $(pwd) coloca los volúmenes de Docker en tu carpeta de trabajo actual.

Contenedor mínimo

Usa este comando si solo quieres ejecutarlo de forma autocontenida. ⚠️ Si eliminas y vuelves a lanzar el contenedor, perderás todos los cambios que hayas realizado en el entorno del 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

Puertos explicados:

  • 2323: Puerto del servidor 3270
  • 8443: Cliente tn3270 basado en web; el secreto es D3FC0N
  • 8888: Servidor web de la consola de Hercules. Usuario/contraseña: defcon
  • 8080: Las instrucciones del taller
  • 2121-2141 y 31337-31347: Rango de puertos web para el servidor FTP

Contenedor experto

Este expone más puertos y permite tener volúmenes persistentes. Da acceso a las consolas de Hercules y MVS, a las lectoras/grabadoras de tarjetas, 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

Puertos

Volúmenes

Usuarios

⚠️ Con la configuración actual, el número máximo de usuarios concurrentes es 24. Si un vigésimo quinto usuario inicia sesión, obtendrás el siguiente mensaje de error IKT00203I ADDRESS SPACE CREATION FAILED.

Construcción desde cero

  • Descarga la versión más reciente de MVSCE desde https://github.com/MVS-sysgen/sysgen/releases
  • Copia el servidor FTPD vulnerable a MVP: cp extra/FTPD.MVP MVSCE/MVP/packages
  • Lanza MVSCE
  • Envía el trabajo MACLFTPF.jcl: cat jcl/MACLFTPF.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Envía el trabajo logon_screen.jcl: cat jcl/logon_screen.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Envía el trabajo terminal.jcl: cat terminal.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Clona el repositorio ARBAUTH: git clone https://github.com/jake-mainframe/ARBAUTH
  • Ejecuta el script de Python upload.py: ./upload.py motd.txt
  • Envía el trabajo upload.jcl:

Archivos

  • GETSPLOIT/hello.c: programa en C vulnerable de https://github.com/jake-mainframe/GETSPLOIT
  • ARBAUTH de https://github.com/jake-mainframe/ARBAUTH
  • Archivos EBCDIC overflows/LGBT400, overflows/LOC400, overflows/WTO400
  • Dockerfile utilizado para construir la imagen de Docker
  • MACLFTPD.jcl: archivo JCL para instalar MACLIBS y el servidor FTPD mediante MVP
  • logon_screen.ans/jcl/logon_screen.jcl: ANSI/JCL para reemplazar la pantalla de inicio de sesión de NETSOL
  • upload.py genera JCL utilizado para aprovisionar conjuntos de datos, copiar archivos y dejar el sistema listo
  • jcl/terminals.jcl añade 32 nuevas interfaces de terminal y actualiza la configuración de VTAM
Descargar herramienta
PuertoDescripción
2323Puerto del servidor TN3270 cifrado con TLS
3270Puerto del servidor TN3270 sin cifrar
3221Servidor FTPD cifrado
2121Puerto del servidor FTP sin cifrar
8443Cliente 3270 basado en web que se conecta automáticamente al mainframe del laboratorio https://localhost:8443
8080La wiki de la clase https://localhost:8080
8888Servidor web / consola MVS de Hercules. Usuario/contraseña = docker
3505Lectora de tarjetas perforadas. Convierte ASCII a EBCDIC.
3506Lectora de tarjetas perforadas. Solo acepta archivos EBCDIC.
31337-32337Rango de puertos pasivos del servidor FTP
CarpetaDescripción
/configContiene los archivos de configuración de Hercules y web3270
/printersContiene la salida de las impresoras en CLASS=A
/punchcardsContiene la salida de la perforadora de tarjetas en CLASS=B
/logsContiene los registros de Hercules
/dasdContiene las imágenes de disco MVS/CE
/certsContiene los certificados utilizados para el cifrado TLS
UsuarioContraseñaDescripción
IBMUSERSYS1Usuario administrador con acceso a todo
MVSCE01CUL8TRUsuario administrador con acceso a todo
MVSCE02PASS4UUsuario genérico
DC0DC0Usuario del taller de DEFCON
DC1DC1Usuario del taller de DEFCON
DC2DC2Usuario del taller de DEFCON
DC3DC3Usuario del taller de DEFCON
DC4DC4Usuario del taller de DEFCON
DC5DC5Usuario del taller de DEFCON
DC6DC6Usuario del taller de DEFCON
DC7DC7Usuario del taller de DEFCON
DC8DC8Usuario del taller de DEFCON
DC9DC9Usuario del taller de DEFCON
DC10DC10Usuario del taller de DEFCON
DC11DC11Usuario del taller de DEFCON
DC12DC12Usuario del taller de DEFCON
DC13DC13Usuario del taller de DEFCON
DC14DC14Usuario del taller de DEFCON
DC15DC15Usuario del taller de DEFCON
DC16DC16Usuario del taller de DEFCON
DC17DC17Usuario del taller de DEFCON
DC18DC18Usuario del taller de DEFCON
DC19DC19Usuario del taller de DEFCON
DC20DC20Usuario del taller de DEFCON
DC21DC21Usuario del taller de DEFCON
DC22DC22Usuario del taller de DEFCON
DC23DC23Usuario del taller de DEFCON
cat upload.jcl|ncat --send-only -w1 127.0.0.1 3505
  • Instala https://github.com/mvslovers/rdrprep en tu equipo Linux
  • Clona https://github.com/mvslovers/jcc en esta carpeta
  • Instala wine y wine 32: sudo apt install wine wine32
  • Compila GETSPLOIT/hello.c:
    • wine ./jcc/jcc.exe -I./jcc/include -o ./GETSPLOIT/hello.c
    • ./jcc/prelink -s ./jcc/objs hello.load hello.obj
  • Copia hello.load a ./GETSPLOIT: cp hello.load GETSPLOIT
  • Ejecuta usersjcl.py: ./usersjcl.py
  • Convierte cada trabajo de la carpeta users con rdrprep y envíalos uno a uno:
    • for i in *.jcl; do echo $i;rdrprep $i;cat reader.jcl|ncat --send-only -w1 172.17.0.3 3506; read; done
    • Puedes revisar la salida de MVSCE printers/prt00e.txt para ver si cada trabajo se completó
  • Apaga MVS/CE
  • Vuelve a hacer IPL de MVS/CE y disfruta de tu entorno de laboratorio
  • Luego descarga web3270 desde https://github.com/MVS-sysgen/web3270
  • Sigue las instrucciones para preparar web3270
  • Edita web3270.ini según corresponda
  • Lanza web3270 con python3 -u ./server.py --config /path/to/config --certs /path/to/certs
  • usersjcl.py crea DC00.jcl a DC23.jcl en la carpeta ./users
  • automation.py: script de automatización de MVS en Python utilizado para el despliegue en Docker
  • matrix.txt: Sigue al conejo blanco
  • rexx/DEBRUIJN.rex: script REXX para generar un patrón de Bruijn
  • rexx/decodei.rex: decodifica instrucciones hexadecimales de MVS a un formato legible para humanos
  • motd.txt: el CLIST que se ejecuta al iniciar sesión en TSO
  • mvs.sh: script de ejecución del contenedor para lanzar web3270 y Hercules