Some minor bug fixes

Added vm_tag module for 'flag planting'
unstable
David Maloney 2012-02-16 00:45:48 -06:00
parent c5ae56a147
commit 8d7ddab2af
5 changed files with 106 additions and 3 deletions

View File

@ -236,6 +236,35 @@ module Exploit::Remote::VIMSoap
return user_list.flatten.compact
end
def vim_log_event_vm(vm_ref, msg)
soap_req =
%Q|<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<LogUserEvent xmlns="urn:vim25">
<_this type="EventManager">#{@server_objects['eventManager']}</_this>
<entity type="VirtualMachine">#{vm_ref}</entity>
<msg>#{msg}</msg>
</LogUserEvent>
</env:Body>
</env:Envelope>|
res = send_request_cgi({
'uri' => '/sdk',
'method' => 'POST',
'agent' => 'VMware VI Client',
'cookie' => @vim_cookie,
'data' => soap_req,
'headers' => { 'SOAPAction' => @soap_action}
}, 25)
return :noresponse unless res
if res.body.include? "NotAuthenticatedFault"
return :expired
elsif res.body.include? "<faultstring>"
return :error
else
return :success
end
end
def vim_get_dc_name(dc)
soap_req=

View File

@ -57,7 +57,7 @@ class Metasploit3 < Msf::Auxiliary
print_error "Could not locate VM #{datastore['VM']}"
end
else
print_error "Login Failure on #{ip}"
print_error "Login Failure on #{datastore['RHOST']}"
return
end
end

View File

@ -57,7 +57,7 @@ class Metasploit3 < Msf::Auxiliary
print_error "Could not locate VM #{datastore['VM']}"
end
else
print_error "Login Failure on #{ip}"
print_error "Login Failure on #{datastore['RHOST']}"
return
end
end

View File

@ -0,0 +1,74 @@
##
# $Id$
##
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
require 'msf/core'
require 'msf/core/exploit/vim_soap'
class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
include Msf::Auxiliary::Report
include Msf::Exploit::Remote::VIMSoap
def initialize
super(
'Name' => 'VMWare Tag Virtual Machine',
'Description' => %Q{
This module will log into the Web API of VMWare and
'tag' a specified Virtual Machine. It does this by
logging a user event with user supplied text},
'Author' => ['TheLightCosine <thelightcosine[at]metasploit.com>'],
'License' => MSF_LICENSE
)
register_options(
[
Opt::RPORT(443),
OptString.new('USERNAME', [ true, "The username to Authenticate with.", 'root' ]),
OptString.new('PASSWORD', [ true, "The password to Authenticate with.", 'password' ]),
OptString.new('VM', [true, "The VM to try to Power On"]),
OptString.new('MSG', [true, "The message to put in the log", 'Pwned by Metasploit'])
], self.class)
end
def run
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
vm_ref = vim_find_vm_by_name(datastore['VM'])
if vm_ref
result = vim_log_event_vm(vm_ref, datastore['MSG'])
case result
when :noresponse
print_error "Recieved no Response"
when :expired
print_error "The login session appears to have expired"
when :error
print_error "An error occured"
else
print_good "User Event logged"
end
else
print_error "Could not locate VM #{datastore['VM']}"
end
else
print_error "Login Failure on #{datastore['RHOST']}"
return
end
end
end

View File

@ -54,7 +54,7 @@ class Metasploit3 < Msf::Auxiliary
end
end
else
print_error "Login Failure on #{ip}"
print_error "Login Failure on #{datastore['RHOST']}"
return
end
end