11 febrero 2015

Seguridad en Mainframes (I): Preparación del entorno de pruebas

Continuamos la serie que iniciamos allá por Julio con el post "'Casi todo' lo que necesitas saber sobre seguridad en Mainframes" y por fin nos vamos a poner a jugar con "Mainframes. Antes de nada, tranquilidad, y no analicéis todo Internet en busca de sistemas accesibles sobre los que intentar entrar.

Vamos a empezar la casa por el tejado, y a continuación explicaremos cómo disponer de un entorno Mainframe en nuestros propios equipos personales (ya sean Windows, Mac OS X o Unix...) gracias a un emulador. Y digo empezar la casa por el tejado ya que la teoría básica que necesitamos conocer sobre estos sistemas la veremos en próximos posts antes de ponernos realmente a jugar.

Requisitos

Necesitamos cumplir concretamente 3 requisitos indispensables para montar nuestra infraestructura de pruebas. Debido a que la arquitectura no es la habitual, nos olvidaremos de los tan conocidos VMware y VirtualBox.
  1. Emulador: Nos decantaremos por Hercules, software open source que implementa las arquitecturas System/370, ESA/390 y las nuevas z/Architecture de 64bits. 
  2. Terminal: para conectarnos al sistema, no podremos interactuar por completo a través de la interfaz de Hercules, por lo que necesitaremos engancharnos al hardware para poder interactuar con el entorno. Para el terminal elegiremos x3270, el cual está disponible para todos los sistemas operativos de tipo Unix, y además está disponible de forma nativa también para Windows. Instalaremos por tanto wc3270
  3. Sistema operativo: Aquí viene el punto clave de todo esto, a Hercules le tenemos que dar las rutas de las imágenes del sistema operativo IBM z/OS que queremos ejecutar. Como sabréis la mayoría, aquí no tenemos ni ISOs ni hay posibilidad de descargarse el sistema operativo de manera gratis, ya que no lo es en absoluto. Por lo que asumimos que para continuar, dispondrás de imágenes de IBM z/OS, por tener licencia válida o... Nosotros utilizaremos para este post, las imágenes de z/OS v1.10, que dejaremos ubicadas por ejemplo en C:\ZOS110. Ahí se colocan todos los ficheros cckd.

Ubicando lo necesario

Una vez tenemos Hercules y el terminal instalado donde corresponda, y ubicadas las imágenes del sistema operativo z/OS en C:\ZOS110, editaremos la configuración de Hercules hercules.cnf para que apunte a las imágenes correspondientes. Este fichero estará dentro de su directorio de instalación.
He subido a pastebin un fichero hercules.cnf suficiente para que podamos comenzar con la plataforma. Podéis sustituir el contenido del hercules.cnf de ejemplo que viene con el programa con lo siguiente:

Contenido de hercules.cnf de ejemplo


Como veréis en el contenido, la parte final contiene los enlaces a los cckd. Si no habéis podido ubicar las imagenes en C:\ZOS110, ahí deberéis colocar la ruta exacta.

Referencia a imagenes de zOS 1.10

Es el turno de configurar los terminales que nos permitirán conectar al sistema. Para ello, crearemos en cualquier lugar un fichero llamado por ejemplo test.wc3270 con el siguiente contenido:

wc3270.hostname: localhost:3270
wc3270.model: 4
wc3270.charset: spanish-euro
wc3270.autoShortcut: true
Al ejecutar este fichero mediante el cliente wc3270, se iniciará una conexión a modo de consola, con la que podremos interactuar y recibir información por parte del sistema al ejecutarse.

Para ello, crearemos posteriormente un acceso directo que llame a la consola y le pase nuestro fichero de sesión como argumento. Necesitamos la ruta completa donde ubicamos tanto el binario de wc3270.exe como dicho fichero. Si por ejemplo tenemos el terminal en C:\tools\wc3270\wc3270.exe y el fichero de sesión en C:\tools\wc3270\test.wc3270, nos crearemos un acceso directo que ejecute:

