Merge branch 'MySQL-JtR' of https://github.com/halfie/metasploit-framework into halfie-MySQL-JtR

unstable
jvazquez-r7 2012-09-21 10:08:34 +02:00
commit f6baf7fe34
1 changed files with 10 additions and 1 deletions

View File

@ -19,7 +19,8 @@ class Metasploit3 < Msf::Auxiliary
'Description' => %q{ 'Description' => %q{
This module provides a fake MySQL service that is designed to This module provides a fake MySQL service that is designed to
capture authentication credentials. It captures challenge and capture authentication credentials. It captures challenge and
response pairs that can be supplied to Cain for cracking. response pairs that can be supplied to Cain or JtR (faster and
multi-core capable) for cracking.
}, },
'Author' => 'Patrik Karlsson <patrik[at]cqure.net>', 'Author' => 'Patrik Karlsson <patrik[at]cqure.net>',
'License' => MSF_LICENSE, 'License' => MSF_LICENSE,
@ -34,6 +35,7 @@ class Metasploit3 < Msf::Auxiliary
OptString.new('CHALLENGE', [ true, "The 16 byte challenge", "112233445566778899AABBCCDDEEFF1122334455" ]), OptString.new('CHALLENGE', [ true, "The 16 byte challenge", "112233445566778899AABBCCDDEEFF1122334455" ]),
OptString.new('SRVVERSION', [ true, "The server version to report in the greeting response", "5.5.16" ]), OptString.new('SRVVERSION', [ true, "The server version to report in the greeting response", "5.5.16" ]),
OptString.new('CAINPWFILE', [ false, "The local filename to store the hashes in Cain&Abel format", nil ]), OptString.new('CAINPWFILE', [ false, "The local filename to store the hashes in Cain&Abel format", nil ]),
OptString.new('JOHNPWFILE', [ false, "The prefix to the local filename to store the hashes in JOHN format", nil ]),
], self.class) ], self.class)
end end
@ -171,6 +173,13 @@ class Metasploit3 < Msf::Auxiliary
) )
fd.close fd.close
end end
if(datastore['JOHNPWFILE'])
john_hash_line = "#{info[:username]}:$mysqlna$#{@challenge.unpack("H*")[0]}*#{info[:response].unpack('H*')[0]}"
fd = ::File.open(datastore['JOHNPWFILE'] + '_mysqlna' , "ab")
fd.puts john_hash_line
fd.close
end
else else
mysql_send_error(c, "Access denied for user '#{info[:username]}'@'#{c.peerhost}' (using password: NO)") mysql_send_error(c, "Access denied for user '#{info[:username]}'@'#{c.peerhost}' (using password: NO)")
end end