Skip to content

Commit 12902b0

Browse files
David MaloneyDavid Maloney
authored andcommitted
the refactor continues!
1 parent b74813b commit 12902b0

File tree

5 files changed

+32
-70
lines changed

5 files changed

+32
-70
lines changed

lib/metasploit/framework/login_scanner/postgres.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ class Postgres
2323
# @return [Metasploit::Framework::LoginScanner::Result] The LoginScanner Result object
2424
def attempt_login(credential)
2525
result_options = {
26-
credential: credential
26+
credential: credential,
27+
host: host,
28+
port: port,
29+
protocol: 'tcp',
30+
service_name: 'postgres'
2731
}
2832

2933
db_name = credential.realm || 'template1'

lib/metasploit/framework/login_scanner/smb.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,12 @@ def attempt_login(credential)
212212
access_level ||= AccessLevels::GUEST
213213
end
214214

215-
Result.new(credential: credential, status: status, proof: proof, access_level: access_level)
215+
result = Result.new(credential: credential, status: status, proof: proof, access_level: access_level)
216+
result.host = host
217+
result.port = port
218+
result.protocol = 'tcp'
219+
result.service_name = 'smb'
220+
result
216221
end
217222

218223
def connect

lib/metasploit/framework/login_scanner/snmp.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ class SNMP
2222
# @return [Metasploit::Framework::LoginScanner::Result] The LoginScanner Result object
2323
def attempt_login(credential)
2424
result_options = {
25-
credential: credential
25+
credential: credential,
26+
host: host,
27+
port: port,
28+
protocol: 'udp',
29+
service_name: 'snmp'
2630
}
2731

2832
[:SNMPv1, :SNMPv2c].each do |version|

modules/auxiliary/scanner/postgres/postgres_login.rb

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -69,48 +69,20 @@ def run_host(ip)
6969
connection_timeout: 30
7070
)
7171

72-
service_data = {
73-
address: ip,
74-
port: rport,
75-
service_name: 'postgres',
76-
protocol: 'tcp',
77-
workspace_id: myworkspace_id
78-
}
79-
8072
scanner.scan! do |result|
81-
if result.success?
82-
credential_data = {
73+
credential_data = result.to_h
74+
credential_data.merge!(
8375
module_fullname: self.fullname,
84-
origin_type: :service,
85-
private_data: result.credential.private,
86-
private_type: :password,
87-
realm_key: Metasploit::Model::Realm::Key::POSTGRESQL_DATABASE,
88-
realm_value: result.credential.realm,
89-
username: result.credential.public
90-
}
91-
credential_data.merge!(service_data)
92-
76+
workspace_id: myworkspace_id
77+
)
78+
if result.success?
9379
credential_core = create_credential(credential_data)
80+
credential_data[:core] = credential_core
81+
create_credential_login(credential_data)
9482

95-
login_data = {
96-
core: credential_core,
97-
last_attempted_at: DateTime.now,
98-
status: Metasploit::Model::Login::Status::SUCCESSFUL
99-
}
100-
login_data.merge!(service_data)
101-
102-
create_credential_login(login_data)
10383
print_good "#{ip}:#{rport} - LOGIN SUCCESSFUL: #{result.credential}"
10484
else
105-
invalidate_login(
106-
address: ip,
107-
port: rport,
108-
protocol: 'tcp',
109-
public: result.credential.public,
110-
private: result.credential.private,
111-
realm_key: Metasploit::Model::Realm::Key::POSTGRESQL_DATABASE,
112-
realm_value: result.credential.realm,
113-
status: result.status)
85+
invalidate_login(credential_data)
11486
print_status "#{ip}:#{rport} - LOGIN FAILED: #{result.credential} (#{result.status}: #{result.proof})"
11587
end
11688
end

modules/auxiliary/scanner/snmp/snmp_login.rb

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -63,43 +63,20 @@ def run_batch(batch)
6363
connection_timeout: 2
6464
)
6565

66-
service_data = {
67-
address: ip,
68-
port: rport,
69-
service_name: 'snmp',
70-
protocol: 'udp',
71-
workspace_id: myworkspace_id
72-
}
73-
7466
scanner.scan! do |result|
67+
credential_data = result.to_h
68+
credential_data.merge!(
69+
module_fullname: self.fullname,
70+
workspace_id: myworkspace_id
71+
)
7572
if result.success?
76-
credential_data = {
77-
module_fullname: self.fullname,
78-
origin_type: :service,
79-
username: result.credential.public
80-
}
81-
credential_data.merge!(service_data)
82-
8373
credential_core = create_credential(credential_data)
74+
credential_data[:core] = credential_core
75+
create_credential_login(credential_data)
8476

85-
login_data = {
86-
core: credential_core,
87-
last_attempted_at: DateTime.now,
88-
status: Metasploit::Model::Login::Status::SUCCESSFUL
89-
}
90-
login_data.merge!(service_data)
91-
92-
create_credential_login(login_data)
9377
print_good "#{ip}:#{rport} - LOGIN SUCCESSFUL: #{result.credential}"
9478
else
95-
invalidate_data = {
96-
public: result.credential.public,
97-
private: result.credential.private,
98-
realm_key: result.credential.realm_key,
99-
realm_value: result.credential.realm,
100-
status: result.status
101-
} .merge(service_data)
102-
invalidate_login(invalidate_data)
79+
invalidate_login(credential_data)
10380
print_status "#{ip}:#{rport} - LOGIN FAILED: #{result.credential} (#{result.status}: #{result.proof})"
10481
end
10582
end

0 commit comments

Comments
 (0)