C:\tools\wc3270\wc3270.exe +S "C:\tools\wc3270\test.wc3270"


¡Ya tenemos todo listo para iniciar el sistema!

Iniciando el sistema

Realizaremos las siguientes acciones por orden:
    • Apertura de terminales
      • Ejecutar Hercules (Programa Hercules CMD prompt (64 bit)) e iniciar la arquitectura ejecutando el binario hercules.exe (como está el fichero de configuración en la propia carpeta, no es necesario pasarlo como parámetro)
Ejecutamos el prompt de comandos de hercules

Prompt de comandos para Hercules

Ejecución de hercules.exe con fichero de configuración en la misma ruta que el binario
      • En este momento, Hercules espera órdenes.
      • Seguidamente, abriremos dos consolas mediante el acceso directo que hemos creado previamente para el wc3270. La primera servirá como interfaz al sistema principal y la siguiente para interactuar con TSO. Al ejecutar las sesiones, veremos la conexión realizada en la pantalla de Hercules. Tendremos un total de tres ventanas abiertas.
Apertura de sesiones con consola 3270 y detección de su apertura por parte de Hercules
    • En la ventana de Hercules, ejecutaremos el comando de carga de IPL que iniciará el arranque del sistema. Utilizaremos la versión gráfica que podemos invocar mediante la tecla Esc.
Versión "gráfica" de Hercules
      • Estando en la versión gráfica mostrada en la imagen anterior, ejecutamos la tecla L, apareciendo en la parte inferior de la pantalla un mensaje de "Select Device for IPL". pulsaremos posteriormente la tecla que corresponda con el primer DASD, en mi caso (y seguramente en el vuestro, la F). 
Selección de dispositivo DASD para carga IPL
      • Para ver el proceso, volveremos a ejecutar Esc y así veremos todos los mensajes de la ejecución.
    • En la primera consola, obtendremos lo siguiente, solicitándonos responder con I o R . Escribiremos en dicha consola r 00, I y pulsaremos Enter.
Solicitud de respuesta al usuario para continuar ejecución de sistema z/OS
    • Si todo ha ido bien, comenzaremos a ver como en Hercules y dicha sesión aparece información de la carga, y en la segunda sesión un mensaje de bienvenida al sistema con el logo en ASCII de z/OS.
Pantalla de bienvenida a sistema z/OS

Entrando al sistema

  • En la pantalla de bienvenida, ejecutaremos el comando L TSO, y al solictarnos el USERID escribiremos IBMUSER como usuario y pulsaremos Enter. 
Solicitud de cuenta de usuario
  • En la siguiente pantalla se nos solicita la contraseña, y escribiremos SYS1. De nuevo, Enter para confirmar
Solicitud de contraseña para el usuario introducido previamente

Acceso a menú ISPF del sistema

¡Ya tenemos todo lo necesario para empezar! En próximos artículos veremos conceptos básicos de este sistema operativo y entorno, realizaremos tareas básicas de administración para dejar expuesto el sistema a diferentes vulnerabilidades y posteriormente veremos su explotación.

3 comments :

minosaber dijo...

ola ke tal me mandaron esto pero no se yo no se
lo pongo aki a ver ke tal
magnet:?xt=urn:btih:MU5ANF2THNBLJFOBRQHAMIRKPMXJV4WD&dn=IBM%20ZOS%201.10&tr=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&net=Public&net=I2P&net=Tor

Grind dijo...

Genial! Por fin algo de entornos Mainframe!. Se agradece que además que se empiece de lo más básico como es su instalación y acceso ( no por ello lo más fácil...). Espero con ansias la continuación ! Y puestos a pedir... ¿ para cuando algo con AS/400 ? :)
Graciasssss!


Grind

Víctor Rodríguez dijo...

Hola bien día muy buen post, por favor me podrían indicar como conseguir los archivos *.CCKD, les agradezco mucho su apoyo