metasploit-framework/modules/payloads/singles/generic/custom.rb

64 lines
1.4 KiB
Ruby
Raw Normal View History

##
2017-07-24 13:26:21 +00:00
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core/payload/generic'
2016-03-08 13:02:44 +00:00
module MetasploitModule
CachedSize = 0
2013-08-30 21:28:54 +00:00
include Msf::Payload::Single
include Msf::Payload::Generic
def initialize(info = {})
super(merge_info(info,
'Name' => 'Custom Payload',
'Description' => 'Use custom string or file as payload. Set either PAYLOADFILE or
PAYLOADSTR.',
'Author' => 'scriptjunkie <scriptjunkie[at]scriptjunkie.us>',
'License' => MSF_LICENSE,
'Payload' =>
{
'Payload' => "" # not really
}
))
# Register options
register_options(
[
OptString.new('PAYLOADFILE', [ false, "The file to read the payload from" ] ),
OptString.new('PAYLOADSTR', [ false, "The string to use as a payload" ] )
])
2013-08-30 21:28:54 +00:00
end
#
# Construct the payload
#
def generate
if datastore['ARCH']
self.arch = actual_arch
end
if datastore['PAYLOADSTR']
2013-08-30 21:28:54 +00:00
datastore['PAYLOADSTR']
elsif datastore['PAYLOADFILE']
IO.read(datastore['PAYLOADFILE'])
else
''
2013-08-30 21:28:54 +00:00
end
end
# Only accept the "none" encoder
def compatible_encoders
encoders = super()
encoders2 = []
encoders.each do |encname, encmod|
encoders2 << [encname, encmod] if encname.include? 'none'
end
return encoders2
end
end