domingo, 17 de enero de 2010

Aurora Zero Day (Internet Explorer)

Como ya sabreis, hace poco nos llegó la noticia a todos de los ataques recibidos por Google China, así como por un buen número de empresas de envergadura considerable.

El ataque consistía en lo que el Internet Storm Center (ISC) del SANS Institute llamó "targeted phishing" or "spearphishing", es decir, el envío de correos a personas determinadas de una empresa para intentar que realicen las acciones deseadas por el atacante, bien sea aprovechando vulnerabilidades de los navegadores, bien sea engañándoles para que ejecuten un fichero ejecutable, vean un video, etc.

En este caso, este ataque explotaba una Vulnerabilidad Zero Day de Internet Explorer 6, 7 y 8 que permitía a los atacantes tomar el control de la máquina atacada. Concretamente, según afirma Microsoft en su Advisory, solo se han detectado ataques que explotan la vulnerabilidad exitósamente en Internet Explorer 6, aunque no se descarta que aparezcan próximamente ataques que realicen lo propio contra Internet Explorer 7 y 8, saltándose las protecciones de DEP.

El exploit de dicha vulnerabilidad completamente funcional para Internet Explorer 6 (aunque no para otras versiones, como hemos podido comprobar desde pentester.es, dadnos tiempo :P) ha sido publicado y ya existe modulo para metasploit disponible que ha sido anunciado recientemente en el blog de Metasploit. Podemos ver un ejemplo de su funcionamiento en el siguiente video:





El exploit, si lo lanzamos desde Metasploit y conectamos con NetCat, podemos ver que se trata claramente de una vulnerabilidad en el motor de Javascript:



Más concretamente, como se ha podido saber, se trata de un fallo por el cual se podría acceder a un puntero inválido tras liberar el objeto al que apunta, es decir, declaramos un objeto, tenemos el puntero que apunta a él, liberamos el objeto, pero sin embargo seguimos teniendo la referencia al objeto y podemos escribir en memoria a través de dicha referencia.

Por tratarse de una Vulnerabilidad Zero Day, como su propio nombre indica, el fallo ha sido publicado antes de que Microsoft publique los parches necesarios para solucionarlo, por lo que no es posible aplicar ningún parche que corrija la vulnerabilidad.

Desde Pentester.es, recomendamos tomar las siguientes acciones:
  1. No confiar en que los exploits conocidos solo han resultado efectivos en IE6. Podrían existir otros exploits no conocidos que funcionaran en IE7 e IE8.
  2. Desactivar Javascript en los navegadores Internet Explorer, aunque no los estemos usando como navegador predeterminado, ya que por algún motivo el sistema operativo utiliza Internet Explorer en algunos casos aunque le hayamos especificado lo contrario. Así mismo pueden existir aplicaciones de terceros que conecten a Internet por medio de un Internet Explorer oculto (que no se muestra en pantalla), por lo que en cualquier caso deberiamos desactivar Javascript en Internet Explorer.
  3. Instalarnos la última versión de algún otro navegador como Firefox, Opera o Chrome, y utilizarlo hasta que Microsoft saque el parche.
Una vez sacado el parche, los usuarios habituales de Internet Explorer solo tienen que aplicar el parche, volver a activar Javascript y seguir usando su navegador favorito como hasta ahora.