From cbd7a3115e3381e7d2264a272dd6a36c5487121f Mon Sep 17 00:00:00 2001 From: Spencer McIntyre Date: Wed, 28 Apr 2021 10:38:43 -0400 Subject: [PATCH] Fix a typo and add missing build tuples --- .../ui/console/command_dispatcher/core.rb | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb b/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb index 30363e3b21c1..78ab3e252981 100644 --- a/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb +++ b/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb @@ -1320,26 +1320,31 @@ def cmd_load(*args) log_error("Failed to load extension: #{ex.message}") if ex.kind_of?(ExtensionLoadError) && ex.name # MetasploitPayloads and MetasploitPayloads::Mettle do things completely differently, build an array of - # suggestion keys (binary_suffixs and Mettle build-tuples) - suggestion_keys = MetasploitPayloads.list_meterpreter_extension_suffixs(ex.name) + MetasploitPayloads::Mettle.available_platforms(ex.name) + # suggestion keys (binary_suffixes and Mettle build-tuples) + suggestion_keys = MetasploitPayloads.list_meterpreter_extension_suffixes(ex.name) + MetasploitPayloads::Mettle.available_platforms(ex.name) suggestion_map = { + # Extension Suffixes 'jar' => 'java', 'php' => 'php', 'py' => 'python', 'x64.dll' => 'windows/x64', 'x86.dll' => 'windows', + # Mettle Platforms + 'aarch64-iphone-darwin' => 'apple_ios/aarch64', + 'aarch64-linux-musl' => 'linux/aarch64', + 'arm-iphone-darwin' => 'apple_ios/armle', + 'armv5b-linux-musleabi' => 'linux/armbe', + 'armv5l-linux-musleabi' => 'linux/armle', + 'i486-linux-musl' => 'linux/x86', 'mips64-linux-muslsf' => 'linux/mips64', 'mipsel-linux-muslsf' => 'linux/mipsle', - 'powerpc64le-linux-musl' => 'linux/ppc64le', 'mips-linux-muslsf' => 'linux/mipsbe', + 'powerpc64le-linux-musl' => 'linux/ppc64le', + 'powerpc-e500v2-linux-musl' => 'linux/ppce500v2', 'powerpc-linux-muslsf' => 'linux/ppc', 's390x-linux-musl' => 'linux/zarch', + 'x86_64-apple-darwin' => 'osx/x64', 'x86_64-linux-musl' => 'linux/x64', - 'i486-linux-musl' => 'linux/x86', - 'armv5l-linux-musleabi' => 'linux/armle', - 'aarch64-linux-musl' => 'linux/aarch64', - 'armv5b-linux-musleabi' => 'linux/armbe', - 'powerpc-e500v2-linux-musl' => 'linux/ppce500v2', } suggestions = suggestion_map.select { |k,_v| suggestion_keys.include?(k) }.values unless suggestions.empty?