“This is a first of its kind mainframe hacking class that teaches you the techniques you need to conduct mainframe penetration tests. Using a live z/OS mainframe, you’ll get the ability to put the classroom teachings into practice. Though this class is outlined as a beginner class to mainframe hacking, attendees should have knowledge of IT security, penetration testing, and very basic Python.”

Day 1 was I-N-T-E-N-S-E. I have never learned so much in an 9 hour period of time.

Overview of the Labs:

  1. Login, Copy/Paste a File, and Run it.
  2. REXX Shells
  3. Jobs and JCL
  4. RACF
  5. Access Storage with RACF.

Lab 1 – Login, Copy/Paste, Run a Script

Completed the objectives:

  1. Connecting to a mainframe tn3270 and SSH servers (LPAR).
  2. Accessing TSO.

TSO (Time Sharing Option)

This is very similar to where one would use bash scripts on a Windows machine. By typing CLIST one can run a Command LIST of TSO instructions and run REXX more complicated scripts.

  1. Created a new file and folder.

By accessing the ISPF (Interactive Productivity Facility) one can access the file (dataset) browser. By going to the Dataset Utility, I created a file of a REXX script.

  1. Copied a file from one folder to another.

From the ISPF module, I accessed the previously created REXX script and edited it according to instructions. Text was edited to show a different message when the script was run.

  1. Executed the script in TSO.

TSO EXEC is the main command to run scripts. It can be executed from either ISPF or TSO, but I chose to work and familiarize with TSO.

  1. Executed the script in UNIX.

The script could also be run from the terminal using chmod +x to make the file executable.

LAB 2 – Create REXX Script in Linux

Completed the objectives:

  1. Uploaded a file to the mainframe.
  2. Set up REXX sockets.
  3. Executed a REXX script.
  4. Fixed/edited a REXX script.
  5. Executed the corrected script to see the difference.

LAB 3 – Jobs and JCL

Completed the objectives:

  1. Created a job card on the mainframe.
  2. Edited my first JCL.
  3. Submitted the JCL to the mainframe processes.
  4. Edited the job card in ISPF.
  5. Submitted the job to the mainframe via FTP.

LAB 4 – RACF

Completed the objectives:

  1. Used the RACF program SEARCH function to find datasets in warn mode and surrogate access.
  2. Used surrogate access to submit jobs as other users.

This was QUITE a day! I think I had smoke coming out of my ears at the end of it.