Module: Msf::Post::Architecture

Defined in:
lib/msf/core/post/architecture.rb

Instance Method Summary collapse

Instance Method Details

#get_os_architectureString, Nil

Get the architecture of the target’s operating system.

Returns:

  • (String, Nil)

    Returns a string containing the target OS architecture if known, or Nil if its not known.

[View source] [View on GitHub]

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/msf/core/post/architecture.rb', line 22

def get_os_architecture
  if session.type == 'meterpreter'
    return sysinfo['Architecture']
  else
    case session.platform
    when 'windows', 'win'
      # Check for 32-bit process on 64-bit arch
      arch = get_env('PROCESSOR_ARCHITEW6432')
      if arch.strip.empty? or arch =~ /PROCESSOR_ARCHITEW6432/
        arch = get_env('PROCESSOR_ARCHITECTURE')
      end
      if arch =~ /AMD64/m
        return ARCH_X64
      elsif arch =~ /86/m
        return ARCH_X86
      elsif arch =~ /ARM64/m
        return ARCH_AARCH64
      else
        print_error('Target is running Windows on an unsupported architecture!')
        return nil
      end
    end
  end
end

#initialize(info = {}) ⇒ Object

[View source] [View on GitHub]

5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/msf/core/post/architecture.rb', line 5

def initialize(info = {})
  super(
    update_info(
      info,
      'Compat' => {
        'Meterpreter' => {
          'Commands' => %w[
            stdapi_railgun_api
          ]
        }
      }
    )
  )
end