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.



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
91
92
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 41

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,
            'mount'    => Fs::Mount.new(client)
          })
      },
      {
        '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.



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

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

#dirObject

Returns a copy of the Dir class.



106
107
108
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 106

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

#eventlogObject

Returns a copy of the EventLog class.



141
142
143
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 141

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

#fileObject

Returns a copy of the File class.



113
114
115
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 113

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

#filestatObject

Returns a copy of the FileStat class.



120
121
122
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 120

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

#powerObject

Returns a copy of the Power class.



148
149
150
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 148

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

#processObject

Returns a copy of the Process class.



127
128
129
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 127

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

#registryObject

Returns a copy of the Registry class.



134
135
136
# File 'lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb', line 134

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