Skip to content

Commit 3570fc5

Browse files
committed
Use constants for JMX serial version uids
1 parent 46a225c commit 3570fc5

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

lib/msf/java/rmi/client/jmx.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ module Msf
44
module Java
55
module Rmi
66
module Client
7-
module Registry
7+
module Jmx
88
require 'msf/java/rmi/client/jmx/server'
99
require 'msf/java/rmi/client/jmx/connection'
1010

1111
include Msf::Java::Rmi::Client::Jmx::Server
1212
include Msf::Java::Rmi::Client::Jmx::Connection
13+
14+
OBJECT_NAME_UID = 1081892073854801359
15+
BYTE_ARRAY_UID = -5984413125824719648
16+
MARSHALLED_OBJECT_UID = 8988374069173025854
17+
STRING_ARRAY_UID = -5921575005990323385
18+
OBJECT_ARRAY_UID = -8012369246846506644
1319
end
1420
end
1521
end

lib/msf/java/rmi/client/jmx/connection/builder.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ module Client
77
module Jmx
88
module Connection
99
module Builder
10-
1110
# Builds an RMI call to javax/management/remote/rmi/RMIConnectionImpl_Stub#getObjectInstance()
1211
# used to retrieve an MBean instance
1312
#
@@ -50,7 +49,7 @@ def build_jmx_get_object_instance_args(name = '')
5049

5150
new_object = builder.new_object(
5251
name: 'javax.management.ObjectName',
53-
serial: 0xf03a71beb6d15cf, # serialVersionUID
52+
serial: Msf::Java::Rmi::Client::Jmx::OBJECT_NAME_UID, # serialVersionUID
5453
flags: 3
5554
)
5655

@@ -161,20 +160,20 @@ def build_jmx_invoke_args(opts = {})
161160

162161
new_object = builder.new_object(
163162
name: 'javax.management.ObjectName',
164-
serial: 0xf03a71beb6d15cf, # serialVersionUID
163+
serial: Msf::Java::Rmi::Client::Jmx::OBJECT_NAME_UID, # serialVersionUID
165164
flags: 3
166165
)
167166

168167
data_binary = builder.new_array(
169168
name: '[B',
170-
serial: 0xacf317f8060854e0, # serialVersionUID
169+
serial: Msf::Java::Rmi::Client::Jmx::BYTE_ARRAY_UID, # serialVersionUID
171170
values_type: 'byte',
172171
values: build_invoke_arguments_obj_bytes(args).encode.unpack('C*')
173172
)
174173

175174
marshall_object = builder.new_object(
176175
name: 'java.rmi.MarshalledObject',
177-
serial: 0x7cbd1e97ed63fc3e, # serialVersionUID
176+
serial: Msf::Java::Rmi::Client::Jmx::MARSHALLED_OBJECT_UID, # serialVersionUID
178177
fields: [
179178
['int', 'hash'],
180179
['array', 'locBytes', '[B'],
@@ -189,7 +188,7 @@ def build_jmx_invoke_args(opts = {})
189188

190189
new_array = builder.new_array(
191190
name: '[Ljava.lang.String;',
192-
serial: 0xadd256e7e91d7b47, # serialVersionUID
191+
serial: Msf::Java::Rmi::Client::Jmx::STRING_ARRAY_UID, # serialVersionUID
193192
values_type: 'java.lang.String;',
194193
values: args.keys.collect { |k| Rex::Java::Serialization::Model::Utf.new(nil, k) }
195194
)
@@ -218,7 +217,7 @@ def build_invoke_arguments_obj_bytes(args = {})
218217

219218
new_array = builder.new_array(
220219
name: '[Ljava.lang.Object;',
221-
serial: 0x90ce589f1073296c, # serialVersionUID
220+
serial: Msf::Java::Rmi::Client::Jmx::OBJECT_ARRAY_UID, # serialVersionUID
222221
annotations: [Rex::Java::Serialization::Model::EndBlockData.new],
223222
values_type: 'java.lang.Object;',
224223
values: args.values.collect { |arg| Rex::Java::Serialization::Model::Utf.new(nil, arg) }

lib/msf/java/rmi/client/jmx/server/builder.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def build_jmx_new_client_args(username = '', password = '')
5454

5555
auth_array = builder.new_array(
5656
name: '[Ljava.lang.String;',
57-
serial: 0xadd256e7e91d7b47, # serialVersionUID
57+
serial: Msf::Java::Rmi::Client::Jmx::STRING_ARRAY_UID, # serialVersionUID
5858
values_type: 'java.lang.String;',
5959
values: [
6060
Rex::Java::Serialization::Model::Utf.new(nil, username),

lib/rex/java/serialization/model/new_class_desc.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def encode
7373
end
7474
encoded = ''
7575
encoded << class_name.encode
76-
encoded << [serial_version].pack('Q>')
76+
encoded << [serial_version].pack('q>')
7777
encoded << [flags].pack('C')
7878
encoded << [fields.length].pack('n')
7979
fields.each do |field|

0 commit comments

Comments
 (0)