En este post vamos a desglosar algunas de las características de una de las últimas vulnerabilidades de Internet Exploter, la MS12-063, cuyo parche oficial se encuentra en el link anterior para todas las versiones afectadas, y ver cómo afecta a diferentes SO Windows, para este caso hemos utilizado Windows 7 fully Patched + Avira / AVG Internet Security con IE8 y Windows XP SP3 Fully Patched con IE7 + Avira. Además, comprobaremos cómo funciona ASLR y algunas de sus peculiaridades en estos SO.
En este caso vamos a utilizar el siguiente módulo de metasploit + meterpreter para la conexión reversa desde la víctima al host atacante. El exploit se basa en la creación de una página específicamente manipulada que al ser renderizada por el navegador víctima provoca una vulnerabilidad del tipo Use-After-Free (Dangling Pointer), provocado cuando un programa sigue utilizando un puntero de memoria que ya ha sido liberado previamente.
Los navegadores son propensos a este tipo de vulnerabilidades, así que no estamos a salvo usando Chrome o Firefox, ante este tipo de amenazas, es mejor protegerse adecuadamente.
Una vez preparado el ataque ponemos a la escucha un fakervidor web, ante el cual la víctima debería presentarse mediante Ingenieria Social y visitar en enlace, una vez hecho esto ya tendriamos acceso a la máquina víctima
Para este ataque se probó con el antivirus Avira con sus últimas actualizaciones, y aunque es capaz de identificar la amenaza, como se muestra en este screen, no evita la ejecución del exploit, y no se vuelve a quejar.
El que SÍ consigue detectar y denegar la explotación es AVG Internet Security , la versión de pago de este antivirus gratuito, con su protección SafeLink.
Esta vulnerabilidad ha tenido cierto impacto tanto en redes sociales como en medios de comunicación, y en ellos se recomendaba la instalación de una herramienta de Microsoft para mitigar este problema. Se trata de EMET ( Enhanced Mitigation Experience Toolkit ). EMET es un software diseñado para mitigar hasta 6 técnicas de explotación de software en nuestros sistemas, haciendo más dificil la ejecución de vulnerabilidades, y no sólo haciendo que determinados binarios opten a estar protegidos con DEP y ASLR sino contra técnicas que se utilizan para eludir dichas protecciones.
Su uso es muy sencillo, como se puede apreciar, hemos configurado el ejecutable iexplore.exe para que sea protegido por las técnicas que se aprecian en el screen, que se explicarán quizás más profundamente en otro post, aunque una breve utilización y explicación sobre DEP y ASLR manualmente se puede ver en la siguiente presentación de kernelsecurity :
- DEP ( Data Execution Prevention )
- SEHOP (Structure Exception Handler Overwrite Protection)
- HeapSpray Allocation
- Null Page Allocation
- EAF (Export Address Table Access Filtering )
- MandatoryASLR
- Bottom-up randomization
En EMET es aconsejable configurar las siguientes aplicaciones, ya que se suelen usar conjuntamente con los navegadores y son las más susceptibles de ser atacadas y explotadas por virus,gusanos o ataques dirigidos,:
- Java ( a partir de la 1.6.x viene con ASLR por defecto )
- Internet Explorer
- VLC Media Player
- Winamp
- Adobe Reader
- Adobe Shockwave Player
- OpenOffice
- Adobe FlashPlayer
- Real Player
- Google Chrome
- Mozilla Firefox
- Apple Itunes
¿ Cómo podemos saber si la aplicación está siendo protegida realmente por ASLR ?
Address Space Layout Randomization no es una técnica nueva, así como DEP, fue inventado e implementado por el Projecto PaX, en Linux allá por el año 2001, añadiendo una cierta aleatoriedad al direccionamiento virtual de memoria, siendo en Octubre de ese mismo año cuando Microsoft lo aplicó a su SO ( Windows Vista ) mediante un parche. ( Culo veo… ) =)
Con el siguiente código en C, cortesía de Sergio de los Santos, de informática64, podemos verificar qué direccionamiento de memoria tienen actualmente los ejecutables:
#include <windows.h>
int main(int argc, char **argv) {
printf(«\n, ImageBase de %s:
0x%x\n»,argv[1],LoadLibraryA(argv[1]));
Se puede compilar perfectamente en Windows con MinGW:
- gcc -o fichero.c -o base.exe
En el siguiente screen, se puede observar el comportamiento de Internet Explorer, que no cambia, al consultar su ImageBase:
Una vez agregado en el Panel de control de EMET, deberemos de reiniciar el ordenador, y consultando después, obtenemos lo siguiente:
Se puede observar como consultando varias veces el puntero de referencia cambia su direccionamiento,imposibilitando en primera instancia la ejecución del exploit que en este post se está comentando,aunque la técnica HeapSpray nos podría ayudar en cierto modo ya que lo que intenta es llenar con la shellcode diferentes direcciones de memoria hasta dar con la que se busca, muchos exploits se aprovechan de esta técnica.
Finalmente, para los todavía usuarios de Windows XP, ASLR no se encuentra nativamente habilitado en el sistema, aunque hay una herramienta, WhenTrust del 2008, que podría ayudarnos a proteger algunos binarios con una aleatoriedad que implementa la propia herramienta, aunque he de decir que pude explotar la vulnerabilidad de este post sin problemas,y la herramienta no consiguió aleatorizar iexplorer.exe ni java.exe, tan sólo cambiaron de direccionamiento pero al seguir consultando ya no cambiaría más.