Demo y explicación del exploit de Flash ejecutado en Word

Hace unos días Brian Krebs destapó la liebre, un nuevo 0day en flash estaba siendo explotado en ataques muy dirigidos.

A partir de ahí la cosa ya se empezó a mover y Adobe confirmaba la situación. En el blog de referencia sobre ataques dirigidos empezaba a brotar la info, y al poco tiempo ya nos podíamos bajar los samples (en un zip con contraseña).

A través de correos, se había enviado el exploit embebido en documentos de word. ¿Y qué pasa cuando los abres?. Por si alguna vez te lo has preguntado, echa un vistazo al siguiente video donde ejecuto el .DOC real que contiene el exploit. Esto es lo que vería el objetivo del ataque (ver video).

Básicamente lo que tenemos es la siguiente secuencia, que se repite en este tipo de ataques:

  1. Se carga el documento con el exploit embebido
  2. Se ejecuta el exploit y el payload
  3. Se mata la instancia actual del Word
  4. Se abre otra rápidamente con un documento “limpio” para que la víctima no sospeche.

Al ejecutarse en una VM vemos que pasa demasiado tiempo entre las diferentes etapas, pero en una física, aunque todavía perceptible, se reduciría algo más.
Veamos que tiene dentro el documento, usando el programa FileInsight de McAfee

Vemos en esta imagen como el documento lleva embebido un objeto flash, que es el que hace todo el “trabajo”. En este caso, ubicar en memoria el nop sled y la shellcode mediante heap spray.

El decompilado del .swf original lo podes ver en este enlace.

Si se fijan en la linea 61 veran lo siguiente

this.t = "4657530ACC0500007800055F00000FA000001801004.... [bugly swf]....";

Un cadena que representa los bytes de otro archivo flash, que es el encargado de provocar la vulnerabilidad.

Este trigger es cargado sin necesidad de pasar por disco usando el metodo loadBytes del loader

this.r = this.hexToBin(this.t);
this.ldr = new flash.display.Loader();
this.ldr.loadBytes(this.r);

El exploit no tiene mucho, no se salta ni DEP ni ASLR por lo que parece que estaba destinado a XP principalmente.

Si quereis echar un ojo a la shellcode la he subido en este enlace.

Podés leer un buen análisis de la lógica del fallo que ha hecho la gente de secunia
http://secunia.com/blog/210

También les recomiendo, si quieren profundizar en este tipo de fallos, las siguientes slides http://cansecwest.com/csw11/Flash_ActionScript.ppt

Otra referencia:
http://bugix-security.blogspot.com/2011/04/cve-2011-0611-adobe-flash-zero-day.html

Fuente48bits

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.