Module: Msf::Payload::Mainframe
- Defined in:
- lib/msf/core/payload/mainframe.rb
Overview
This class is here to implement advanced features for mainframe based payloads. Mainframe payloads are expected to include this module if they want to support these features.
Instance Method Summary collapse
-
#compatible_encoders ⇒ Object
Returns a list of compatible encoders based on mainframe architecture most will not work because of the different architecture an XOR-based encoder will be defined soon.
- #initialize(info = {}) ⇒ Object
-
#jcl_jobcard ⇒ Object
This method is here to implement advanced features for cmd:jcl based payloads.
Instance Method Details
#compatible_encoders ⇒ Object
Returns a list of compatible encoders based on mainframe architecture most will not work because of the different architecture an XOR-based encoder will be defined soon
18 19 20 21 |
# File 'lib/msf/core/payload/mainframe.rb', line 18 def compatible_encoders encoders2 = ['/generic\/none/', 'none'] encoders2 end |
#initialize(info = {}) ⇒ Object
9 10 11 |
# File 'lib/msf/core/payload/mainframe.rb', line 9 def initialize(info = {}) super(info) end |
#jcl_jobcard ⇒ Object
This method is here to implement advanced features for cmd:jcl based payloads. Common to all are the JCL Job Card, and its options which are defined here. It is optional for other mainframe payloads.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/msf/core/payload/mainframe.rb', line 28 def jcl_jobcard # format paramaters with basic constraints # see http://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/ # com.ibm.zos.v2r1.ieab600/iea3b6_Parameter_field8.htm # jobname = format('%1.8s', datastore['JOBNAME']).strip.upcase actnum = format('%1.60s', datastore['ACTNUM']).strip.upcase pgmname = format('%1.20s', datastore['PGMNAME']).strip jclass = format('%1.1s', datastore['JCLASS']).strip.upcase notify = format('%1.8s', datastore['NOTIFY']).strip.upcase notify = if !notify.empty? && datastore['NTFYUSR'] "// NOTIFY=#{notify}, \n" else "" end msgclass = format('%1.1s', datastore['MSGCLASS']).strip.upcase msglevel = format('%5.5s', datastore['MSGLEVEL']).strip # build payload "//#{jobname} JOB " \ "(#{actnum}),\n" \ "// '#{pgmname}',\n" \ "// CLASS=#{jclass},\n" \ "#{notify}" \ "// MSGCLASS=#{msgclass},\n" \ "// MSGLEVEL=#{msglevel},\n" \ "// REGION=0M \n" end |