Add stageless mettle for Linux/zarch
parent
24cf756f5b
commit
ccba73b324
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- coding: binary -*-
|
||||||
|
|
||||||
|
require 'msf/base/sessions/meterpreter'
|
||||||
|
|
||||||
|
module Msf
|
||||||
|
module Sessions
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# This class creates a platform-specific meterpreter session type
|
||||||
|
#
|
||||||
|
###
|
||||||
|
class Meterpreter_zarch_Linux < Msf::Sessions::Meterpreter
|
||||||
|
def supports_ssl?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
def supports_zlib?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
def initialize(rstream, opts={})
|
||||||
|
super
|
||||||
|
self.base_platform = 'linux'
|
||||||
|
self.base_arch = ARCH_ZARCH
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
##
|
||||||
|
# This module requires Metasploit: http://metasploit.com/download
|
||||||
|
# Current source: https://github.com/rapid7/metasploit-framework
|
||||||
|
##
|
||||||
|
|
||||||
|
require 'msf/core'
|
||||||
|
require 'msf/core/handler/reverse_tcp'
|
||||||
|
require 'msf/base/sessions/meterpreter_options'
|
||||||
|
require 'msf/base/sessions/mettle_config'
|
||||||
|
require 'msf/base/sessions/meterpreter_zarch_linux'
|
||||||
|
|
||||||
|
module MetasploitModule
|
||||||
|
|
||||||
|
CachedSize = 367864
|
||||||
|
|
||||||
|
include Msf::Payload::Single
|
||||||
|
include Msf::Sessions::MeterpreterOptions
|
||||||
|
include Msf::Sessions::MettleConfig
|
||||||
|
|
||||||
|
def initialize(info = {})
|
||||||
|
super(
|
||||||
|
update_info(
|
||||||
|
info,
|
||||||
|
'Name' => 'Linux Meterpreter',
|
||||||
|
'Description' => 'Run the mettle server payload (stageless)',
|
||||||
|
'Author' => [
|
||||||
|
'Adam Cammack <adam_cammack[at]rapid7.com>'
|
||||||
|
],
|
||||||
|
'Platform' => 'linux',
|
||||||
|
'Arch' => ARCH_ZARCH,
|
||||||
|
'License' => MSF_LICENSE,
|
||||||
|
'Handler' => Msf::Handler::ReverseTcp,
|
||||||
|
'Session' => Msf::Sessions::Meterpreter_zarch_Linux
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate
|
||||||
|
MetasploitPayloads::Mettle.new('s390x-linux-musl', generate_config).to_binary :exec
|
||||||
|
end
|
||||||
|
end
|
|
@ -4524,4 +4524,14 @@ RSpec.describe 'modules/payloads', :content do
|
||||||
reference_name: 'linux/x86/mettle_reverse_tcp'
|
reference_name: 'linux/x86/mettle_reverse_tcp'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'linux/zarch/mettle_reverse_tcp' do
|
||||||
|
it_should_behave_like 'payload cached size is consistent',
|
||||||
|
ancestor_reference_names: [
|
||||||
|
'singles/linux/zarch/mettle_reverse_tcp'
|
||||||
|
],
|
||||||
|
dynamic_size: false,
|
||||||
|
modules_pathname: modules_pathname,
|
||||||
|
reference_name: 'linux/zarch/mettle_reverse_tcp'
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue