Skip to content

Commit db345fc

Browse files
David MaloneyDavid Maloney
authored andcommitted
make credential_collection always set private_type
1 parent a380646 commit db345fc

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

lib/metasploit/framework/credential_collection.rb

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,18 @@ def each
8686

8787
if username.present?
8888
if password.present?
89-
yield Metasploit::Framework::Credential.new(public: username, private: password, realm: realm)
89+
yield Metasploit::Framework::Credential.new(public: username, private: password, realm: realm, private_type: private_type(password))
9090
end
9191
if user_as_pass
92-
yield Metasploit::Framework::Credential.new(public: username, private: username, realm: realm)
92+
yield Metasploit::Framework::Credential.new(public: username, private: username, realm: realm, private_type: :password)
9393
end
9494
if blank_passwords
95-
yield Metasploit::Framework::Credential.new(public: username, private: "", realm: realm)
95+
yield Metasploit::Framework::Credential.new(public: username, private: "", realm: realm, private_type: :password)
9696
end
9797
if pass_fd
9898
pass_fd.each_line do |pass_from_file|
9999
pass_from_file.chomp!
100-
yield Metasploit::Framework::Credential.new(public: username, private: pass_from_file, realm: realm)
100+
yield Metasploit::Framework::Credential.new(public: username, private: pass_from_file, realm: realm, private_type: private_type(pass_from_file))
101101
end
102102
pass_fd.seek(0)
103103
end
@@ -108,18 +108,18 @@ def each
108108
user_fd.each_line do |user_from_file|
109109
user_from_file.chomp!
110110
if password
111-
yield Metasploit::Framework::Credential.new(public: user_from_file, private: password, realm: realm)
111+
yield Metasploit::Framework::Credential.new(public: user_from_file, private: password, realm: realm, private_type: private_type(password) )
112112
end
113113
if user_as_pass
114-
yield Metasploit::Framework::Credential.new(public: user_from_file, private: user_from_file, realm: realm)
114+
yield Metasploit::Framework::Credential.new(public: user_from_file, private: user_from_file, realm: realm, private_type: :password)
115115
end
116116
if blank_passwords
117-
yield Metasploit::Framework::Credential.new(public: user_from_file, private: "", realm: realm)
117+
yield Metasploit::Framework::Credential.new(public: user_from_file, private: "", realm: realm, private_type: :password)
118118
end
119119
if pass_fd
120120
pass_fd.each_line do |pass_from_file|
121121
pass_from_file.chomp!
122-
yield Metasploit::Framework::Credential.new(public: user_from_file, private: pass_from_file, realm: realm)
122+
yield Metasploit::Framework::Credential.new(public: user_from_file, private: pass_from_file, realm: realm, private_type: private_type(pass_from_file))
123123
end
124124
pass_fd.seek(0)
125125
end
@@ -145,4 +145,14 @@ def each
145145
pass_fd.close if pass_fd && !pass_fd.closed?
146146
end
147147

148+
private
149+
150+
def private_type(private)
151+
if private =~ /[0-9a-f]{32}:[0-9a-f]{32}/
152+
:ntlm_hash
153+
else
154+
:password
155+
end
156+
end
157+
148158
end

0 commit comments

Comments
 (0)