From bdfaaf01b2c4e207f582ef7c2bf1b2ea1024f27b Mon Sep 17 00:00:00 2001 From: OJ Date: Tue, 29 Nov 2016 15:51:38 +1000 Subject: [PATCH] Make multi work with https --- lib/msf/core/payload/multi/reverse_https.rb | 7 ++--- .../payloads/stagers/multi/reverse_https.rb | 31 +++++++++++++++++++ modules/payloads/stages/multi/meterpreter.rb | 5 +-- 3 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 modules/payloads/stagers/multi/reverse_https.rb diff --git a/lib/msf/core/payload/multi/reverse_https.rb b/lib/msf/core/payload/multi/reverse_https.rb index fa3c7a5d2f..006833edd8 100644 --- a/lib/msf/core/payload/multi/reverse_https.rb +++ b/lib/msf/core/payload/multi/reverse_https.rb @@ -18,11 +18,10 @@ module Payload::Multi::ReverseHttps include Msf::Payload::Multi::ReverseHttp # - # Generate the first stage + # Generate the transport-specific configuration # - def generate(opts={}) - opts[:ssl] = true - super(opts) + def transport_config(opts={}) + transport_config_reverse_https(opts) end end diff --git a/modules/payloads/stagers/multi/reverse_https.rb b/modules/payloads/stagers/multi/reverse_https.rb new file mode 100644 index 0000000000..4cf3e10f29 --- /dev/null +++ b/modules/payloads/stagers/multi/reverse_https.rb @@ -0,0 +1,31 @@ +## +# This module requires Metasploit: http://metasploit.com/download +# Current source: https://github.com/rapid7/metasploit-framework +## + +require 'msf/core' +require 'msf/core/handler/reverse_https' +require 'msf/core/payload/multi/reverse_https' + +module MetasploitModule + + CachedSize = :dynamic + + include Msf::Payload::Stager + include Msf::Payload::Multi + include Msf::Payload::Multi::ReverseHttps + + def initialize(info={}) + super(merge_info(info, + 'Name' => 'Reverse HTTPS Stager (Mulitple Architectures)', + 'Description' => 'Tunnel communication over HTTPS', + 'Author' => 'OJ Reeves', + 'License' => MSF_LICENSE, + 'Platform' => ['multi'], + 'Arch' => ARCH_ALL, + 'Handler' => Msf::Handler::ReverseHttps, + 'Stager' => {'Payload' => ''}, + 'Convention' => 'https' + )) + end +end diff --git a/modules/payloads/stages/multi/meterpreter.rb b/modules/payloads/stages/multi/meterpreter.rb index 8354bf111f..cd66efa293 100644 --- a/modules/payloads/stages/multi/meterpreter.rb +++ b/modules/payloads/stages/multi/meterpreter.rb @@ -23,11 +23,12 @@ module MetasploitModule 'Name' => 'Architecture-Independent Meterpreter Stage', 'Description' => 'Handle Meterpreter sessions regardless of the target arch/platform', 'Author' => ['OJ Reeves'], - 'PayloadCompat' => {'Convention' => 'http'}, + 'PayloadCompat' => {'Convention' => 'http https'}, 'License' => MSF_LICENSE, 'Platform' => ['multi'], 'Arch' => ARCH_ALL, - 'Session' => Msf::Sessions::Meterpreter_Multi)) + 'Session' => Msf::Sessions::Meterpreter_Multi + )) end def stage_payload(opts={})