From 2ee408e9dbb95e44288e8d7d4d8658ff97e41e4e Mon Sep 17 00:00:00 2001 From: James Lee Date: Thu, 5 Jun 2014 14:26:29 -0500 Subject: [PATCH] Refactor winrm_login with Credentials --- .../auxiliary/scanner/winrm/winrm_login.rb | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/modules/auxiliary/scanner/winrm/winrm_login.rb b/modules/auxiliary/scanner/winrm/winrm_login.rb index 60ba865c87..0322debe5c 100644 --- a/modules/auxiliary/scanner/winrm/winrm_login.rb +++ b/modules/auxiliary/scanner/winrm/winrm_login.rb @@ -60,16 +60,33 @@ class Metasploit3 < Msf::Auxiliary ) scanner.scan! do |result| if result.success? - cred_hash = { - :host => ip, - :port => rport, - :sname => 'winrm', - :pass => result.credential.private, - :user => result.credential.public, - :source_type => "user_supplied", - :active => true + + service_data = { + address: ip, + port: rport, + service_name: 'winrm', + protocol: 'tcp', + workspace_id: myworkspace_id } - report_auth_info(cred_hash) + + credential_data = { + module_fullname: self.fullname, + origin_type: :service, + private_data: result.credential.private, + private_type: :password, + username: result.credential.public, + }.merge(service_data) + + credential_core = create_credential(credential_data) + login_data = { + access_level: 'Admin', + core: credential_core, + last_attempted_at: DateTime.now, + status: Metasploit::Credential::Login::Status::SUCCESSFUL + }.merge(service_data) + + create_credential_login(login_data) + print_good "#{ip}:#{rport}: Valid credential found: #{result.credential}" else vprint_status "#{ip}:#{rport}: Login failed: #{result.credential}"