Better dynamic soap generation for all the vmware stuff

This commit is contained in:
David Maloney 2012-02-18 18:29:46 -06:00
parent ddb43774c9
commit 36dc0fee50
4 changed files with 493 additions and 880 deletions

File diff suppressed because it is too large Load Diff

View File

@ -40,10 +40,10 @@ class Metasploit3 < Msf::Auxiliary
end end
def run def run
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
vm_ref = vim_find_vm_by_name(datastore['VM']) vm_ref = vim_find_vm_by_name(datastore['VM'])
if vm_ref case vm_ref
when String
return_state = vim_powerOFF_vm(vm_ref) return_state = vim_powerOFF_vm(vm_ref)
case return_state case return_state
when 'success' when 'success'
@ -53,7 +53,11 @@ class Metasploit3 < Msf::Auxiliary
else else
print_error "The server returned an unexpected status #{return_state}" print_error "The server returned an unexpected status #{return_state}"
end end
else when :noresponse
print_error "The request timed out"
when :error
print_error @vim_soap_error
when nil
print_error "Could not locate VM #{datastore['VM']}" print_error "Could not locate VM #{datastore['VM']}"
end end
else else

View File

@ -43,7 +43,8 @@ class Metasploit3 < Msf::Auxiliary
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
vm_ref = vim_find_vm_by_name(datastore['VM']) vm_ref = vim_find_vm_by_name(datastore['VM'])
if vm_ref case vm_ref
when String
return_state = vim_powerON_vm(vm_ref) return_state = vim_powerON_vm(vm_ref)
case return_state case return_state
when 'success' when 'success'
@ -53,7 +54,11 @@ class Metasploit3 < Msf::Auxiliary
else else
print_error "The server returned an unexpected status #{return_state}" print_error "The server returned an unexpected status #{return_state}"
end end
else when :noresponse
print_error "The request timed out"
when :error
print_error @vim_soap_error
when nil
print_error "Could not locate VM #{datastore['VM']}" print_error "Could not locate VM #{datastore['VM']}"
end end
else else

View File

@ -45,7 +45,8 @@ class Metasploit3 < Msf::Auxiliary
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
vm_ref = vim_find_vm_by_name(datastore['VM']) vm_ref = vim_find_vm_by_name(datastore['VM'])
if vm_ref case vm_ref
when String
result = vim_log_event_vm(vm_ref, datastore['MSG']) result = vim_log_event_vm(vm_ref, datastore['MSG'])
case result case result
when :noresponse when :noresponse
@ -57,8 +58,12 @@ class Metasploit3 < Msf::Auxiliary
else else
print_good "User Event logged" print_good "User Event logged"
end end
else when :noresponse
print_error "Could not locate VM #{datastore['VM']}" print_error "Recieved no Response"
when :expired
print_error "The login session appears to have expired"
when :error
print_error @vim_soap_error
end end
else else
print_error "Login Failure on #{datastore['RHOST']}" print_error "Login Failure on #{datastore['RHOST']}"