sábado, julio 28, 2012

Ataque dirigido con JavaScript Botnet

Una de las cosas curiosas que tienen las JavaScript Botnets, es que puedes hacer ataques dirigidos a webs cuando aún está conectada la víctima al payload, para que una vez que se desconecte, la web que visite esté infectada. Esa es una demo de las realizadas en las charlas de BlackHat y Defcon, y éste es el paso a paso de la demo - que lo realicé por si algo iba mal -.

Paso 1: Configurar un nuevo ataque pre-configurado para el banco californiano. Con este panel decidimos qué ficheros vamos a cargar en todos los bots infectados con la botnet.

Figura 1: El panel de la JavaScript Botnet con los preset attacks

Paso 2: Analizamos la web en busca de ficheros javascript cargados de forma estática. Esto se puede hacer con cualquier fichero, incluso htm o html, pero nosotros hemos decidido hacerlo con JavaScript, para no cambiar el formato. En este caso, en la web de este banco de California vamos a seleccionar el fichero gatag.js para ser infectado.

Figura 2: Ficheros JS cargados por la web objetivo

Paso 3: Se configura el payload adecuado para que descargue a la caché este fichero JavaScript. Como estará utilizado el Proxy, nos garantizamos que el fichero quedará infectado en la caché, una vez se desconecte del servidor.

Figura 3: El fichero se fuerza en cualquier web visitada

Paso 4: La víctima se conecta al servidor Proxy porque así lo ha querido.

Figura 4: La víctima se conecta al Rogue Proxy Server

Paso 5: Visita cualquier página, y el fichero infectado queda descargado e infectado con el payload en la caché del navegador.

Figura 5: El fichero gatag.js con el payload copiado al final del archivo

Paso 6: La víctima se desconecta del servidor Proxy, para continuar con su navegación normal.

Figura 6: La víctima se desconecta

Paso 7: Un tiempo en el futuro, decide conectarse a la web de su banco, para realizar las gestiones pertinentes.

Figura 7: La víctima se conecta al banco un tiempo en el futuro

Paso 8: Con el fichero JavaScript gatag.js es cargado en esa pestaña desde la caché del navegador, y este está infectado, se capturan los datos enviados en el formulario.

Figura 8: Los datos enviados en el formulario quedan grabados en panel

En este caso se ha hecho la demo con un fichero JavaScript, pero se podría realizar el mismo ataque con ficheros HTML o incluso CSS, pudiendo hacerse uso no sólo de JavaScript, sino de side-channel attacks como los contados por Mario Heiderich en Got Your Nose! How attackers steal your precious data without using scripts.

Saludos Malignos!

Entradas populares