Module: Msf::Payload::Linux::MultiArch
- Defined in:
- lib/msf/core/payload/linux/multi_arch.rb
Overview
Linux Multi shared logic.
Instance Method Summary collapse
- #desired_arch(opts = {}) ⇒ Object
- #generate_payload_uuid(conf = {}) ⇒ Object
- #include_send_uuid ⇒ Object
- #initialize(info = {}) ⇒ Object
- #metasploit_arch_transform(arch) ⇒ Object
- #mettle_arch_transform(arch) ⇒ Object
Instance Method Details
#desired_arch(opts = {}) ⇒ Object
84 85 86 87 88 89 90 91 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 84 def desired_arch(opts = {}) if datastore.include?('REQUESTED_ARCH') && datastore['REQUESTED_ARCH'] != 'NONE' return_arch = datastore['REQUESTED_ARCH'] else return_arch = opts[:arch] end return_arch end |
#generate_payload_uuid(conf = {}) ⇒ Object
13 14 15 16 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 13 def generate_payload_uuid(conf = {}) conf[:arch] = (desired_arch(conf)) super end |
#include_send_uuid ⇒ Object
18 19 20 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 18 def include_send_uuid true end |
#initialize(info = {}) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 4 def initialize(info = {}) super ( [ Msf::OptEnum.new('REQUESTED_ARCH', [true, 'The desired architecture of the returned payload.', 'NONE', [ 'NONE', 'ARCH_AARCH64', 'ARCH_ARMBE', 'ARCH_ARMLE', 'ARCH_MIPS64', 'ARCH_MIPSBE', 'ARCH_MIPSLE', 'ARCH_PPC', 'ARCH_PPCE500V2', 'ARCH_PPC64LE', 'ARCH_X64', 'ARCH_X86', 'ARCH_ZARCH' ]]), ] ) end |
#metasploit_arch_transform(arch) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 53 def (arch) case arch when ARCH_AARCH64, 'ARCH_AARCH64' return ARCH_AARCH64 when ARCH_ARMBE, 'ARCH_ARMBE' return ARCH_ARMBE when ARCH_ARMLE, 'ARCH_ARMLE' return ARCH_ARMLE when ARCH_MIPS64, 'ARCH_MIPS64' return ARCH_MIPS64 when ARCH_MIPSBE, 'ARCH_MIPSBE' return ARCH_MIPSBE when ARCH_MIPSLE, 'ARCH_MIPSLE' return ARCH_MIPSLE when ARCH_PPC, 'ARCH_PPC' return ARCH_PPC when ARCH_PPCE500V2, 'ARCH_PPCE500V2' return ARCH_PPCE500V2 when ARCH_PPC64LE, 'ARCH_PPC64LE' return ARCH_PPC64LE when ARCH_X64, 'ARCH_X64' return ARCH_X64 when ARCH_X86, 'ARCH_X86' return ARCH_X86 when ARCH_ZARCH, 'ARCH_ZARCH' return ARCH_ZARCH else return nil end end |
#mettle_arch_transform(arch) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/msf/core/payload/linux/multi_arch.rb', line 22 def mettle_arch_transform(arch) case arch when ARCH_AARCH64, 'ARCH_AARCH64' return 'aarch64-linux-musl' when ARCH_ARMBE, 'ARCH_ARMBE' return 'armv5b-linux-musleabi' when ARCH_ARMLE, 'ARCH_ARMLE' return 'armv5l-linux-musleabi' when ARCH_MIPS64, 'ARCH_MIPS64' return 'mips64-linux-muslsf' when ARCH_MIPSBE, 'ARCH_MIPSBE' return 'mips-linux-muslsf' when ARCH_MIPSLE, 'ARCH_MIPSLE' return 'mipsel-linux-muslsf' when ARCH_PPC, 'ARCH_PPC' return 'powerpc-linux-muslsf' when ARCH_PPCE500V2, 'ARCH_PPCE500V2' return 'powerpc-e500v2-linux-musl' when ARCH_PPC64LE, 'ARCH_PPC64LE' return 'powerpc64le-linux-musl' when ARCH_X64, 'ARCH_X64' return 'x86_64-linux-musl' when ARCH_X86, 'ARCH_X86' return 'i486-linux-musl' when ARCH_ZARCH, 'ARCH_ZARCH' return 's390x-linux-musl' else return nil end end |