added keyboard/mouse enabling/disabling

git-svn-id: file:///home/svn/incoming/trunk@2390 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Matt Miller 2005-04-17 03:29:12 +00:00
parent 3f055f7b7d
commit cb6c92cafe
3 changed files with 123 additions and 0 deletions

View File

@ -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

View File

@ -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

34
lib/rex/post/u_i.rb Normal file
View File

@ -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