From 892ef86515fb642e2d2a8bae78e8a6dce9da6c7f Mon Sep 17 00:00:00 2001 From: dledda-r7 Date: Tue, 16 Dec 2025 14:28:47 -0500 Subject: [PATCH] fix: remove in_memoryloader for ppc, ppc64le, ppce500v2 and armbe from erb file --- .../singles/linux/armbe/meterpreter_reverse_http.rb | 6 ------ .../singles/linux/armbe/meterpreter_reverse_https.rb | 5 ----- .../singles/linux/armbe/meterpreter_reverse_tcp.rb | 5 ----- tools/modules/meterpreter_reverse.erb | 8 +++----- 4 files changed, 3 insertions(+), 21 deletions(-) diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb index 1240b0c496..a2e8cea0e1 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb @@ -8,11 +8,9 @@ module MetasploitModule CachedSize = 1106544 - include Msf::Payload::Single include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig - include Msf::Payload::Linux::Armbe::ElfLoader include Msf::Payload::Linux::Armbe::Prepends def initialize(info = {}) @@ -41,10 +39,6 @@ module MetasploitModule stageless: true }.merge(mettle_logging_config) payload = MetasploitPayloads::Mettle.new('armv5b-linux-musleabi', generate_config(opts)).to_binary :exec - ds = opts[:datastore] || datastore - if ds['PayloadLinuxMinKernel'] == '3.17' - return in_memory_load(payload) + payload - end payload end end diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb index 8c7ffc6e67..0707fa7bc6 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb @@ -11,7 +11,6 @@ module MetasploitModule include Msf::Payload::Single include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig - include Msf::Payload::Linux::Armbe::ElfLoader include Msf::Payload::Linux::Armbe::Prepends def initialize(info = {}) @@ -40,10 +39,6 @@ module MetasploitModule stageless: true }.merge(mettle_logging_config) payload = MetasploitPayloads::Mettle.new('armv5b-linux-musleabi', generate_config(opts)).to_binary :exec - ds = opts[:datastore] || datastore - if ds['PayloadLinuxMinKernel'] == '3.17' - return in_memory_load(payload) + payload - end payload end end diff --git a/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb b/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb index 4e5b9c0141..3ff4b15926 100644 --- a/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb +++ b/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb @@ -11,7 +11,6 @@ module MetasploitModule include Msf::Payload::Single include Msf::Sessions::MeterpreterOptions::Linux include Msf::Sessions::MettleConfig - include Msf::Payload::Linux::Armbe::ElfLoader include Msf::Payload::Linux::Armbe::Prepends def initialize(info = {}) @@ -40,10 +39,6 @@ module MetasploitModule stageless: true }.merge(mettle_logging_config) payload = MetasploitPayloads::Mettle.new('armv5b-linux-musleabi', generate_config(opts)).to_binary :exec - ds = opts[:datastore] || datastore - if ds['PayloadLinuxMinKernel'] == '3.17' - return in_memory_load(payload) + payload - end payload end end diff --git a/tools/modules/meterpreter_reverse.erb b/tools/modules/meterpreter_reverse.erb index 05a48f7c85..1a277a714e 100644 --- a/tools/modules/meterpreter_reverse.erb +++ b/tools/modules/meterpreter_reverse.erb @@ -6,11 +6,10 @@ # Module generated by tools/modules/generate_mettle_payloads.rb module MetasploitModule - include Msf::Payload::Single include Msf::Sessions::MeterpreterOptions::<%= platform.split('_').each { |s| s.casecmp?('osx') ? 'OSX' : s.capitalize! }.join %> include Msf::Sessions::MettleConfig - <% if platform.downcase == 'linux' %>include Msf::Payload::Linux::<%= arch.capitalize %>::ElfLoader<% end %> + <% if platform.downcase == 'linux' && !['armbe', 'ppc64le', 'ppc', 'ppce500v2'].include?(arch.downcase) %>include Msf::Payload::Linux::<%= arch.capitalize %>::ElfLoader<% end %> <% if platform.downcase == 'linux' %>include Msf::Payload::Linux::<%= arch.capitalize %>::Prepends<% end %> def initialize(info = {}) @@ -39,12 +38,11 @@ module MetasploitModule stageless: true }.merge(mettle_logging_config) payload = MetasploitPayloads::Mettle.new('<%= payload %>', generate_config(opts)).to_binary :exec - <% if platform.downcase == 'linux' %>ds = opts[:datastore] || datastore + <% if platform.downcase == 'linux' && !['armbe', 'ppc64le', 'ppc', 'ppce500v2'].include?(arch.downcase) %>ds = opts[:datastore] || datastore if Rex::Version.new(ds['PayloadLinuxMinKernel']) < Rex::Version.new('3.17') return payload end in_memory_load(payload) + payload<% else %> - payload - <% end %> + payload<% end %> end end