jueves, 14 de enero de 2010

BeEF: XSS impact tool

La herraminta BeEF está realizada por la gente de Bindshell y permite recolectar zombies y lanzarle una gran diversidad de ataques a través de codigo script como pasarela; todo esto de una manera sencilla y rápida.Vamos a ver qué aspecto tiene, qué módulos incorpora y un escenario de ataque con video incluído que podréis ver abajo.

Cuadro de mando del atacante

BeEF ofrece un cuadro de mando con la siguiente estructura:



1. Frame donde se visualiza a los zombies cuando se conecta y permite seleccionarlos para lanzarles los ataques. Se observa tambien la posibilidad de activar el Autorun, lo que hace que una vez que un zombie se conecta a la página con el script lanzarle una acción de manera automática.

2. Zona donde veremos diferentes datos del zombie, todo lo que teclea sobre la página donde ha lanzado el ataque, el resultado de ciertos módulos, el código fuente de página etc.

3. Frame para ver el log de todo la interacción con los zombies.

4. Menús desplegabes donde encontraremos los modulos de detección, modulos de explotación, modulos de red, etc.

¿Qué puede hacer el atacante con BeEF?



Los modulos de BeEF los podríamos dividir en módulos de detección donde el atacante puede averiguar mas datos sobre la víctima, modulos de red donde podríamos destacar la posibilidad de escanear la red interna del zombie a través de BeEF y módulos de ataque al navegador donde encontraremos exploits sobre diferentes versiones de navegadores entre otros.

¿Cómo funciona BeEF? (posible escenario de ataque)



1. Un atacante encuentra una vulnerabilidad de Cross-Site Scripting Almacenado en la página www.victima.com. El atacante introduce un script que hace referencia a beefmagic-js.php que esta alojado en www.evil.com y es el primer paso para la comunicación que se va a producir entre entre la víctima y el cuadro de mando de BeEF en www.evil.com.



2. La víctima como cualquier otro día visita la web www.victima.com.

3. La víctima recibe la página que incluye el regalito (script que apunta a beefmagic-js.php) que hace referencia al dominio www.evil.com.

4. La víctima de manera inconsciente accede a www.evil.com.

5. La víctima de manera constante solicita trabajo (por describirlo de alguna manera) para hacer mediante peticiones GET. Todo esto mientras se mantenga en la página vulnerable.

6. El atacante envía acciones a realizar sobre la víctima.

7. La víctima devuelve el resultado de la acción solicitada.

Hace cosa de un mes y medio tuve la oportunidad de explicar esto mismo en unas conferencias, así que os dejo el enlace a las slides y al video de la demo, donde espero que quede aún mas claro el impacto que puede tener un XSS con herramientas como BeEF y mostrar que no solo tienen impacto para la imagen como ha sido el caso reciente del XSS reflejado en la página de la presidencia Europea y que podéis leer en detalle en SecuritybyDefault.

Conclusión

Lo que podemos ver con esta entrada es lo que un atacante podría realizar con un XSS y la herramienta BeEF sobre usuarios que visitan una web vulnerable. Por tanto queda patente el impacto que tiene un XSS sobre los usuarios finales y la responsabilidad que tienen los que ponen en un producción una aplicación web frente a sus usuarios.

6 comentarios :

dalvarez_s dijo...

Buena demo!

Buscando inurl:beefmagic-js.php en google sólo aparece un resultado... menos mal, aunque si alguién lo está usando no creo que mantenga el nombre del fichero.

Ese resultado no parece que sea una infección porque la web no tiene más archivos que el beefmagic-js.

José Miguel Holguín dijo...

Tenía pendiente justo la búsqueda que comentas para ver quien estaba infectado. Se me acaba de ocurrir otras búsquedas interesantes como:
inurl:"beef/hook"

La verdad es que sale alguna cosa que podría por lo menos investigarse.

Gracias por el comentario!!! LOLZ

Jose Selvi dijo...

Hola @dalvarez_s, con la query que dices quieres buscar servidores beef, no? El que quiera usarlo para fines "malignos" o bien le habrá cambiado el nombre o bien no lo habrá enlazado desde ningún sitio, osea que es difícil que Google lo cachee.

Yo lo uso para las auditorías y lo tengo en un servidor web al que accedo por IP y que bajo y subo conforme me conviene, así que tampoco creo que salga indexado.

Lo que sí que sería interesante sería una búsqueda en google para ver cuantos enlaces hay a .js.php's ;)

A ver si tengo un rato y Googleo a ver cuantas webs han sido infectadas por XSS persistente que apunten a un BeeF :)

balance dijo...

Se que es un post viejo, pero mi pregunta es, si uno quiere hacer un sitio falso, donde la gente ingresa, donde seria el mejor lugar para poner el script para infectarlo

plot dijo...

si que se inventan cosas, estoy seguro que los que hacen esto, siempre van un paso adelante, genios que tienen un poco de maldad.

Jose Selvi dijo...

@balance: En cualquier sitio donde se vaya a ejecutar al cargar la página.

@plot: Todas las cosas se le ocurren primero a una persona. Si esa persona es un atacante, pues en eso van por delante, y si es un investigador, pues somos nosotros los que vamos por delante. En general yo diría que van ellos, porque de cada "victoria" pueden llegar a sacar mucho dinero, y eso les da mucho tiempo para dedicar a investigar.