Class: Rex::Post::Meterpreter::Extensions::Stdapi::Stdapi

Inherits:
Rex::Post::Meterpreter::Extension show all
Defined in:
lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb

Overview

Standard ruby interface to remote entities for meterpreter. It provides basic access to files, network, system, and other properties of the remote machine that are fairly universal.

Instance Attribute Summary

Attributes inherited from Rex::Post::Meterpreter::Extension

#name

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Stdapi

Initializes an instance of the standard API extension.



40
41
42
43
44
45
46
47
48
49
50
51
52
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
83
84
85
86
87
88
89
90
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 40

def initialize(client)
  super(client, 'stdapi')

  # Alias the following things on the client object so that they
  # can be directly referenced
  client.register_extension_aliases(
    [
      {
        'name' => 'fs',
        'ext'  => ObjectAliases.new(
          {
            'dir'      => self.dir,
            'file'     => self.file,
            'filestat' => self.filestat
          })
      },
      {
        'name' => 'sys',
        'ext'  => ObjectAliases.new(
          {
            'config'   => Sys::Config.new(client),
            'process'  => self.process,
            'registry' => self.registry,
            'eventlog' => self.eventlog,
            'power'    => self.power
          })
      },
      {
        'name' => 'net',
        'ext'  => ObjectAliases.new(
          {
            'config'   => Rex::Post::Meterpreter::Extensions::Stdapi::Net::Config.new(client),
            'socket'   => Rex::Post::Meterpreter::Extensions::Stdapi::Net::Socket.new(client),
            'resolve'  => Rex::Post::Meterpreter::Extensions::Stdapi::Net::Resolve.new(client)
          })
      },
      {
        'name' => 'railgun',
        'ext'  => Rex::Post::Meterpreter::Extensions::Stdapi::Railgun::Railgun.new(client)
      },
      {
        'name' => 'webcam',
        'ext'  => Rex::Post::Meterpreter::Extensions::Stdapi::Webcam::Webcam.new(client)
      },
      {
        'name' => 'ui',
        'ext'  => UI.new(client)
      }

    ])
end

Instance Method Details

#brand(klass) ⇒ Object

Sets the client instance on a duplicated copy of the supplied class.



95
96
97
98
99
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 95

def brand(klass)
  klass = klass.dup
  klass.client = self.client
  return klass
end

#dirObject

Returns a copy of the Dir class.



104
105
106
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 104

def dir
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Fs::Dir)
end

#eventlogObject

Returns a copy of the EventLog class.



139
140
141
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 139

def eventlog
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Sys::EventLog)
end

#fileObject

Returns a copy of the File class.



111
112
113
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 111

def file
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Fs::File)
end

#filestatObject

Returns a copy of the FileStat class.



118
119
120
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 118

def filestat
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Fs::FileStat)
end

#powerObject

Returns a copy of the Power class.



146
147
148
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 146

def power
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Sys::Power)
end

#processObject

Returns a copy of the Process class.



125
126
127
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 125

def process
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Sys::Process)
end

#registryObject

Returns a copy of the Registry class.



132
133
134
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 132

def registry
  brand(Rex::Post::Meterpreter::Extensions::Stdapi::Sys::Registry)
end