JMX code refactoring
This commit is contained in:
@@ -14,22 +14,24 @@ module Msf
|
||||
# @param return_value [Rex::Proto::Rmi::Model::ReturnValue]
|
||||
# @return [String, NilClass] The remote object name if success, nil otherwise
|
||||
def parse_jmx_new_client(return_value)
|
||||
if return_value.nil? || return_value.is_exception?
|
||||
return nil
|
||||
end
|
||||
|
||||
unless return_value.value[0].is_a?(Rex::Java::Serialization::Model::NewObject)
|
||||
return nil
|
||||
end
|
||||
return_object = ''
|
||||
|
||||
case return_value.value[0].class_desc.description
|
||||
when Rex::Java::Serialization::Model::NewClassDesc
|
||||
return return_value.value[0].class_desc.description.class_name.contents
|
||||
return_object = return_value.value[0].class_desc.description.class_name.contents
|
||||
when Rex::Java::Serialization::Model::ProxyClassDesc
|
||||
return return_value.value[0].class_desc.description.interfaces[0].contents
|
||||
return_object = return_value.value[0].class_desc.description.interfaces[0].contents
|
||||
else
|
||||
return nil
|
||||
end
|
||||
|
||||
unless return_object == 'javax.management.remote.rmi.RMIConnectionImpl_Stub'
|
||||
return nil
|
||||
end
|
||||
|
||||
ref = parse_jmx_new_client_endpoint(return_value)
|
||||
|
||||
ref
|
||||
end
|
||||
|
||||
# Parses a java.rmi.registry.Registry.lookup() return value to find out
|
||||
@@ -38,10 +40,6 @@ module Msf
|
||||
# @param return_value [Rex::Java::Serialization::Model::ReturnValue]
|
||||
# @return [Hash, NilClass] The remote interface information if success, nil otherwise
|
||||
def parse_jmx_new_client_endpoint(return_value)
|
||||
if return_value.nil? || return_value.is_exception?
|
||||
return nil
|
||||
end
|
||||
|
||||
values_size = return_value.value.length
|
||||
end_point_block_data = return_value.value[values_size - 2]
|
||||
unless end_point_block_data.is_a?(Rex::Java::Serialization::Model::BlockData)
|
||||
|
||||
Reference in New Issue
Block a user