From 44617cbe3775169f7a0dac7fa5ed69b33767e22b Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Tue, 8 Apr 2025 10:19:25 -0400 Subject: [PATCH 01/19] feat: split platform-specific meterpreter options on different modules, adding AutoLoadExtensions option (Windows, Linux) --- lib/msf/base/sessions/meterpreter.rb | 41 +++---- .../sessions/meterpreter_options/common.rb | 104 ++++++++++++++++++ .../sessions/meterpreter_options/linux.rb | 30 +++++ .../sessions/meterpreter_options/windows.rb | 30 +++++ .../linux/aarch64/meterpreter_reverse_http.rb | 2 +- .../aarch64/meterpreter_reverse_https.rb | 2 +- .../linux/aarch64/meterpreter_reverse_tcp.rb | 2 +- .../linux/armbe/meterpreter_reverse_http.rb | 2 +- .../linux/armbe/meterpreter_reverse_https.rb | 2 +- .../linux/armbe/meterpreter_reverse_tcp.rb | 2 +- .../linux/armle/meterpreter_reverse_http.rb | 2 +- .../linux/armle/meterpreter_reverse_https.rb | 2 +- .../linux/armle/meterpreter_reverse_tcp.rb | 2 +- .../linux/mips64/meterpreter_reverse_http.rb | 2 +- .../linux/mips64/meterpreter_reverse_https.rb | 2 +- .../linux/mips64/meterpreter_reverse_tcp.rb | 2 +- .../linux/mipsbe/meterpreter_reverse_http.rb | 2 +- .../linux/mipsbe/meterpreter_reverse_https.rb | 2 +- .../linux/mipsbe/meterpreter_reverse_tcp.rb | 2 +- .../linux/mipsle/meterpreter_reverse_http.rb | 2 +- .../linux/mipsle/meterpreter_reverse_https.rb | 2 +- .../linux/mipsle/meterpreter_reverse_tcp.rb | 2 +- .../linux/ppc/meterpreter_reverse_http.rb | 2 +- .../linux/ppc/meterpreter_reverse_https.rb | 2 +- .../linux/ppc/meterpreter_reverse_tcp.rb | 2 +- .../linux/ppc64le/meterpreter_reverse_http.rb | 2 +- .../ppc64le/meterpreter_reverse_https.rb | 2 +- .../linux/ppc64le/meterpreter_reverse_tcp.rb | 2 +- .../ppce500v2/meterpreter_reverse_http.rb | 2 +- .../ppce500v2/meterpreter_reverse_https.rb | 2 +- .../ppce500v2/meterpreter_reverse_tcp.rb | 2 +- .../linux/x64/meterpreter_reverse_http.rb | 2 +- .../linux/x64/meterpreter_reverse_https.rb | 2 +- .../linux/x64/meterpreter_reverse_tcp.rb | 2 +- .../linux/x86/meterpreter_reverse_http.rb | 2 +- .../linux/x86/meterpreter_reverse_https.rb | 2 +- .../linux/x86/meterpreter_reverse_tcp.rb | 2 +- .../singles/linux/x86/metsvc_bind_tcp.rb | 2 +- .../singles/linux/x86/metsvc_reverse_tcp.rb | 2 +- .../linux/zarch/meterpreter_reverse_http.rb | 2 +- .../linux/zarch/meterpreter_reverse_https.rb | 2 +- .../linux/zarch/meterpreter_reverse_tcp.rb | 2 +- .../windows/meterpreter_bind_named_pipe.rb | 2 +- .../singles/windows/meterpreter_bind_tcp.rb | 2 +- .../windows/meterpreter_reverse_http.rb | 2 +- .../windows/meterpreter_reverse_https.rb | 2 +- .../windows/meterpreter_reverse_ipv6_tcp.rb | 2 +- .../windows/meterpreter_reverse_tcp.rb | 2 +- .../singles/windows/metsvc_bind_tcp.rb | 2 +- .../singles/windows/metsvc_reverse_tcp.rb | 2 +- .../x64/meterpreter_bind_named_pipe.rb | 2 +- .../windows/x64/meterpreter_bind_tcp.rb | 2 +- .../windows/x64/meterpreter_reverse_http.rb | 2 +- .../windows/x64/meterpreter_reverse_https.rb | 2 +- .../x64/meterpreter_reverse_ipv6_tcp.rb | 2 +- .../windows/x64/meterpreter_reverse_tcp.rb | 2 +- .../stages/linux/aarch64/meterpreter.rb | 2 +- .../stages/linux/armle/meterpreter.rb | 2 +- .../stages/linux/mipsbe/meterpreter.rb | 2 +- .../stages/linux/mipsle/meterpreter.rb | 2 +- .../payloads/stages/linux/x64/meterpreter.rb | 2 +- .../payloads/stages/linux/x86/meterpreter.rb | 2 +- .../payloads/stages/windows/meterpreter.rb | 2 +- .../stages/windows/patchupmeterpreter.rb | 2 +- .../stages/windows/x64/meterpreter.rb | 2 +- 65 files changed, 241 insertions(+), 86 deletions(-) create mode 100644 lib/msf/base/sessions/meterpreter_options/common.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/linux.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/windows.rb diff --git a/lib/msf/base/sessions/meterpreter.rb b/lib/msf/base/sessions/meterpreter.rb index 8621f6af54..074ecfda30 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -180,32 +180,23 @@ class Meterpreter < Rex::Post::Meterpreter::Client print_warning('Meterpreter start up operations have been aborted. Use the session at your own risk.') return nil end - # Unhook the process prior to loading stdapi to reduce logging/inspection by any AV/PSP - if datastore['AutoUnhookProcess'] == true - console.run_single('load unhook') - console.run_single('unhook_pe') - end - - unless datastore['AutoLoadStdapi'] == false - - session.load_stdapi - - unless datastore['AutoSystemInfo'] == false - session.load_session_info - end - - # only load priv on native windows - # TODO: abstract this too, to remove windows stuff - if session.platform == 'windows' && [ARCH_X86, ARCH_X64].include?(session.arch) - session.load_priv rescue nil - end - end - - # TODO: abstract this a little, perhaps a "post load" function that removes - # platform-specific stuff? - if session.platform == 'android' - session.load_android + extensions = datastore['AutoLoadExtensions']&.split(';') || [] + + # BEGIN: This should be removed on MSF 7 + extensions.push('unhook') if datastore['AutoUnhookProcess'] && session.platform == 'windows' + extensions.push('stdapi') if datastore['AutoLoadStdapi'] + extensions.push('priv') if datastore['AutoLoadStdapi'] && session.platform('windows') + extensions.push('android') if session.platform == 'android' + extensions = extensions.uniq + # END + original = console.disable_output + console.disable_output = true + extensions.each do |extension| + console.run_single("load #{extension}") + console.run_single('unhook_pe') if extension == 'unhook' + session.load_session_info if extension == 'stdapi' && datastore['AutoSystemInfo'] end + console.disable_output = original ['InitialAutoRunScript', 'AutoRunScript'].each do |key| unless datastore[key].nil? || datastore[key].empty? diff --git a/lib/msf/base/sessions/meterpreter_options/common.rb b/lib/msf/base/sessions/meterpreter_options/common.rb new file mode 100644 index 0000000000..6e547c3ef9 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/common.rb @@ -0,0 +1,104 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Common + + TIMEOUT_SESSION = 24 * 3600 * 7 # 1 week + TIMEOUT_COMMS = 300 # 5 minutes + TIMEOUT_RETRY_TOTAL = 60 * 60 # 1 hour + TIMEOUT_RETRY_WAIT = 10 # 10 seconds + + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptBool.new( + 'AutoLoadStdapi', + [true, "Automatically load the Stdapi extension", true] + ), + OptInt.new( + 'AutoVerifySessionTimeout', + [false, "Timeout period to wait for session validation to occur, in seconds", 30] + ), + OptString.new( + 'InitialAutoRunScript', + [false, "An initial script to run on session creation (before AutoRunScript)", ''] + ), + OptString.new( + 'AutoRunScript', + [false, "A script to run automatically on session creation.", ''] + ), + OptBool.new( + 'AutoSystemInfo', + [true, "Automatically capture system information on initialization.", true] + ), + OptBool.new( + 'EnableUnicodeEncoding', + [true, "Automatically encode UTF-8 strings as hexadecimal", Rex::Compat.is_windows] + ), + OptPath.new( + 'HandlerSSLCert', + [false, "Path to a SSL certificate in unified PEM format, ignored for HTTP transports"] + ), + OptInt.new( + 'SessionRetryTotal', + [false, "Number of seconds try reconnecting for on network failure", TIMEOUT_RETRY_TOTAL] + ), + OptInt.new( + 'SessionRetryWait', + [false, "Number of seconds to wait between reconnect attempts", TIMEOUT_RETRY_WAIT] + ), + OptInt.new( + 'SessionExpirationTimeout', + [ false, 'The number of seconds before this session should be forcibly shut down', TIMEOUT_SESSION] + ), + OptInt.new( + 'SessionCommunicationTimeout', + [ false, 'The number of seconds of no activity before this session should be killed', TIMEOUT_COMMS] + ), + OptBool.new( + 'MeterpreterDebugBuild', + [false, 'Use a debug version of Meterpreter'] + ), + OptMeterpreterDebugLogging.new( + 'MeterpreterDebugLogging', + [false, 'The Meterpreter debug logging configuration, see https://docs.metasploit.com/docs/using-metasploit/advanced/meterpreter/meterpreter-debugging-meterpreter-sessions.html'] + ) + ], + self.class + ) + end + + def meterpreter_logging_config(opts = {}) + ds = opts[:datastore] || datastore + { + debug_build: (ds[:debug_build] || datastore['MeterpreterDebugBuild']), + log_path: (ds[:log_path] || parse_rpath) + } + end + + def mettle_logging_config(opts = {}) + ds = opts[:datastore] || datastore + debug_build = ds[:debug_build] || datastore['MeterpreterDebugBuild'] + log_path = ds[:log_path] || parse_rpath + { + debug: debug_build ? 3 : 0, + log_file: log_path + } + end + + private + + def parse_rpath + Msf::OptMeterpreterDebugLogging.parse_logging_options(datastore['MeterpreterDebugLogging'])[:rpath] + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/linux.rb b/lib/msf/base/sessions/meterpreter_options/linux.rb new file mode 100644 index 0000000000..4aa23b9566 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/linux.rb @@ -0,0 +1,30 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Linux + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap (ex: 'stdapi;sniffer')", 'stdapi'] + ), + OptString.new( + 'PayloadProcessCommandLine', + [ false, 'The displayed command line that will be used by the payload', ''] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/windows.rb b/lib/msf/base/sessions/meterpreter_options/windows.rb new file mode 100644 index 0000000000..eacfb10679 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/windows.rb @@ -0,0 +1,30 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Windows + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap (ex: 'priv;stdapi')", 'unhook;priv;stdapi'] + ), + OptBool.new( + 'AutoUnhookProcess', + [true, "Automatically load the unhook extension and unhook the process", false] + ), + ], + self.class + ) + end + end + end +end diff --git a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb index e5777dafed..b23149e0b3 100644 --- a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1140752 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb index 51ed224685..3200889a32 100644 --- a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1140752 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb index 4b08f76db6..ee1e4bd9d3 100644 --- a/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1140752 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb index 4355ab1f3e..0f88709550 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1061912 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb index 918217552c..8987a8bb4b 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1061912 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb index fa7bf40b02..09d5fb316d 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1061912 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb index 10d5180224..3cca57dc1f 100644 --- a/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1062084 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb index 0581ad8a4a..78818195b2 100644 --- a/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1062084 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb index 810cef358b..2303285700 100644 --- a/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1062084 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb index f2c4323f13..a13ca312b3 100644 --- a/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1622448 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb index 8bf527f369..e55e18a056 100644 --- a/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1622448 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb index be291ca5a4..fbde3875de 100644 --- a/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1622448 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb index f83526573c..ccdd4a165d 100644 --- a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1516524 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb index b26a44ee84..cdefc8b5bc 100644 --- a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1516524 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb index 9993b1f740..564497e18f 100644 --- a/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1516524 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb index 0fd69452e0..a51c528a25 100644 --- a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1519544 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb index 86cb8cba50..7e30e6bed3 100644 --- a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1519544 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb index 849b77882f..dcc05a0ffd 100644 --- a/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1519544 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb index 90a78008a3..1a158c5bf4 100644 --- a/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1213932 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb index b59a867c6f..368e8ec5b2 100644 --- a/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1213932 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb index c1199a8bb0..aa848cfe73 100644 --- a/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1213932 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb index cb6cd3edaf..0b87ca1879 100644 --- a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1238560 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb index bfdaa64ed9..4065a085eb 100644 --- a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1238560 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb index 9b5b89d5d3..5b3a2521ab 100644 --- a/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1238560 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb index c1d96eaa75..3d45324314 100644 --- a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1166612 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb index 009fc3e4ac..d709f47f47 100644 --- a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1166612 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb index 9f3d5f994a..89fb9b4b12 100644 --- a/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1166612 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb index fbbd0a430f..ec41d8a857 100644 --- a/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1068952 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb index 215c9db001..b99569aae5 100644 --- a/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1068952 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb index add0b620cc..4c60cba5f5 100644 --- a/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1068952 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb index f623f1aed1..9e29aafbc9 100644 --- a/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1137332 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb index e678ee1082..45ef5c0aa0 100644 --- a/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1137332 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb index b7fb350cc1..a99f209a3e 100644 --- a/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1137332 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/x86/metsvc_bind_tcp.rb b/modules/payloads/singles/linux/x86/metsvc_bind_tcp.rb index bfeeb144cd..ec3cac4c1e 100644 --- a/modules/payloads/singles/linux/x86/metsvc_bind_tcp.rb +++ b/modules/payloads/singles/linux/x86/metsvc_bind_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Linux::X86::Prepends include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux def initialize(info = {}) super( diff --git a/modules/payloads/singles/linux/x86/metsvc_reverse_tcp.rb b/modules/payloads/singles/linux/x86/metsvc_reverse_tcp.rb index 396c579db3..f038a5c6ab 100644 --- a/modules/payloads/singles/linux/x86/metsvc_reverse_tcp.rb +++ b/modules/payloads/singles/linux/x86/metsvc_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Linux::X86::Prepends include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux def initialize(info = {}) super( diff --git a/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb index 80f5335d1d..fd355e131c 100644 --- a/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1271304 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb index 39ecbf416a..a508bd1f2a 100644 --- a/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1271304 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb index f44c0ee38f..1b9d850d54 100644 --- a/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 1271304 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/windows/meterpreter_bind_named_pipe.rb b/modules/payloads/singles/windows/meterpreter_bind_named_pipe.rb index 5acfd75dab..5e22e14960 100644 --- a/modules/payloads/singles/windows/meterpreter_bind_named_pipe.rb +++ b/modules/payloads/singles/windows/meterpreter_bind_named_pipe.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/meterpreter_bind_tcp.rb b/modules/payloads/singles/windows/meterpreter_bind_tcp.rb index 2bf0be4f93..84d81da841 100644 --- a/modules/payloads/singles/windows/meterpreter_bind_tcp.rb +++ b/modules/payloads/singles/windows/meterpreter_bind_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/meterpreter_reverse_http.rb b/modules/payloads/singles/windows/meterpreter_reverse_http.rb index f0e6f51976..5b00b86224 100644 --- a/modules/payloads/singles/windows/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/windows/meterpreter_reverse_http.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/meterpreter_reverse_https.rb b/modules/payloads/singles/windows/meterpreter_reverse_https.rb index e382c41138..a832b5bd28 100644 --- a/modules/payloads/singles/windows/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/windows/meterpreter_reverse_https.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/meterpreter_reverse_ipv6_tcp.rb b/modules/payloads/singles/windows/meterpreter_reverse_ipv6_tcp.rb index dd79c1edc3..0e516147c0 100644 --- a/modules/payloads/singles/windows/meterpreter_reverse_ipv6_tcp.rb +++ b/modules/payloads/singles/windows/meterpreter_reverse_ipv6_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/meterpreter_reverse_tcp.rb b/modules/payloads/singles/windows/meterpreter_reverse_tcp.rb index 469882e3b6..8707e67ffd 100644 --- a/modules/payloads/singles/windows/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/windows/meterpreter_reverse_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/metsvc_bind_tcp.rb b/modules/payloads/singles/windows/metsvc_bind_tcp.rb index da7f92fe61..0fce0656ce 100644 --- a/modules/payloads/singles/windows/metsvc_bind_tcp.rb +++ b/modules/payloads/singles/windows/metsvc_bind_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/metsvc_reverse_tcp.rb b/modules/payloads/singles/windows/metsvc_reverse_tcp.rb index 5a52e0b61a..ae2c0961ee 100644 --- a/modules/payloads/singles/windows/metsvc_reverse_tcp.rb +++ b/modules/payloads/singles/windows/metsvc_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_bind_named_pipe.rb b/modules/payloads/singles/windows/x64/meterpreter_bind_named_pipe.rb index c8fb3ba5d4..c1746a058b 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_bind_named_pipe.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_bind_named_pipe.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_bind_tcp.rb b/modules/payloads/singles/windows/x64/meterpreter_bind_tcp.rb index 4c5bef91ea..6d0565914e 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_bind_tcp.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_bind_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb b/modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb index 7ce487c5e1..8995607f10 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb b/modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb index 1ce20b3ff4..664500155f 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_reverse_ipv6_tcp.rb b/modules/payloads/singles/windows/x64/meterpreter_reverse_ipv6_tcp.rb index f08c0866a9..9b8959a4d6 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_reverse_ipv6_tcp.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_reverse_ipv6_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/singles/windows/x64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/windows/x64/meterpreter_reverse_tcp.rb index 4bc6fc3aa5..83702e270f 100644 --- a/modules/payloads/singles/windows/x64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/windows/x64/meterpreter_reverse_tcp.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Windows include Msf::Payload::Single include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/stages/linux/aarch64/meterpreter.rb b/modules/payloads/stages/linux/aarch64/meterpreter.rb index 1671ade5da..c6114b5f30 100644 --- a/modules/payloads/stages/linux/aarch64/meterpreter.rb +++ b/modules/payloads/stages/linux/aarch64/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/linux/armle/meterpreter.rb b/modules/payloads/stages/linux/armle/meterpreter.rb index 2e9f3b93ae..1d9eae8805 100644 --- a/modules/payloads/stages/linux/armle/meterpreter.rb +++ b/modules/payloads/stages/linux/armle/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/linux/mipsbe/meterpreter.rb b/modules/payloads/stages/linux/mipsbe/meterpreter.rb index a61cad1066..269d2df811 100644 --- a/modules/payloads/stages/linux/mipsbe/meterpreter.rb +++ b/modules/payloads/stages/linux/mipsbe/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/linux/mipsle/meterpreter.rb b/modules/payloads/stages/linux/mipsle/meterpreter.rb index a1326d9328..d38c2064d5 100644 --- a/modules/payloads/stages/linux/mipsle/meterpreter.rb +++ b/modules/payloads/stages/linux/mipsle/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/linux/x64/meterpreter.rb b/modules/payloads/stages/linux/x64/meterpreter.rb index 1b38969e2b..39b3f94b3a 100644 --- a/modules/payloads/stages/linux/x64/meterpreter.rb +++ b/modules/payloads/stages/linux/x64/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/linux/x86/meterpreter.rb b/modules/payloads/stages/linux/x86/meterpreter.rb index bc8d7a5138..8f11c712ca 100644 --- a/modules/payloads/stages/linux/x86/meterpreter.rb +++ b/modules/payloads/stages/linux/x86/meterpreter.rb @@ -6,7 +6,7 @@ require 'rex/elfparsey' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/windows/meterpreter.rb b/modules/payloads/stages/windows/meterpreter.rb index 3682773912..c727ac1b94 100644 --- a/modules/payloads/stages/windows/meterpreter.rb +++ b/modules/payloads/stages/windows/meterpreter.rb @@ -12,7 +12,7 @@ module MetasploitModule include Msf::Payload::Windows::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/stages/windows/patchupmeterpreter.rb b/modules/payloads/stages/windows/patchupmeterpreter.rb index 43da4c07e0..0242fadf09 100644 --- a/modules/payloads/stages/windows/patchupmeterpreter.rb +++ b/modules/payloads/stages/windows/patchupmeterpreter.rb @@ -10,7 +10,7 @@ ### module MetasploitModule include Msf::Payload::Windows::DllInject - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( diff --git a/modules/payloads/stages/windows/x64/meterpreter.rb b/modules/payloads/stages/windows/x64/meterpreter.rb index a7009d722a..c0a97632ab 100644 --- a/modules/payloads/stages/windows/x64/meterpreter.rb +++ b/modules/payloads/stages/windows/x64/meterpreter.rb @@ -12,7 +12,7 @@ module MetasploitModule include Msf::Payload::Windows::MeterpreterLoader_x64 - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Windows def initialize(info = {}) super( From a7f4da54313d05306a6d3d313ae91d9c427d7a3e Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Wed, 9 Apr 2025 07:19:14 -0400 Subject: [PATCH 02/19] feat: split platform-specific meterpreter options on different modules, adding AutoLoadExtensions option (AppleIos,Php,Python,Java,Osx,Android) --- .../sessions/meterpreter_options/android.rb | 27 ++++++++++++++++ .../sessions/meterpreter_options/apple_ios.rb | 31 +++++++++++++++++++ .../base/sessions/meterpreter_options/bsd.rb | 27 ++++++++++++++++ .../base/sessions/meterpreter_options/java.rb | 27 ++++++++++++++++ .../sessions/meterpreter_options/linux.rb | 3 +- .../base/sessions/meterpreter_options/osx.rb | 27 ++++++++++++++++ .../base/sessions/meterpreter_options/php.rb | 27 ++++++++++++++++ .../sessions/meterpreter_options/python.rb | 27 ++++++++++++++++ .../sessions/meterpreter_options/windows.rb | 3 +- .../payload/android/meterpreter_loader.rb | 2 +- .../core/payload/java/meterpreter_loader.rb | 2 +- .../core/payload/python/meterpreter_loader.rb | 2 +- .../android/meterpreter_reverse_http.rb | 2 +- .../android/meterpreter_reverse_https.rb | 2 +- .../android/meterpreter_reverse_tcp.rb | 2 +- .../aarch64/meterpreter_reverse_http.rb | 2 +- .../aarch64/meterpreter_reverse_https.rb | 2 +- .../aarch64/meterpreter_reverse_tcp.rb | 2 +- .../armle/meterpreter_reverse_http.rb | 2 +- .../armle/meterpreter_reverse_https.rb | 2 +- .../armle/meterpreter_reverse_tcp.rb | 2 +- .../singles/bsd/x86/metsvc_bind_tcp.rb | 2 +- .../singles/bsd/x86/metsvc_reverse_tcp.rb | 2 +- .../osx/aarch64/meterpreter_reverse_http.rb | 2 +- .../osx/aarch64/meterpreter_reverse_https.rb | 2 +- .../osx/aarch64/meterpreter_reverse_tcp.rb | 2 +- .../osx/x64/meterpreter_reverse_http.rb | 2 +- .../osx/x64/meterpreter_reverse_https.rb | 2 +- .../osx/x64/meterpreter_reverse_tcp.rb | 2 +- .../singles/php/meterpreter_reverse_tcp.rb | 2 +- .../payloads/stages/android/meterpreter.rb | 2 +- modules/payloads/stages/java/meterpreter.rb | 2 +- .../stages/osx/aarch64/meterpreter.rb | 2 +- .../payloads/stages/osx/x64/meterpreter.rb | 2 +- modules/payloads/stages/php/meterpreter.rb | 3 +- 35 files changed, 224 insertions(+), 28 deletions(-) create mode 100644 lib/msf/base/sessions/meterpreter_options/android.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/apple_ios.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/bsd.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/java.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/osx.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/php.rb create mode 100644 lib/msf/base/sessions/meterpreter_options/python.rb diff --git a/lib/msf/base/sessions/meterpreter_options/android.rb b/lib/msf/base/sessions/meterpreter_options/android.rb new file mode 100644 index 0000000000..720e414ec0 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/android.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Android + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi;android'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/apple_ios.rb b/lib/msf/base/sessions/meterpreter_options/apple_ios.rb new file mode 100644 index 0000000000..dcd1068732 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/apple_ios.rb @@ -0,0 +1,31 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::AppleIos + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + OptString.new( + 'PayloadProcessCommandLine', + [ false, 'The displayed command line that will be used by the payload', ''] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/bsd.rb b/lib/msf/base/sessions/meterpreter_options/bsd.rb new file mode 100644 index 0000000000..62c639ed51 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/bsd.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Bsd + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/java.rb b/lib/msf/base/sessions/meterpreter_options/java.rb new file mode 100644 index 0000000000..e5bca9c53e --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/java.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Java + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/linux.rb b/lib/msf/base/sessions/meterpreter_options/linux.rb index 4aa23b9566..7d21be8058 100644 --- a/lib/msf/base/sessions/meterpreter_options/linux.rb +++ b/lib/msf/base/sessions/meterpreter_options/linux.rb @@ -8,6 +8,7 @@ module Msf # Defines common options across all Meterpreter implementations # module MeterpreterOptions::Linux + include Msf::Sessions::MeterpreterOptions::Common def initialize(info = {}) super(info) @@ -15,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap (ex: 'stdapi;sniffer')", 'stdapi'] + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] ), OptString.new( 'PayloadProcessCommandLine', diff --git a/lib/msf/base/sessions/meterpreter_options/osx.rb b/lib/msf/base/sessions/meterpreter_options/osx.rb new file mode 100644 index 0000000000..cb2009a55c --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/php.rb b/lib/msf/base/sessions/meterpreter_options/php.rb new file mode 100644 index 0000000000..aa6cebcb65 --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/php.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Php + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/python.rb b/lib/msf/base/sessions/meterpreter_options/python.rb new file mode 100644 index 0000000000..02ae0feb3b --- /dev/null +++ b/lib/msf/base/sessions/meterpreter_options/python.rb @@ -0,0 +1,27 @@ +# -*- coding: binary -*- + +require 'shellwords' + +module Msf + module Sessions + # + # Defines common options across all Meterpreter implementations + # + module MeterpreterOptions::Python + include Msf::Sessions::MeterpreterOptions::Common + def initialize(info = {}) + super(info) + + register_advanced_options( + [ + OptString.new( + 'AutoLoadExtensions', + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + ), + ], + self.class + ) + end + end + end +end diff --git a/lib/msf/base/sessions/meterpreter_options/windows.rb b/lib/msf/base/sessions/meterpreter_options/windows.rb index eacfb10679..6c4eba7aff 100644 --- a/lib/msf/base/sessions/meterpreter_options/windows.rb +++ b/lib/msf/base/sessions/meterpreter_options/windows.rb @@ -8,6 +8,7 @@ module Msf # Defines common options across all Meterpreter implementations # module MeterpreterOptions::Windows + include Msf::Sessions::MeterpreterOptions::Common def initialize(info = {}) super(info) @@ -15,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap (ex: 'priv;stdapi')", 'unhook;priv;stdapi'] + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'unhook;priv;stdapi'] ), OptBool.new( 'AutoUnhookProcess', diff --git a/lib/msf/core/payload/android/meterpreter_loader.rb b/lib/msf/core/payload/android/meterpreter_loader.rb index 10a5fa7015..197caed857 100644 --- a/lib/msf/core/payload/android/meterpreter_loader.rb +++ b/lib/msf/core/payload/android/meterpreter_loader.rb @@ -13,7 +13,7 @@ module Payload::Android::MeterpreterLoader include Msf::Payload::Android include Msf::Payload::UUID::Options - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Android def initialize(info={}) super(update_info(info, diff --git a/lib/msf/core/payload/java/meterpreter_loader.rb b/lib/msf/core/payload/java/meterpreter_loader.rb index b53e0b649e..e2654ba6c7 100644 --- a/lib/msf/core/payload/java/meterpreter_loader.rb +++ b/lib/msf/core/payload/java/meterpreter_loader.rb @@ -13,7 +13,7 @@ module Payload::Java::MeterpreterLoader include Msf::Payload::Java include Msf::Payload::UUID::Options - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Java def initialize(info = {}) super(update_info(info, diff --git a/lib/msf/core/payload/python/meterpreter_loader.rb b/lib/msf/core/payload/python/meterpreter_loader.rb index 2dfd080add..81ec869640 100644 --- a/lib/msf/core/payload/python/meterpreter_loader.rb +++ b/lib/msf/core/payload/python/meterpreter_loader.rb @@ -14,7 +14,7 @@ module Payload::Python::MeterpreterLoader include Msf::Payload::Python include Msf::Payload::UUID::Options include Msf::Payload::TransportConfig - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Python def initialize(info = {}) super(update_info(info, diff --git a/modules/payloads/singles/android/meterpreter_reverse_http.rb b/modules/payloads/singles/android/meterpreter_reverse_http.rb index a56b2dd4b4..aa423db6a7 100644 --- a/modules/payloads/singles/android/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/android/meterpreter_reverse_http.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Single include Msf::Payload::Android include Msf::Payload::UUID::Options - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Android def initialize(info = {}) super( diff --git a/modules/payloads/singles/android/meterpreter_reverse_https.rb b/modules/payloads/singles/android/meterpreter_reverse_https.rb index e8160f8442..f24c6e001b 100644 --- a/modules/payloads/singles/android/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/android/meterpreter_reverse_https.rb @@ -10,7 +10,7 @@ module MetasploitModule include Msf::Payload::Single include Msf::Payload::Android include Msf::Payload::UUID::Options - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Android def initialize(info = {}) super( diff --git a/modules/payloads/singles/android/meterpreter_reverse_tcp.rb b/modules/payloads/singles/android/meterpreter_reverse_tcp.rb index c457db43fb..137bab0c25 100644 --- a/modules/payloads/singles/android/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/android/meterpreter_reverse_tcp.rb @@ -9,7 +9,7 @@ module MetasploitModule include Msf::Payload::TransportConfig include Msf::Payload::Single include Msf::Payload::Android - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Android def initialize(info = {}) super( diff --git a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb index a09c4edd6b..fa0096665f 100644 --- a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 796904 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb index 6e7aa8c75e..0317c5da27 100644 --- a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 796904 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb index 64bede6bd1..d068df6472 100644 --- a/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 796904 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb index b173ec4c9d..b185752c99 100644 --- a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 643824 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb index 81a8b82b30..a65b7a714e 100644 --- a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 643824 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb index 5563a0acb9..8dcdb85526 100644 --- a/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 643824 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::AppleIos include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/bsd/x86/metsvc_bind_tcp.rb b/modules/payloads/singles/bsd/x86/metsvc_bind_tcp.rb index ed46236b29..e4e3620792 100644 --- a/modules/payloads/singles/bsd/x86/metsvc_bind_tcp.rb +++ b/modules/payloads/singles/bsd/x86/metsvc_bind_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Bsd include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Bsd def initialize(info = {}) super( diff --git a/modules/payloads/singles/bsd/x86/metsvc_reverse_tcp.rb b/modules/payloads/singles/bsd/x86/metsvc_reverse_tcp.rb index d720975c50..1424a9db85 100644 --- a/modules/payloads/singles/bsd/x86/metsvc_reverse_tcp.rb +++ b/modules/payloads/singles/bsd/x86/metsvc_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Bsd include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Bsd def initialize(info = {}) super( diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb index 30693a1ea2..762b3ddad6 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb index b6e2662255..c6a0e97f10 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb index 9f1737fa74..511e352738 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb index 4c938d7d3c..93ca595296 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb index 1c244816b6..62b12490ee 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb index 271a2f7750..40e7e16662 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/php/meterpreter_reverse_tcp.rb b/modules/payloads/singles/php/meterpreter_reverse_tcp.rb index f01e490073..48baa9ce9d 100644 --- a/modules/payloads/singles/php/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/php/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Single include Msf::Payload::Php::ReverseTcp - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Php def initialize(info = {}) super( diff --git a/modules/payloads/stages/android/meterpreter.rb b/modules/payloads/stages/android/meterpreter.rb index 8deaedd91f..b688e68202 100644 --- a/modules/payloads/stages/android/meterpreter.rb +++ b/modules/payloads/stages/android/meterpreter.rb @@ -5,7 +5,7 @@ module MetasploitModule include Msf::Payload::Android::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Android def initialize(info = {}) super( diff --git a/modules/payloads/stages/java/meterpreter.rb b/modules/payloads/stages/java/meterpreter.rb index 15b2a8db5d..0db7455057 100644 --- a/modules/payloads/stages/java/meterpreter.rb +++ b/modules/payloads/stages/java/meterpreter.rb @@ -5,7 +5,7 @@ module MetasploitModule include Msf::Payload::Java::MeterpreterLoader - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Java def initialize(info = {}) super( diff --git a/modules/payloads/stages/osx/aarch64/meterpreter.rb b/modules/payloads/stages/osx/aarch64/meterpreter.rb index a894e170ba..f3056462ac 100644 --- a/modules/payloads/stages/osx/aarch64/meterpreter.rb +++ b/modules/payloads/stages/osx/aarch64/meterpreter.rb @@ -4,7 +4,7 @@ ## module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/osx/x64/meterpreter.rb b/modules/payloads/stages/osx/x64/meterpreter.rb index 6ff787f618..0aedb79180 100644 --- a/modules/payloads/stages/osx/x64/meterpreter.rb +++ b/modules/payloads/stages/osx/x64/meterpreter.rb @@ -4,7 +4,7 @@ ## module MetasploitModule - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::Osx include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/php/meterpreter.rb b/modules/payloads/stages/php/meterpreter.rb index 38a84ae9d5..f86f2b15d9 100644 --- a/modules/payloads/stages/php/meterpreter.rb +++ b/modules/payloads/stages/php/meterpreter.rb @@ -6,7 +6,8 @@ require 'securerandom' module MetasploitModule - include Msf::Sessions::MeterpreterOptions + + include Msf::Sessions::MeterpreterOptions::Php def initialize(info = {}) super( From e44043b88aa58c838764e801c0c4a8ff2343e579 Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 07:59:49 -0400 Subject: [PATCH 03/19] fix: restored deleted comments --- lib/msf/base/sessions/meterpreter.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter.rb b/lib/msf/base/sessions/meterpreter.rb index 074ecfda30..90d5c43668 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -183,14 +183,17 @@ class Meterpreter < Rex::Post::Meterpreter::Client extensions = datastore['AutoLoadExtensions']&.split(';') || [] # BEGIN: This should be removed on MSF 7 + # Unhook the process prior to loading stdapi to reduce logging/inspection by any AV/PSP (by default unhook is first, see meterpreter_options/windows.rb) extensions.push('unhook') if datastore['AutoUnhookProcess'] && session.platform == 'windows' extensions.push('stdapi') if datastore['AutoLoadStdapi'] - extensions.push('priv') if datastore['AutoLoadStdapi'] && session.platform('windows') + extensions.push('priv') if datastore['AutoLoadStdapi'] && session.platform == 'windows' extensions.push('android') if session.platform == 'android' extensions = extensions.uniq # END original = console.disable_output console.disable_output = true + # TODO: abstract this a little, perhaps a "post load" function that removes + # platform-specific stuff? extensions.each do |extension| console.run_single("load #{extension}") console.run_single('unhook_pe') if extension == 'unhook' From dd23be969538ebe402de6c5ef735dcebc9bc287a Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 08:00:30 -0400 Subject: [PATCH 04/19] fix: modified meterpreter_reverse template for platform-specific MeterpreterOptions --- tools/modules/meterpreter_reverse.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/modules/meterpreter_reverse.erb b/tools/modules/meterpreter_reverse.erb index cc859059cc..93ef95dc32 100644 --- a/tools/modules/meterpreter_reverse.erb +++ b/tools/modules/meterpreter_reverse.erb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions + include Msf::Sessions::MeterpreterOptions::<%= platform.split('_').each { |s| s.capitalize! }.join %> include Msf::Sessions::MettleConfig def initialize(info = {}) From e4bc2a6528a2711d0de63c5d1e33be75c29f26f4 Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 08:03:52 -0400 Subject: [PATCH 05/19] fix: changed MeterpreterOptions to be platform-specific in pivot --- lib/rex/post/meterpreter/pivot.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rex/post/meterpreter/pivot.rb b/lib/rex/post/meterpreter/pivot.rb index 64d5c9278d..dc7c9f53ec 100644 --- a/lib/rex/post/meterpreter/pivot.rb +++ b/lib/rex/post/meterpreter/pivot.rb @@ -85,11 +85,11 @@ class Pivot c = Class.new(::Msf::Payload) c.include(::Msf::Payload::Stager) c.include(::Msf::Payload::TransportConfig) - c.include(::Msf::Sessions::MeterpreterOptions) # TODO: add more platforms case opts[:platform] when 'windows' + c.include(::Msf::Sessions::MeterpreterOptions::Windows) # Moved to be platform-specific # Include the appropriate reflective dll injection module for the target process architecture... if opts[:arch] == ARCH_X86 c.include(::Msf::Payload::Windows::MeterpreterLoader) From 70bafdfcd856f3e88eedf1999c21c33ee0df0f28 Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 08:04:31 -0400 Subject: [PATCH 06/19] fix: delete of meterpreter_options.rb --- lib/msf/base/sessions/meterpreter_options.rb | 112 ------------------- 1 file changed, 112 deletions(-) delete mode 100644 lib/msf/base/sessions/meterpreter_options.rb diff --git a/lib/msf/base/sessions/meterpreter_options.rb b/lib/msf/base/sessions/meterpreter_options.rb deleted file mode 100644 index 0d1ad3ae45..0000000000 --- a/lib/msf/base/sessions/meterpreter_options.rb +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: binary -*- - -require 'shellwords' - -module Msf - module Sessions - # - # Defines common options across all Meterpreter implementations - # - module MeterpreterOptions - - TIMEOUT_SESSION = 24 * 3600 * 7 # 1 week - TIMEOUT_COMMS = 300 # 5 minutes - TIMEOUT_RETRY_TOTAL = 60 * 60 # 1 hour - TIMEOUT_RETRY_WAIT = 10 # 10 seconds - - def initialize(info = {}) - super(info) - - register_advanced_options( - [ - OptBool.new( - 'AutoLoadStdapi', - [true, "Automatically load the Stdapi extension", true] - ), - OptInt.new( - 'AutoVerifySessionTimeout', - [false, "Timeout period to wait for session validation to occur, in seconds", 30] - ), - OptString.new( - 'InitialAutoRunScript', - [false, "An initial script to run on session creation (before AutoRunScript)", ''] - ), - OptString.new( - 'AutoRunScript', - [false, "A script to run automatically on session creation.", ''] - ), - OptBool.new( - 'AutoSystemInfo', - [true, "Automatically capture system information on initialization.", true] - ), - OptBool.new( - 'EnableUnicodeEncoding', - [true, "Automatically encode UTF-8 strings as hexadecimal", Rex::Compat.is_windows] - ), - OptPath.new( - 'HandlerSSLCert', - [false, "Path to a SSL certificate in unified PEM format, ignored for HTTP transports"] - ), - OptInt.new( - 'SessionRetryTotal', - [false, "Number of seconds try reconnecting for on network failure", TIMEOUT_RETRY_TOTAL] - ), - OptInt.new( - 'SessionRetryWait', - [false, "Number of seconds to wait between reconnect attempts", TIMEOUT_RETRY_WAIT] - ), - OptInt.new( - 'SessionExpirationTimeout', - [ false, 'The number of seconds before this session should be forcibly shut down', TIMEOUT_SESSION] - ), - OptInt.new( - 'SessionCommunicationTimeout', - [ false, 'The number of seconds of no activity before this session should be killed', TIMEOUT_COMMS] - ), - OptString.new( - 'PayloadProcessCommandLine', - [ false, 'The displayed command line that will be used by the payload', ''] - ), - OptBool.new( - 'AutoUnhookProcess', - [true, "Automatically load the unhook extension and unhook the process", false] - ), - OptBool.new( - 'MeterpreterDebugBuild', - [false, 'Use a debug version of Meterpreter'] - ), - OptMeterpreterDebugLogging.new( - 'MeterpreterDebugLogging', - [false, 'The Meterpreter debug logging configuration, see https://docs.metasploit.com/docs/using-metasploit/advanced/meterpreter/meterpreter-debugging-meterpreter-sessions.html'] - ) - ], - self.class - ) - end - - def meterpreter_logging_config(opts = {}) - ds = opts[:datastore] || datastore - { - debug_build: (ds[:debug_build] || datastore['MeterpreterDebugBuild']), - log_path: (ds[:log_path] || parse_rpath) - } - end - - def mettle_logging_config(opts = {}) - ds = opts[:datastore] || datastore - debug_build = ds[:debug_build] || datastore['MeterpreterDebugBuild'] - log_path = ds[:log_path] || parse_rpath - { - debug: debug_build ? 3 : 0, - log_file: log_path - } - end - - private - - def parse_rpath - Msf::OptMeterpreterDebugLogging.parse_logging_options(datastore['MeterpreterDebugLogging'])[:rpath] - end - end - end -end From c4ca4d699964ab7f35baaf9648b0b73568c18433 Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 08:14:59 -0400 Subject: [PATCH 07/19] fix: re-include OSX specific option --- lib/msf/base/sessions/meterpreter_options/osx.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/osx.rb b/lib/msf/base/sessions/meterpreter_options/osx.rb index cb2009a55c..4f0dbe4e71 100644 --- a/lib/msf/base/sessions/meterpreter_options/osx.rb +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -16,7 +16,11 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, 'Automatically load extensions on bootstrap, semicolon separated.', 'stdapi'] + ), + OptString.new( + 'PayloadProcessCommandLine', + [ false, 'The displayed command line that will be used by the payload', ''] ), ], self.class From 5e3e975b7da96e3e6714c022a069ba72d3338a61 Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 2 Jun 2025 09:22:46 -0400 Subject: [PATCH 08/19] fix: renaming Osx to OSX for autoload support --- lib/msf/base/sessions/meterpreter_options/osx.rb | 2 +- .../payloads/singles/osx/aarch64/meterpreter_reverse_http.rb | 2 +- .../payloads/singles/osx/aarch64/meterpreter_reverse_https.rb | 2 +- modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb | 2 +- modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb | 2 +- modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb | 2 +- modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb | 2 +- modules/payloads/stages/osx/aarch64/meterpreter.rb | 2 +- modules/payloads/stages/osx/x64/meterpreter.rb | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/msf/base/sessions/meterpreter_options/osx.rb b/lib/msf/base/sessions/meterpreter_options/osx.rb index 4f0dbe4e71..d0ba192dae 100644 --- a/lib/msf/base/sessions/meterpreter_options/osx.rb +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -7,7 +7,7 @@ module Msf # # Defines common options across all Meterpreter implementations # - module MeterpreterOptions::Osx + module MeterpreterOptions::OSX include Msf::Sessions::MeterpreterOptions::Common def initialize(info = {}) super(info) diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb index 762b3ddad6..7ba22b3905 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb index c6a0e97f10..b585931972 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb index 511e352738..4688732b1c 100644 --- a/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/osx/aarch64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 813075 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb index 93ca595296..e8eded2eaa 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb index 62b12490ee..480f2868c3 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb b/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb index 40e7e16662..45ba6bba5e 100644 --- a/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb @@ -8,7 +8,7 @@ module MetasploitModule CachedSize = 815032 include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/osx/aarch64/meterpreter.rb b/modules/payloads/stages/osx/aarch64/meterpreter.rb index f3056462ac..10f89fa3cf 100644 --- a/modules/payloads/stages/osx/aarch64/meterpreter.rb +++ b/modules/payloads/stages/osx/aarch64/meterpreter.rb @@ -4,7 +4,7 @@ ## module MetasploitModule - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) diff --git a/modules/payloads/stages/osx/x64/meterpreter.rb b/modules/payloads/stages/osx/x64/meterpreter.rb index 0aedb79180..584c2271a2 100644 --- a/modules/payloads/stages/osx/x64/meterpreter.rb +++ b/modules/payloads/stages/osx/x64/meterpreter.rb @@ -4,7 +4,7 @@ ## module MetasploitModule - include Msf::Sessions::MeterpreterOptions::Osx + include Msf::Sessions::MeterpreterOptions::OSX include Msf::Sessions::MettleConfig def initialize(info = {}) From da7ee9d9f8562a8d8288806a0e621ce9c9c68c74 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 11:19:57 +0200 Subject: [PATCH 09/19] Update modules/payloads/stages/php/meterpreter.rb Co-authored-by: msutovsky-r7 --- modules/payloads/stages/php/meterpreter.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/payloads/stages/php/meterpreter.rb b/modules/payloads/stages/php/meterpreter.rb index f86f2b15d9..e8723f3a09 100644 --- a/modules/payloads/stages/php/meterpreter.rb +++ b/modules/payloads/stages/php/meterpreter.rb @@ -6,7 +6,6 @@ require 'securerandom' module MetasploitModule - include Msf::Sessions::MeterpreterOptions::Php def initialize(info = {}) From f18787e5c57ffea30973c7d3a7ccc52de0ad733c Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Mon, 4 Aug 2025 08:35:23 -0400 Subject: [PATCH 10/19] fix: addressing review comments --- lib/msf/base/sessions/meterpreter.rb | 12 ++++++++---- lib/msf/base/sessions/meterpreter_options/android.rb | 2 +- lib/msf/base/sessions/meterpreter_options/windows.rb | 2 +- tools/modules/meterpreter_reverse.erb | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/msf/base/sessions/meterpreter.rb b/lib/msf/base/sessions/meterpreter.rb index 90d5c43668..8711be1704 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -180,7 +180,7 @@ class Meterpreter < Rex::Post::Meterpreter::Client print_warning('Meterpreter start up operations have been aborted. Use the session at your own risk.') return nil end - extensions = datastore['AutoLoadExtensions']&.split(';') || [] + extensions = datastore['AutoLoadExtensions']&.delete(' ').split(',') || [] # BEGIN: This should be removed on MSF 7 # Unhook the process prior to loading stdapi to reduce logging/inspection by any AV/PSP (by default unhook is first, see meterpreter_options/windows.rb) @@ -195,9 +195,13 @@ class Meterpreter < Rex::Post::Meterpreter::Client # TODO: abstract this a little, perhaps a "post load" function that removes # platform-specific stuff? extensions.each do |extension| - console.run_single("load #{extension}") - console.run_single('unhook_pe') if extension == 'unhook' - session.load_session_info if extension == 'stdapi' && datastore['AutoSystemInfo'] + begin + console.run_single("load #{extension}") + console.run_single('unhook_pe') if extension == 'unhook' + session.load_session_info if extension == 'stdapi' && datastore['AutoSystemInfo'] + rescue => e + print_warning("Failed loading extension #{extension}") + end end console.disable_output = original diff --git a/lib/msf/base/sessions/meterpreter_options/android.rb b/lib/msf/base/sessions/meterpreter_options/android.rb index 720e414ec0..69e702a82b 100644 --- a/lib/msf/base/sessions/meterpreter_options/android.rb +++ b/lib/msf/base/sessions/meterpreter_options/android.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi;android'] + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi,android'] ), ], self.class diff --git a/lib/msf/base/sessions/meterpreter_options/windows.rb b/lib/msf/base/sessions/meterpreter_options/windows.rb index 6c4eba7aff..602e1f9efa 100644 --- a/lib/msf/base/sessions/meterpreter_options/windows.rb +++ b/lib/msf/base/sessions/meterpreter_options/windows.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'unhook;priv;stdapi'] + [true, "Automatically load extensions on bootstrap, semicolon separated.", 'unhook,priv,stdapi'] ), OptBool.new( 'AutoUnhookProcess', diff --git a/tools/modules/meterpreter_reverse.erb b/tools/modules/meterpreter_reverse.erb index 93ef95dc32..8e012f795f 100644 --- a/tools/modules/meterpreter_reverse.erb +++ b/tools/modules/meterpreter_reverse.erb @@ -8,7 +8,7 @@ module MetasploitModule include Msf::Payload::Single - include Msf::Sessions::MeterpreterOptions::<%= platform.split('_').each { |s| s.capitalize! }.join %> + include Msf::Sessions::MeterpreterOptions::<%= platform.split('_').each { |s| s.casecmp?('osx') ? 'OSX' : s.capitalize! }.join %> include Msf::Sessions::MettleConfig def initialize(info = {}) From ef6e59dcc3825efca1eeb5e01e29e52d74b9b985 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:57:40 +0200 Subject: [PATCH 11/19] Update lib/msf/base/sessions/meterpreter_options/linux.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/linux.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/linux.rb b/lib/msf/base/sessions/meterpreter_options/linux.rb index 7d21be8058..7fd9f23bbc 100644 --- a/lib/msf/base/sessions/meterpreter_options/linux.rb +++ b/lib/msf/base/sessions/meterpreter_options/linux.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), OptString.new( 'PayloadProcessCommandLine', From 9e10d243b985d64d53249a21f4a4c63633ccef98 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:57:49 +0200 Subject: [PATCH 12/19] Update lib/msf/base/sessions/meterpreter_options/android.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/android.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/android.rb b/lib/msf/base/sessions/meterpreter_options/android.rb index 69e702a82b..15f3fbd856 100644 --- a/lib/msf/base/sessions/meterpreter_options/android.rb +++ b/lib/msf/base/sessions/meterpreter_options/android.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi,android'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi,android'] ), ], self.class From 2fac43c3edb4b4e858e9514f2886a33ecd001959 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:57:59 +0200 Subject: [PATCH 13/19] Update lib/msf/base/sessions/meterpreter_options/apple_ios.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/apple_ios.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/apple_ios.rb b/lib/msf/base/sessions/meterpreter_options/apple_ios.rb index dcd1068732..01f97a2f59 100644 --- a/lib/msf/base/sessions/meterpreter_options/apple_ios.rb +++ b/lib/msf/base/sessions/meterpreter_options/apple_ios.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), OptString.new( 'PayloadProcessCommandLine', From fa68bd8353d98b4604b4678861ab0ce24b96da29 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:58:16 +0200 Subject: [PATCH 14/19] Update lib/msf/base/sessions/meterpreter_options/bsd.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/bsd.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/bsd.rb b/lib/msf/base/sessions/meterpreter_options/bsd.rb index 62c639ed51..11574a7bfd 100644 --- a/lib/msf/base/sessions/meterpreter_options/bsd.rb +++ b/lib/msf/base/sessions/meterpreter_options/bsd.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), ], self.class From d45193b7ac720a8d3271dced1f88c60ff42c226d Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:58:25 +0200 Subject: [PATCH 15/19] Update lib/msf/base/sessions/meterpreter_options/java.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/java.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/java.rb b/lib/msf/base/sessions/meterpreter_options/java.rb index e5bca9c53e..cef2c0663c 100644 --- a/lib/msf/base/sessions/meterpreter_options/java.rb +++ b/lib/msf/base/sessions/meterpreter_options/java.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), ], self.class From 56fc33f7f266590b7036e22f08379f4fafe8acd8 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:58:50 +0200 Subject: [PATCH 16/19] Update lib/msf/base/sessions/meterpreter_options/windows.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/windows.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/windows.rb b/lib/msf/base/sessions/meterpreter_options/windows.rb index 602e1f9efa..391e2c309d 100644 --- a/lib/msf/base/sessions/meterpreter_options/windows.rb +++ b/lib/msf/base/sessions/meterpreter_options/windows.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'unhook,priv,stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'unhook,priv,stdapi'] ), OptBool.new( 'AutoUnhookProcess', From ee05f88770f8d226fbb68cf7736f19b168395814 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:59:01 +0200 Subject: [PATCH 17/19] Update lib/msf/base/sessions/meterpreter_options/python.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/python.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/python.rb b/lib/msf/base/sessions/meterpreter_options/python.rb index 02ae0feb3b..f2ddfd4035 100644 --- a/lib/msf/base/sessions/meterpreter_options/python.rb +++ b/lib/msf/base/sessions/meterpreter_options/python.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), ], self.class From 25e053804e24fa87296f2d3b948b4e0b4cbc640c Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:59:09 +0200 Subject: [PATCH 18/19] Update lib/msf/base/sessions/meterpreter_options/php.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/php.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/php.rb b/lib/msf/base/sessions/meterpreter_options/php.rb index aa6cebcb65..ec5abff5e8 100644 --- a/lib/msf/base/sessions/meterpreter_options/php.rb +++ b/lib/msf/base/sessions/meterpreter_options/php.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, "Automatically load extensions on bootstrap, semicolon separated.", 'stdapi'] + [true, "Automatically load extensions on bootstrap, comma separated.", 'stdapi'] ), ], self.class From 8985cd773d423ebd2020ef84981ae293e275a277 Mon Sep 17 00:00:00 2001 From: Diego Ledda Date: Mon, 4 Aug 2025 14:59:20 +0200 Subject: [PATCH 19/19] Update lib/msf/base/sessions/meterpreter_options/osx.rb Co-authored-by: msutovsky-r7 --- lib/msf/base/sessions/meterpreter_options/osx.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter_options/osx.rb b/lib/msf/base/sessions/meterpreter_options/osx.rb index d0ba192dae..d6f5be451c 100644 --- a/lib/msf/base/sessions/meterpreter_options/osx.rb +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -16,7 +16,7 @@ module Msf [ OptString.new( 'AutoLoadExtensions', - [true, 'Automatically load extensions on bootstrap, semicolon separated.', 'stdapi'] + [true, 'Automatically load extensions on bootstrap, comma separated.', 'stdapi'] ), OptString.new( 'PayloadProcessCommandLine',