miércoles, febrero 29, 2012

Desactivar IPv6 y evitar ataques de red si no usas IPv6

Aunque Internet no está aún preparada al 100% para IPv6 desde hace tiempo los equipos Windows, Linux y Mac OS X vienen preparados y pre-configurados con IPv6. De hecho, la configuración por defecto en Windows 7, Mac OS X Lion y la mayoría de las distribuciones Linux es que IPv6 venga configurado por defecto. Sin embargo no son muchos los usuarios que, aún teniendo esta configuración, hagan uso de alguna aplicación o servicio sobre IPv6, al menos conscientemente.

Lo curioso es que, sin saberlo, sus equipos pueden cambiar a trabajar en modo IPv6 en cualquier momento, y a veces en el menos inesperado, haciendo que sea víctima de algún ataque de red que afecte a IPv6, como son el de envenenamiento de vecinos - algo similar al ARP-Spoofing pero con paquetes ICMPv6 spoofeados que realizan aplicaciones como insane6, parasite6 o Scapy-, a un ataque de Rogue DHCPv6 que configure un servicio de DNS o una puerta de enlace maliciosa o a un ataque de Man in the middle por medio del protocolo SLAAC.

Figura 1: Configuración por defecto de IPv6 en Windows

Ante cualquiera de esos ataques, los sistemas Windows 7, Windows Server 2008 R2 o Mac OS X, vienen vulnerables por defecto, ya que la configuración que traen es la de IPv6 activado y con configuración dinámica de direcciones IPv6 (tanto por SLAAC como por DHCPv6).

Esto además se complica cuando la prioridad en sistemas Windows es trabajar primero con IPv6 y luego con IPv4, lo que haría que un man in the middle en IPv6 afectara igualmente a la comunicación de red aunque hubiera protecciones contra man in the middle en IPv4.

Figura 2: Tabla de precedencia. IPv4 sólo si no hay IPv6 asociada a ese recurso de red

Y si esto era poco malo, resulta que ahora hay disponible un D.O.S. para Windows  - incluido Windows 8 - de 0day para las configuraciones IPv6 por defecto, haciendo uso de la configuración automática de direcciones IPv6 por SLAAC, que hace que los Windows se queden colgados sin funcionar, como puedes ver en este vídeo.


Figura 3: Vídeo de la demostración del flood de paquetes RA

¿En qué consiste el ataque?

SLAAC (StateLess Address Automatic Configuration) es un protocolo de configuración de direcciones IPv6 mendiante mensajes enviados desde el router de conexión, y no desde un servidor DHCPv6. La idea es que un equipo con una dirección IPv6 de vínculo local no puede enrutar su tráfico si no tiene una dirección IPv6 de sitio o global, y es por eso que los routers envían mensajes RA (Router Advertisement) diciéndole a los equipos cómo configurase para tener conectividad a través de ellos.

Figura 4: Configuración masiva de direcciones IPv6 por SLAAC
Como en una red puede haber muchos routers de conexión, los clientes IPv6 de Windows permiten configurarse tantas direcciones como paquetes RA vengan de diferentes routers, y esto es lo que han aprovechado para hacer un flood de mensajes RA que obligue a un equipo Windows a configurarse direcciones IPv6 hasta morir.

Figura 5: IPv6 en un adaptador de red en Windows 7

Para evitar este ataque en concreto, basta con bloquear el descubrimiento de routers por SLAAC en IPv6, con un comando como:
netsh interface ipv6 set interface "Nombre NIC" routerdiscovery=disabled 
Esto evitaría el ataque mitm SLACC, y el D.O.S. de flood RA, pero en IPv6 aún te tendrías que preocupar por el envenenamiento de vecinos que funcionen por direcciones IPv6 de vínculo local y los Rogue DHCP6, así que, si no vas a usar IPv6, tal vez sea una buena idea inhabilitarlo.

En Windows es fácil desinstalarlo, basta con que deselecciones el  protocolo en el adaptador. Para los de Mac OS X es un pelín más enrevesado, pero no tanto, así que os hemos dejado en Seguridad Apple cómo deshabilitar IPv6 en Mac OS X. Así que, si vas a una conferencia de hackers estos días, ten cuidado con tu IPv6.

Saludos Malignos!

Nota: Deshabilitar IPv6 en Small Business Server hace que Exchange no levante, y os lo cuento como experiencia personal... así que hay que buscar otras alternativas en estos entornos.

***************************************************************************************************
- 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. Y si queremos deshabilitar enteramente el IPV6, a nivelde registro:
    http://support.microsoft.com/kb/929852
    Un saludo y gracias por compartir el conocimiento :-)

    ResponderEliminar
  2. para deshabilitarlo en linux:

    Añadir /etc/sysctl.conf -->

    net.ipv6.conf.eth0.autoconf=0
    net.ipv6.conf.eth1.autoconf=0
    net.ipv6.conf.all.autoconf=0
    net.ipv6.conf.default.autoconf=0

    ejecutar comando sysctl -p

    ResponderEliminar
  3. networksetup -setv6off Ethernet
    networksetup -setv6off Wi-Fi

    Para OSX

    ResponderEliminar