Skip to content

Commit ab71111

Browse files
David MaloneyDavid Maloney
authored andcommitted
and all the rest
finally!
1 parent 4821851 commit ab71111

File tree

4 files changed

+35
-97
lines changed

4 files changed

+35
-97
lines changed

lib/metasploit/framework/login_scanner/vnc.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,15 @@ class VNC
3939
# @return [Metasploit::Framework::LoginScanner::Result] The LoginScanner Result object
4040
def attempt_login(credential)
4141
result_options = {
42-
credential: credential
42+
credential: credential,
43+
host: host,
44+
port: port,
45+
protocol: 'tcp',
46+
service_name: 'vnc'
4347
}
4448

49+
credential.public = nil
50+
4551
begin
4652
# Make our initial socket to the target
4753
disconnect if self.sock

modules/auxiliary/scanner/http/tomcat_mgr_login.rb

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -112,46 +112,20 @@ def run_host(ip)
112112
connection_timeout: 10
113113
)
114114

115-
service_data = {
116-
address: ip,
117-
port: rport,
118-
service_name: (ssl ? 'https' : 'http'),
119-
protocol: 'tcp',
120-
workspace_id: myworkspace_id
121-
}
122-
123115
scanner.scan! do |result|
116+
credential_data = result.to_h
117+
credential_data.merge!(
118+
module_fullname: self.fullname,
119+
workspace_id: myworkspace_id
120+
)
124121
if result.success?
125-
credential_data = {
126-
module_fullname: self.fullname,
127-
origin_type: :service,
128-
private_data: result.credential.private,
129-
private_type: :password,
130-
username: result.credential.public
131-
}
132-
credential_data.merge!(service_data)
133-
134122
credential_core = create_credential(credential_data)
123+
credential_data[:core] = credential_core
124+
create_credential_login(credential_data)
135125

136-
login_data = {
137-
core: credential_core,
138-
last_attempted_at: DateTime.now,
139-
status: Metasploit::Model::Login::Status::SUCCESSFUL
140-
}
141-
login_data.merge!(service_data)
142-
143-
create_credential_login(login_data)
144126
print_good "#{ip}:#{rport} - LOGIN SUCCESSFUL: #{result.credential}"
145127
else
146-
invalidate_login(
147-
address: ip,
148-
port: rport,
149-
protocol: 'tcp',
150-
public: result.credential.public,
151-
private: result.credential.private,
152-
realm_key: nil,
153-
realm_value: nil,
154-
status: result.status)
128+
invalidate_login(credential_data)
155129
print_status "#{ip}:#{rport} - LOGIN FAILED: #{result.credential} (#{result.status}: #{result.proof})"
156130
end
157131
end

modules/auxiliary/scanner/vnc/vnc_login.rb

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -77,45 +77,20 @@ def run_host(ip)
7777
connection_timeout: datastore['ConnectTimeout']
7878
)
7979

80-
service_data = {
81-
address: ip,
82-
port: rport,
83-
service_name: 'vnc',
84-
protocol: 'tcp',
85-
workspace_id: myworkspace_id
86-
}
87-
8880
scanner.scan! do |result|
81+
credential_data = result.to_h
82+
credential_data.merge!(
83+
module_fullname: self.fullname,
84+
workspace_id: myworkspace_id
85+
)
8986
if result.success?
90-
credential_data = {
91-
module_fullname: self.fullname,
92-
origin_type: :service,
93-
private_data: result.credential.private,
94-
private_type: :password,
95-
}
96-
credential_data.merge!(service_data)
97-
9887
credential_core = create_credential(credential_data)
88+
credential_data[:core] = credential_core
89+
create_credential_login(credential_data)
9990

100-
login_data = {
101-
core: credential_core,
102-
last_attempted_at: DateTime.now,
103-
status: Metasploit::Model::Login::Status::SUCCESSFUL
104-
}
105-
login_data.merge!(service_data)
106-
107-
create_credential_login(login_data)
10891
print_good "#{ip}:#{rport} - LOGIN SUCCESSFUL: #{result.credential}"
10992
else
110-
invalidate_login(
111-
address: ip,
112-
port: rport,
113-
protocol: 'tcp',
114-
public: nil,
115-
private: result.credential.private,
116-
realm_key: nil,
117-
realm_value: nil,
118-
status: result.status)
93+
invalidate_login(credential_data)
11994
print_status "#{ip}:#{rport} - LOGIN FAILED: #{result.credential} (#{result.status}: #{result.proof})"
12095
end
12196
end

modules/auxiliary/scanner/winrm/winrm_login.rb

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -58,42 +58,25 @@ def run_host(ip)
5858
stop_on_success: datastore['STOP_ON_SUCCESS'],
5959
connection_timeout: 10,
6060
)
61-
scanner.scan! do |result|
62-
if result.success?
6361

64-
service_data = {
65-
address: ip,
66-
port: rport,
67-
service_name: 'winrm',
68-
protocol: 'tcp',
69-
workspace_id: myworkspace_id
70-
}
71-
72-
credential_data = {
62+
scanner.scan! do |result|
63+
credential_data = result.to_h
64+
credential_data.merge!(
7365
module_fullname: self.fullname,
74-
origin_type: :service,
75-
private_data: result.credential.private,
76-
private_type: :password,
77-
username: result.credential.public,
78-
realm_key: Metasploit::Model::Realm::Key::ACTIVE_DIRECTORY_DOMAIN,
79-
realm_value: result.credential.realm,
80-
}.merge(service_data)
81-
66+
workspace_id: myworkspace_id
67+
)
68+
if result.success?
8269
credential_core = create_credential(credential_data)
83-
login_data = {
84-
access_level: 'Admin',
85-
core: credential_core,
86-
last_attempted_at: DateTime.now,
87-
status: Metasploit::Model::Login::Status::SUCCESSFUL
88-
}.merge(service_data)
70+
credential_data[:core] = credential_core
71+
create_credential_login(credential_data)
8972

90-
create_credential_login(login_data)
91-
92-
print_good "#{ip}:#{rport}: Valid credential found: #{result.credential}"
73+
print_good "#{ip}:#{rport} - LOGIN SUCCESSFUL: #{result.credential}"
9374
else
94-
vprint_status "#{ip}:#{rport}: Login failed: #{result.credential}"
75+
invalidate_login(credential_data)
76+
print_status "#{ip}:#{rport} - LOGIN FAILED: #{result.credential} (#{result.status}: #{result.proof})"
9577
end
9678
end
79+
9780
end
9881

9982

0 commit comments

Comments
 (0)