From 44617cbe3775169f7a0dac7fa5ed69b33767e22b Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Tue, 8 Apr 2025 10:19:25 -0400 Subject: [PATCH 1/8] 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 8621f6af54367..074ecfda309db 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -180,32 +180,23 @@ def bootstrap(datastore = {}, handler = nil) 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 0000000000000..6e547c3ef9a67 --- /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 0000000000000..4aa23b9566def --- /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 0000000000000..eacfb10679929 --- /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 e5777dafed999..b23149e0b3c71 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 51ed224685d17..3200889a32511 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 4b08f76db6182..ee1e4bd9d3b78 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 4355ab1f3e8c3..0f88709550f82 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 918217552c603..8987a8bb4b0a2 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 fa7bf40b02df6..09d5fb316d1c8 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 10d518022464e..3cca57dc1fc80 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 0581ad8a4a4e1..78818195b2a57 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 810cef358b638..2303285700a24 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 f2c4323f13269..a13ca312b3559 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 8bf527f369d1f..e55e18a05604a 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 be291ca5a4c6e..fbde3875de34e 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 f83526573ceb5..ccdd4a165d709 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 b26a44ee84ab2..cdefc8b5bc58e 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 9993b1f740199..564497e18f27a 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 0fd69452e0014..a51c528a25310 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 86cb8cba5017c..7e30e6bed32d4 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 849b77882f58d..dcc05a0ffdbe7 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 90a78008a3516..1a158c5bf4bf1 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 b59a867c6f636..368e8ec5b2c86 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 c1199a8bb0305..aa848cfe737b3 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 cb6cd3edafe63..0b87ca1879a42 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 bfdaa64ed91d5..4065a085eb8ac 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 9b5b89d5d3d3d..5b3a2521abe1e 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 c1d96eaa75718..3d453243149a3 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 009fc3e4ac344..d709f47f4729d 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 9f3d5f994a15c..89fb9b4b12380 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 fbbd0a430f666..ec41d8a8576cc 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 215c9db001613..b99569aae5a82 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 add0b620cc6f1..4c60cba5f5b93 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 f623f1aed1435..9e29aafbc90d9 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 e678ee1082463..45ef5c0aa0138 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 b7fb350cc1b2d..a99f209a3edf1 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 bfeeb144cd097..ec3cac4c1eadc 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 396c579db3e1c..f038a5c6ab07f 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 80f5335d1d4a3..fd355e131c6dd 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 39ecbf416a0c9..a508bd1f2a579 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 f44c0ee38fb8a..1b9d850d54bbc 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 5acfd75dabd05..5e22e149601f0 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 2bf0be4f931e5..84d81da841639 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 f0e6f519768fc..5b00b86224021 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 e382c41138c91..a832b5bd28452 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 dd79c1edc3918..0e516147c0307 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 469882e3b603a..8707e67ffdf5d 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 da7f92fe6127e..0fce0656ceb29 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 5a52e0b61add6..ae2c0961ee599 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 c8fb3ba5d47cb..c1746a058b2b5 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 4c5bef91eaf78..6d0565914ea22 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 7ce487c5e1334..8995607f1096b 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 1ce20b3ff476a..664500155fa4b 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 f08c0866a9c04..9b8959a4d6c3d 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 4bc6fc3aa5b9e..83702e270f5e3 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 1671ade5dae26..c6114b5f30835 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 2e9f3b93ae002..1d9eae8805d20 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 a61cad106614a..269d2df811109 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 a1326d93288ed..d38c2064d5d6a 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 1b38969e2bff4..39b3f94b3a6b0 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 bc8d7a5138dfb..8f11c712ca477 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 368277391254e..c727ac1b94533 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 43da4c07e0a2a..0242fadf09bd3 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 a7009d722a207..c0a97632ab21e 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 2/8] 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 0000000000000..720e414ec00f7 --- /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 0000000000000..dcd10687329b7 --- /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 0000000000000..62c639ed517c0 --- /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 0000000000000..e5bca9c53edde --- /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 4aa23b9566def..7d21be80582e1 100644 --- a/lib/msf/base/sessions/meterpreter_options/linux.rb +++ b/lib/msf/base/sessions/meterpreter_options/linux.rb @@ -8,6 +8,7 @@ module Sessions # Defines common options across all Meterpreter implementations # module MeterpreterOptions::Linux + include Msf::Sessions::MeterpreterOptions::Common def initialize(info = {}) super(info) @@ -15,7 +16,7 @@ def initialize(info = {}) [ 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 0000000000000..cb2009a55c12f --- /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 0000000000000..aa6cebcb656e7 --- /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 0000000000000..02ae0feb3b45e --- /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 eacfb10679929..6c4eba7affb27 100644 --- a/lib/msf/base/sessions/meterpreter_options/windows.rb +++ b/lib/msf/base/sessions/meterpreter_options/windows.rb @@ -8,6 +8,7 @@ module Sessions # Defines common options across all Meterpreter implementations # module MeterpreterOptions::Windows + include Msf::Sessions::MeterpreterOptions::Common def initialize(info = {}) super(info) @@ -15,7 +16,7 @@ def initialize(info = {}) [ 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 10a5fa7015a98..197caed857038 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 b53e0b649e71b..e2654ba6c727b 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 2dfd080add3aa..81ec8696407d8 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 a56b2dd4b40c1..aa423db6a7402 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 e8160f8442cb2..f24c6e001b314 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 c457db43fbb4c..137bab0c2558e 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 a09c4edd6b859..fa0096665fa1f 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 6e7aa8c75e418..0317c5da2770b 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 64bede6bd1dce..d068df64726fc 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 b173ec4c9d5cf..b185752c99bdf 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 81a8b82b30cf9..a65b7a714e6c9 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 5563a0acb9012..8dcdb8552656b 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 ed46236b293a0..e4e36207920ac 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 d720975c50c2c..1424a9db85516 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 30693a1ea2fd5..762b3ddad6baf 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 b6e2662255230..c6a0e97f10ec4 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 9f1737fa744ab..511e352738f90 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 4c938d7d3c429..93ca595296e60 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 1c244816b6fe1..62b12490ee7a7 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 271a2f77508e0..40e7e16662f9a 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 f01e490073200..48baa9ce9d381 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 8deaedd91fd55..b688e68202361 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 15b2a8db5d1bc..0db745505728e 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 a894e170bac51..f3056462ac6c7 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 6ff787f618358..0aedb79180bb4 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 38a84ae9d5fbd..f86f2b15d98bc 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 3/8] 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 074ecfda309db..90d5c43668515 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -183,14 +183,17 @@ def bootstrap(datastore = {}, handler = nil) 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 4/8] 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 cc859059cc8b7..93ef95dc321b5 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 5/8] 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 64d5c9278d33c..dc7c9f53ecf1a 100644 --- a/lib/rex/post/meterpreter/pivot.rb +++ b/lib/rex/post/meterpreter/pivot.rb @@ -85,11 +85,11 @@ def Pivot.create_named_pipe_listener(client, opts={}) 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 6/8] 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 0d1ad3ae45f12..0000000000000 --- 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 7/8] 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 cb2009a55c12f..4f0dbe4e71a4f 100644 --- a/lib/msf/base/sessions/meterpreter_options/osx.rb +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -16,7 +16,11 @@ def initialize(info = {}) [ 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 8/8] 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 4f0dbe4e71a4f..d0ba192daef3a 100644 --- a/lib/msf/base/sessions/meterpreter_options/osx.rb +++ b/lib/msf/base/sessions/meterpreter_options/osx.rb @@ -7,7 +7,7 @@ module Sessions # # 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 762b3ddad6baf..7ba22b3905c3b 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 c6a0e97f10ec4..b585931972407 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 511e352738f90..4688732b1c599 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 93ca595296e60..e8eded2eaaab1 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 62b12490ee7a7..480f2868c3c4f 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 40e7e16662f9a..45ba6bba5e9bb 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 f3056462ac6c7..10f89fa3cf36b 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 0aedb79180bb4..584c2271a2224 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 = {})