added keyboard/mouse enabling/disabling
git-svn-id: file:///home/svn/incoming/trunk@2390 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
3f055f7b7d
commit
cb6c92cafe
|
@ -7,6 +7,7 @@ require 'Rex/Post/Meterpreter/Extensions/Stdapi/Tlv'
|
|||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/Dir'
|
||||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/File'
|
||||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/FileStat'
|
||||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/UI'
|
||||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/Sys/Process'
|
||||
require 'Rex/Post/Meterpreter/Extensions/Stdapi/Sys/Registry'
|
||||
|
||||
|
@ -48,7 +49,12 @@ class Stdapi < Extension
|
|||
'process' => self.process,
|
||||
'registry' => self.registry
|
||||
})
|
||||
},
|
||||
{
|
||||
'name' => 'ui',
|
||||
'ext' => UI.new(client)
|
||||
}
|
||||
|
||||
])
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
require 'Rex/Post/UI'
|
||||
|
||||
module Rex
|
||||
module Post
|
||||
module Meterpreter
|
||||
module Extensions
|
||||
module Stdapi
|
||||
|
||||
###
|
||||
#
|
||||
# UI
|
||||
# --
|
||||
#
|
||||
# Allows for interacting with the user interface on the remote machine,
|
||||
# such as by disabling the keyboard and mouse.
|
||||
#
|
||||
# WARNING:
|
||||
#
|
||||
# Using keyboard and mouse enabling/disabling features will result in
|
||||
# a DLL file being written to disk.
|
||||
#
|
||||
###
|
||||
class UI < Rex::Post::UI
|
||||
|
||||
include Rex::Post::Meterpreter::ObjectAliasesContainer
|
||||
|
||||
##
|
||||
#
|
||||
# Constructor
|
||||
#
|
||||
##
|
||||
|
||||
# Initialization
|
||||
def initialize(client)
|
||||
self.client = client
|
||||
end
|
||||
|
||||
##
|
||||
#
|
||||
# Device enabling/disabling
|
||||
#
|
||||
##
|
||||
|
||||
# Disable keyboard input
|
||||
def disable_keyboard
|
||||
return enable_keyboard(false)
|
||||
end
|
||||
|
||||
# Enable keyboard input
|
||||
def enable_keyboard(enable = true)
|
||||
request = Packet.create_request('stdapi_ui_enable_keyboard')
|
||||
|
||||
request.add_tlv(TLV_TYPE_BOOL, enable)
|
||||
|
||||
response = client.send_request(request)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
# Disable mouse input
|
||||
def disable_mouse
|
||||
return enable_mouse(false)
|
||||
end
|
||||
|
||||
# Enable mouse input
|
||||
def enable_mouse(enable = true)
|
||||
request = Packet.create_request('stdapi_ui_enable_mouse')
|
||||
|
||||
request.add_tlv(TLV_TYPE_BOOL, enable)
|
||||
|
||||
response = client.send_request(request)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
protected
|
||||
attr_accessor :client
|
||||
|
||||
end
|
||||
|
||||
end; end; end; end; end
|
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
module Rex
|
||||
module Post
|
||||
|
||||
###
|
||||
#
|
||||
# UI
|
||||
# --
|
||||
#
|
||||
# User-interface interaction base class.
|
||||
#
|
||||
###
|
||||
class UI
|
||||
|
||||
def disable_keyboard
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def enable_keyboard
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def disable_mouse
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def enable_mouse
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end; end
|
Loading…
Reference in New Issue