Una de las preguntas que debes realizarte es: "si en mi equipo tengo instalado IPv4 e IPv6 por defecto, ¿qué protocolo va a utilizar el sistema operativo? En este apartado vamos a responder a esa pregunta y a cómo se resuelven las direcciones de los integrantes de la comunicación.
Precedencia de protocolos
En los entornos actuales, lo más probable es que el protocolo
IPv6 conviva junto con el protocolo
IPv4 - y puede que incluso algún otro - así que el sistema operativo deberá elegir ente
IPv4 según algunas normas. Estas normas se definen mediante un algoritmo de precedencia definido en el
RFC 3484 y en el más reciente de Septiembre de 2012
RFC 6724, titulado
"Default Address Selection for Internet Protocol version 6 (IPv6)" en el que se explica cuáles son las normas para elegir
IPv6 o
IPv4 en un entorno mixto.
|
Figura 5: RFC 6724 |
El documento explica dos algoritmos basados en la dirección de origen y la dirección de destino para elegir un protocolo u otro. Estos algoritmos tienen en cuenta cosas como la existencia o no de puertas de enlace, ya que puede que el origen sea una dirección IPv4, el destino sea una dirección IPv4, pero esta se encuentra en otra red y sólo existe una puerta de enlace para IPv6, por lo que se podría elegir un encapsulado de direcciones IPv4 sobre IPv6 para poder enrutar el tráfico.
En un sistema Microsoft Windows se puede consultar esta configuración en todo momento por medio del comando netsh interface ipv6 show prefix, donde se mostrará por pantalla una tabla de prioridades con valores similares a la que se puede ver a continuación.
|
Figura 6: Tabla de precedencia por defecto en un Microsoft Windows 7 |
El algoritmo de precedencia da prioridad a IPv6 sobre IPv4 si es posible establecer una comunicación con este protocolo, pero en cualquier momento se puede modificar este comportamiento haciendo uso de los siguientes comandos netsh.
netsh interface ipv6 show prefixpolicies: Muestra la tabla local de políticas
netsh interface ipv6 add prefixpolicies:
Añade nuevas entradas a la tabla
netsh interface ipv6 set prefixpolicies:
Configura entradas en la tabla
netsh interface ipv6 delete prefixpolicies:
Borra entradas en la tabla
Ejemplo:
netsh interface ipv6 set prefixpolicies prefix=2001::/32 precedence=15 label=5
Además, este comportamiento no interfiere para nada en la elección que haya realizado anteriormente una aplicación o un usuario de forma explícita, por lo que solo es una regla de comportamiento para cuando no se ha establecido una restricción previa.
Descubrimiento de vecinos con Neighbor Discovery Protocol
Para descubrir los vecinos de una red IPv6 no existe el protocolo ARP o RARP, y todo se basa en mensajes ICMPv6. El protocolo para descubrimiento de vecinos se llama Neighbor Discovery Protocol e implementa 5 tipos de mensajes distintos. De ellos, los equivalentes a ARP serían los mensajes Neighbor Solicitation (NS), donde se pide la resolución de una dirección MAC asociada a una dirección IPv6 y Neighbor Advertisement (NA), donde se contesta con la dirección MAC de la dirección IPv6 buscada.
Lo normal es que estos mensajes sean enviados a una dirección multicast y que conteste el vecino que tenga la dirección IPv6 que se busca, pero también pueden ser mensajes unicast enviados a una dirección concreta a la que se interroga.
|
Figura 7: Descubrimiento de vecinos con mensaje NS multicast y respuesta unicast NA |
Todas las direcciones MAC asociadas a direcciones IPv6 quedarán almacenadas en una Tabla de vecinos que puede ser consultada con el comando netsh interface ipv6 show neighbor.
|
Figura 8: Tabla de vecinos en iPv6 |
Como os podréis imaginar ya, estos mensajes tendrán una gran importancia en varios de los ataques que vamos a describir en IPv6 de D.O.S. y Man in the middle.
Resolución de nombres a direcciones IP en ámbito local
En el caso de los sistemas
Microsoft Windows, cuando se realiza la resolución de nombres, para poder funcionar con
IPv4 e
IPv6 se incluyó el protocolo
LLMNR (
Link-Local Multicast Name Resolution), descrito en el
RFC 4795, un protocolo que utilizando
multicast permite resolver las direcciones
IPv4 y/o
IPv6 asociadas a un nombre de dominio. Este sistema permite realizar búsquedas locales o mediante el uso de resolución de registros
A y/o
AAAA con un servidor
DNS.
|
Figura 9: Resolución de srv por LLMNR usando multicast IPv6, IPv4 y DNS |
Utilizando la resolución de nombres con LLMNR, la búsqueda de direcciones MAC de vecinos con NDP y a la tabla de precedencia, los sistemas Microsoft Windows construyen la comunicación entre equipos con IPv6.
Configuración de equipos IPv6 en la red
Para configurar el protocolo
IPv6 de los equipos de una red existen diferentes alternativas. La primera de ellas sería realizar una
Configuración Estática o manual, en la que se configuran la dirección
IPv6, la
Puerta de enlace y los servidores
DNS de forma individual y manual - o mediante un script - en cada equipo.
La segunda forma de configurar es utilizar un servidor
DHCPv6 para configurar todas las propiedades
IPv6 de los equipos de un ámbito de red
IPv6. Estos servidores
DHCPv6 están soportados en los servidores
Windows Server 2008, Windows Server 2008 R2 y
Windows Server 2012. Al igual que se hacía en
IPv4 se pueden configurar dirección
IPv6, prefijo de red - o máscara -, puerta de enlace por defecto o servidores
DNS a utilizar.
|
Figura 10: Servidor DHCPv6 en Windows Server 2008. Configuración de DNS |
La tercera forma de configurar equipos en la red es mediante el protocolo
Neighbor Discovery Protocol y los mensajes
RS (Router Solicitation),
RA (Router Advertisiment) y
Redirect, junto con el funcionamiento
SLAAC (Stateless Address Auto Configurator) de los equipos. La idea es que un equipo puede conectarse automaticamente en una red con
IPv6 si conoce algún router de conexión. Para ello, el equipo realiza una petición
RS en busca de una puerta de enlace.
Todos los routers de la red le contestarán con un
RA dándole a
SLAAC la información necesaria para que el equipo se autoconfigure una dirección
IPv6 que le permita tener conectividad a través del router. Si hay más de un router en la red, y el equipo elige un router como primer salto erróneo, este le contestará con un mensaje
NDP de tipo
Redirect informándole de cuál es la mejor ruta, para que actualice su tabla de enrutamiento.
Por supuesto, tanto
DHCPv6 y
SLAAC van a poder ser utilizados para realizar ataques
D.O.S. y
Man in the middle en las redes
IPv6, como veremos más adelante, con esquemas de
Rogue DHCPv6 Servers o
Rogue Routers.
DNS Autodiscovery
Cuando un equipo se conecta a la red
IPv6 a través de una configuración
SLAAC existe el problema de que no se pueden configurar los servidores
DNS y todas las peticiones de resolución se reducen a
LLMNR de tipo difusión en busca de posibles servidores en la red de vínculo local. Sin embargo, si el servidor fuera externo es necesario contar con un servicio de resolución de nombres
DNS en la red
IPv6. Para ello, cuando no se configura ningún servidor, los equipos
Microsoft Windows buscan automáticamente tres direcciones
IPv6 establecidas por el estándar
IPv6 DNS Autodiscovery.
|
Figura 11: Direcciones IPv6 de los DNS Autodiscovery |
Si una empresa no quiere usar
DHCPv6, puede configurar un
DNS en una de esas direcciones
IPv6 y junto con un router
IPv6 enviando mensajes
RA para que los clientes se autoconfiguren, podrá tener la red funcionando.
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
***************************************************************************************************