domingo, abril 29, 2012

Man in the Middle en redes IPv4 por medio de IPv6

En la última sesión del viernes en el SOCtano, estuvimos definiendo los ataques que va a incorporar la herramienta Evil FOCA, y entre ellos, estuvimos hablando de cómo conseguir enrutar tráfico IPv4 a través de un ataque Man in the middle IPv6. Para ello, el primer punto es deshabilitar el protocolo IPv4 y conseguir que el algoritmo de precedencia haga el resto  se reenvíe el tráfico por la conexión IPv6

¿Cómo conseguir pasar el tráfico a IPv6?

El problema inicial se da cuando la conexión desde el cliente se hace contra una dirección de Internet IPv4, por lo que la conexión se va a hacer por IPv4 buscando el gateway, que también está en IPv4, por lo cual nuestro ataque man in the middle IPv6 no conseguirá capturar el tráfico.

Paso 1: Anular IPv4

El primer paso consiste en desactivar el tráfico IPv4 de la ecuación, para lo que, si el cliente no tiene ninguna protección tipo Marmita o PatriotNG, bastará con enviar un paquete ARP que configure una dirección MAC falsa a la dirección IP del gateway en el cliente. Esto, si todo va bien, dejará al equipo sin conectividad con el gateway, lo que le hará al sistema evaluar la posibilidad de IPv6

Paso 2: Configurar IPv6 en el cliente con Rogue DHCPv6

En segundo lugar habrá que establecer en el cliente una configuración IPv6 que nos sea de utilidad. Si tenemos un servidor Rogue DHCPv6 podremos hacer que el cliente obtenga todo lo necesario de este esquema de ataque:
- Una dirección IPv6 válida
- Una dirección IPv6 de un gateway para la red IPv6
- Las direcciones de los servidores DNSv6
Figura 1: DHCPv6 en Windows Server 2008
Para hacer esto, cualquier servidor Windows Server 2008 o Windows Server 2008 R2 nos permitirá configurar un servidor DHCP para IPv6 y preparar toda la configuración en el equipo víctima para hacer el ataque. Cómo configurar esto se explica en el libro "Ataques de Redes de Datos IPv4 e IPv6"

Paso 3: Configurar IPv6 en el cliente con SLAAC e IPv6 DNS AutoDiscovery 

Otra alternativa sería usar el servicio SLAAC (Stateless Address Auto Configurator) para poder configurar la dirección IPv6 y la dirección del gateway, para que el tráfico IPv6 sea enviado a la máquina del atacante. Sin embargo, el protocolo SLAAC no permite configurar valores como los servidores DNS, algo que complica mucho el esquema si el usuario se conecta a Internet usando nombres de dominios, y el servidor DNS está anulado - tras anular la red IPv4 -

Sin embargo, uno de los servicios de IPv6 que está implementado en las máquinas Windows - no he probado en Linux aún, pero supongo que será similar - es el servicio IPv6 DNS Autodiscovery, propuesto por el Network Working Group del IETF, por el que se realizan peticiones IPv6 a tres direcciones IPv6 fijas para encontrar servidores DNS en la red IPv6.

Figura 2: Ping a un dominio no existente desde un equipo con IPv4 anulado

Para probar esto, basta con hacer un ping a un nombre en la red IPv6 e interceptar el tráfico en el gateway, para ver cómo, en una máquina en la que está anulado IPv4, se lanzan peticiones DNS a las direcciones IPv6 fijas y reservadas, aunque no están configuradas en el cliente.

Figura 3: Peticiones DNS a servidores IPv6 fijados

Las direcciones que se utilizan son las que se ven en la siguiente captura de pantalla, por lo que si se quiere hacer el ataque habría que spoofear esas direcciones para que apunten a la/s maquina/s del atacante. Por supuesto, el documento del IETF se habla en la última sección de las implicaciones de seguridad que puede haber en una red en la que no se haga uso de técnicas para autenticar de manera robusta las direcciones IPv6.

Paso 4: Enrutar el tráfico IPv6 a IPv4 e IPv4 a IPv6

Para lograr que el cliente envíe todo su tráfico con IPv6, tenemos que lograr que toda la resolución de direcciones se haga en formato IPv6, así que hay que contar un servicio DNS64, es decir, un servidor DNS que escuche por IPv6, solicite las queries recursivas por IPv4 y devuelva las respuestas en formato de direcciones IPv4 sobre IPv6.

Figura 4: Esquema de enrutamiento de tráfico IPv4 a IPv6 controlando DNS y Gateway en IPv6

Esto, como se muestra en el esquema hará que las direcciones de servidores IPv4 tengan formato IPv6 y se envíen al gateway IPv6, donde el atacante deberá configurar un servicio NAT64 para enrutar el tráfico por Internet - a través del router IPv4 de la propia red -.

Puedes conocer más sobre esquemas de ataques en red en el libro Ataques en Redes de datos IPv4 e IPv6, y, por supuesto, todo esto se podrá implementar con nuestra querida Evil FOCA.

Saludos Malignos!

***************************************************************************************************
- Hacking en redes de datos IPv6: Conceptos básicos IPv6 (1)
- Hacking en redes de datos IPv6: Conceptos básicos IPv6 (2)
- Hacking en redes de datos IPv6: Te hackearán por IPv6 por pensar que no lo usas
- Hacking en redes de datos IPv6: Neighbor Spoofing
- Hacking en redes de datos IPv6: Captura de SMB con Neighbor Spoofing
- Hacking en redes de datos IPv6: FC00::1 (Algunos) Ataques en redes de datos
- Hacking en redes de datos IPv6: Man in the middle en redes IPv4 usando IPv6
- Hacking en redes de datos IPv6: Desactivar IPv6 para evitar D.O.S. SLAAC
- Hacking en redes de datos IPv6: Topera - Scanner de puertos sobre IPv6
- Hacking en redes de datos IPv6: Predecir direcciones IPv6 Local-Link de OS X
- Hacking en redes de datos IPv6: Ataques en redes de datos IPv 4 e IPv6 ***************************************************************************************************

3 comentarios:

  1. Jajaja le das al cliente su propio encapsulado tipo TEREDO, para que no se queje XD.
    En las nuevas implementaciones tipo Direct Access se hace algo similar para aprovechar las ventajas de Ipv6 sobre seguridad, con lo que ademas podrias evitar analisis del trafico a un ips/ids.

    ResponderEliminar