miércoles, agosto 07, 2013

Man in the Middle con Web Proxy Auto-Discovery en iPv6

La principal novedad de la versión de Evil FOCA que presenntamos en esta edición de DEF CON 21 es la implementación del ataque Web Proxy Auto-Discovery tanto en IPv4 como en IPv6, tal y como se podía ver en las diapositivas de la presentación que os dejé ayer. Además de eso, también se metió como "bonus extra" la implementación del strippeado de los resultados de Google, para que los ataques fueran más efectivos. Esta es la demo que realicé durante la presentación, paso a paso.

Descubrimiento del servidor Web Proxy Auto-Discovery

Los navegadores de Internet, por defecto, vienen configurados para buscar al servidor Web Proxy Auto-Discovery de la red mediante un registro DNS well-known llamado WPAD. Este registro es uno de los que la FOCA busca, por ejemplo, para sacar información de la red interna de una organización. Esta opción está activada en los navegadores, tal y como se puede ver en las opciones de este Internet Explorer.

Figura 1: Opción de buscar auutomáticamente la configuración de la red

Por supuesto, yo os recommiendo a todos que las quitéis si estáis en una red que no es vuestra, y si es una red gestionada por vosotros, aplicad alguna política para erradicar su activación en todos los navegadores si no hacéis uso de esto.

Este registro WPAD es buscado automáticamente por la red mediante el protocolo LLMNR, tal y como se puede ver en la siguiente imagen, tanto por IPv4 como por IPv6, pero buscando un registro tipo A, es decir IPv4.

Figura 2: Búsqueda del servidor WPAD por medio de LLMNR

La búsqueda de WPAD se hace por multicast, y en nuestro entorno, Evil FOCA captura la petición a multicast IPv6 y contesta con una dirección IPv6 en un registro AAAA, usando el mismo truco que usamos en el ataque SLAAC para pasar de A a AAAA.

Figura 3: Evil FOCA contesta con un registro AAAA

Al cliente parece que esto le deja un tanto preocupado, así que realiza una confirmación, buscando el registro WPAD por LLMNR, pero esta vez preguntando por su valor AAAA.

Figura 4: El cliente pide por LLMNR el valor de WPAD para AAAA

Para que Evil FOCA confirme que sí, que este es el servidor Web Proxy Auto-Discovery de la red y está en una dirección IPv6. Como se puede ver en la imagen, la dirección IPv6 que se usa es una dirección de vínculo local IPv6, por lo que no es necesario hacer un ataque SLAAC previamente para confgurar un gateway en IPv6.

Figura 5: Evil FOCA confirma la dirección IPv6 del WPAD

El fichero de configuración WPAD.PAC para descubrir al servidor Web Proxy

Una vez que el cliente descubre la dirección IPv6 en donde está el servidor Web Proxy Auto-Discovery, se conectará a este para conseguir la información del servidor Web Proxy de la red, que no tiene porqué ser el mismo. Es decir, el servidor Web Proxy Auto-Discovery es un servidor web donde se almacena un fichero de configuración que le dice al cliente web dónde se encuentra el servidor Web Proxy.

Figura 6: Solicitud al servidor WPAD del fichero de configuración WPAD.PAC

Este fichero de configuración se llama WPAD.PAC y es solicitado por el cliente, para que la Evil FOCA se lo entregue conn la información del lugar donde está levantado ese servidor Web Proxy.

Figura 7: Contenido de WPAD.PAC entregado por Evil FOCA con información del Web Proxy

Hay que tener en cuenta que si el cliente utiliza Google Chrome, este ataque no funcionará, ya que IPv6 viene desactivado por defecto. En ese caso se hace exactamente lo mismo, pero seleccionando en Evil FOCA el ataque WPAD en IPv4.

El ataque con Evil FOCA

Por supuesto, en Evil FOCA esto es tan sencillo como arrastrar el equipo al panel del ataque WPAD en IPv6, hacer clic en Start y Evil FOCA se encargará de interceptar la petición del registro WPAD del cliente, servirle vía web el fichero WPAD.PAC y hacer de servidor proxy HTTP, aunque vamos a confgurar la opción de usar un servidor proxy remoto para hacer algo similar a lo de la JavaScript Botnet del año pasado.

Figura 8: El ataque WPAD en IPv6 con Evil FOCA

Una vez acabada esta fase, el cliente podrá navegar por Internet, pero lo estará haciendo a través de un servidor Web Proxy en IPv6 que hará de man in the middle. Y ya que está en el medio, una de las cosas que le hemos añadido a Evil FOCA es la posibilidad de hacer SSLStrip de todos los resultados de una respuesta de Google, quitando el redirect que implanta, y cambiando los enlaces HTTP-s por enlaces HTTP.

Figura 9: Resultados de Google a través de Web Proxy en IPv6 strippeads

Por supuesto, cuando el cliente solicita una página que pide ir por HTTP-s, como la de Facebook, la herramienta Evil FOCA implementa Bridging HTTP (Pv6) / HTTP-s (IPv4), es decir, negocia con el servidor de Facebook en HTTP-s con IPv4, pero al cliente le entrega todo bajo HTTP con IPv6.

Figura 10: Facebook vista bajo HTTP(IPv6)

Esto tiene algunas implicaciones con respecto a las cookies que van marcadas como Secure, obligando a tener cuidado con la información que se envía al cliente y al servidor, pero al final, todos los datos se envían sin cifrar desde el cliente a Evil FOCA, pudiéndose robar las credenciales.

Figura 11: Credenciales de Facebook interceptadas en WireShark

Esta sermana publicaremos la versión en el blog de Eleven Paths, para que podáis testearla vosotros mismos, y en el libro de Ataques en Redes de Datos IPv4 e IPv6 tenéis más información sobre ataques man in the middle en estas redes. Las otras dos demos que realicé en la presentación las tenéis paso a paso en los artículos de Ataque SLAAC con Evil FOCA y Ataque Neighbor Advertisement Spoofing con Evil FOCA.

Saludos Malignos!

4 comentarios:

Anónimo dijo...

Como siempre, muchas gracias!
Para desactivar esta opción a nivel "masivo", por ejemplo, una empresa, se puede hacer por una GPO Preference que establezca que el servicio "Servicio de detección automática de proxy web WinHTTP", o "WinHTTP Web Proxy Auto-Discovery Service" en inglés, tenga el arranque deshabilitado en lugar de Manual (u Automático).
Con ello, aunque se marque el check no funcionaría.
Otra opción es vía registro como se comenta en muchos sitios de itnernet, pero puede ser más complicado por la entrada que es y porque es más difícil de parametrizar en según qué casos.
Una vez más, gracias!!!

53n53y dijo...

Muy interesante...lo pondre en practica para echarle un vistazo gracias chema

Unknown dijo...

"realizé" Efectos secundarios de acostumbrarse al inglés.

Anónimo dijo...

Yeah¡ ala agenda...
Gracias Chema!

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares