10 julio 2012

Exploit Kit - Blackhole

La industria del malware se va modernizando y buscan nuevas vías para infectar a los usuarios.

En casos de malware nos encontraríamos por ejemplo con un mensaje de SPAM que contendría un enlace a una página web, que, o bien descargaría un PDF con malware aprovechando una versión vulnerable del visor PDF, o bien por ejemplo, explotaría una vulnerabilidad del navegador.

Una de las "armas" que usan los cibercriminales se trata de los Exploits kits, estos pack de exploits se compran en el "mercado negro" y contienen los exploits para poder infectar a los usuarios. Está claro que cuanto mas vale el Exploit Kit que se está pagando, mas funcionalidades e incluso con mas frecuencia se actualizarán los Exploits que contiene el kit.

¿Cual es el "modus operandi"?

A grandes rasgos existen dos maneras de infectar al usuario con un Exploit Kit. Una de esas maneras es colocar el Exploit Kit en un servidor, y realizar una campaña de SPAM, de manera que cuando el usuario legítimo reciba el correo y haga click en el enlace quede infectado por el Exploit Kit.
Evidentemente se usarán técnicas de ingeniería social para engañar al usuario e instarlo a que haga click en el enlace del correo.

Otra de las vías de infección es la de comprometer un host legítimo, y hacer que el usuario se infecte.
Será mucho más fácil que el usuario se infecte en un sitio legítimo, que no, mediante un correo de SPAM.

Vamos a centrarnos en el caso de cuando comprometen un servidor legítimo.


Tal y como muestra la imagen el usuario se conecta a la web legítima, la web carga, mediante un iframe o mediante un javascript el contenido malicioso.

Cuando se infecta el site legítimo con el exploit kit, una de las cosas que pueden hacer es NO colocarlo en el index.html o index.php, de esta manera sería muy sencillo y solo bastaría mirar el código fuente para ver el código incrustado.

Así que una de las maneras es colocar el código del exploit kit en un javascript y que la web principal lo cargue, de esta manera habiendo n javascript cargados sea un poco mas difícil saber donde está.

Si nos dirijimos a un caso práctico con un blackhole en un site legítimo, revisamos que en código fuente de la página principal no hay nada raro...

En cambio si revisamos las cabeceras nos encontramos con esto:


Al parecer la web legítima SI que carga el contenido malicioso, así que nos encontramos en un caso en el que el cibercriminal no ha colocado el código del Exploit Kit en la página principal. Revisando las peticiones que realiza de los JS, revisando cada uno de ellos, nos encontramos con esto:


Aunque nunca hayamos visto un código de exploit kit, sin duda esto nos tendría que hacer sospechar ¿No es así?

El código está ofuscado y tendremos que entender que función usa el cibercriminal para extraer la ofuscación y ver el código en claro.

Una de las opciones para entender mejor el código es verlo "ordenado". Para ello usaremos jsbeautifer
Colocamos el código en la web y nos vamos hacia lo que mas nos interesa :)


Podemos ver la función eval, que es la que se encargará de descifrar lo que no podemos ver en claro.
Ahora lo que haremos para no perder el tiempo es un pequeño truco para ver directamente el código en texto claro.

Lo que hacemos es guardar este código del blackhole en un fichero al que llamaremos malware.js
Y cambiamos una cosa del código, en la parte final donde pone

if (f)e(s);
Lo cambiaremos por:
if (f)alert(s);

Luego creamos un fichero que se llamará malware.html, en el invocamos al js que hemos creado antes.
<script src="malware.js"></script>

Abrimos el fichero HTML, y nos aparecerá lo siguiente:



Ya tenemos el código en claro, de como Blackhole en este caso crea el dominio.

Espero que os haya gustado, echar un vistazo a este mundo tan interesante de los Exploits Kit

Artículo cortesía de @Seifreed