Buenas a todos, en el post de hoy me gustaría iniciar una nueva cadena de varios artículos para hablaros sobre los ataques MITM en redes de datos IPv6. Esta cadena la iremos alargando en función de las inquietudes que nos vayáis transmitiendo o ideas que queráis ir compartiendo con nosotros.
¿Por qué una cadena sobre IPv6 y MITM? Sobretodo cuando se trata de un protocolo que lleva más de 20 años con nosotros... Pues la respuesta es sencilla, y se puede responder con otra pregunta, ¿cuántos administradores de sistemas de cualquier organización dominan IPv6? ¿Un 20%-30%? quizás... ¡y siendo generosos! Esto quiere decir que si los ataques de envenenamiento ARP y los MITM en IPv4 siguen siendo un éxito en muchas de las revisiones de hacking ético que realizamos los pentesters en nuestro trabajo diario, imaginaros en IPv6, que se encuentra configurado en infinidad de organizaciones sin que el personal de sistemas se haya percatado de tal hecho.
Para la realización de los ataques MITM en IPv6 primero tendremos que familiarizarnos con el propio protocolo. La diferencia principal que encontraremos frente a IPv4 es que ahora tenemos direcciones IP de 128 bits, separadas en 8 grupos de 16 bits escritos en hexadecimal. Un ejemplo de dirección podría ser la siguiente:
Al igual que en IPv4 se aplicaban reducciones de los ceros, como por ejemplo "192.168.001.001" > "192.168.1.1", en IPv6 se pueden aplicar reducciones de la siguiente forma "fe80:defe:0000:0000:0000:0000:0000:ca10" > "fe80:defe::ca10", eliminando los grupos de 0 consecutivos por "::".
Por otro lado, en IPv6 desaparece la máscara de red, apareciendo un nuevo sistema que cumple la misma labor, denominado "prefijo" o "prefijo de subred", con la que podremos hacer subnetting y supernetting.
En lo referente a la puerta de enlace, se sigue manteniendo al igual que en IPv4, tal y como se puede ver en la imagen anterior.
Además, ARP deja de existir en IPv6, y en su lugar nos encontramos con el protocolo NDP, siglas de Neighbor Discovery Protocol. Dentro de NDP nos encontramos, entre otros, con los mensajes NS que son los que hacen referencia a las peticiones de resolución de una dirección MAC asociada a IPv6, y los mensajes NA para la contestación con la MAC buscada. Por ello, ya no disponemos de la típica tabla ARP que consultábamos en Windows con el comando "arp -a":
Ahora nos encontramos con una tabla de vecinos, que podemos consultar con el comando "netsh interface ipv6 show neighbor":
¿Sencillo hasta aquí verdad?
Vamos a realizar un ejemplo sencillo para verificar que tengamos IPv6 configurado y podamos lanzar nuestro primer ataque MITM. En primer lugar vamos a levantar dos máquinas con Windows, en mi caso he optado por Windows 7. A continuación haremos un ipconfig con el fin de ver si se encuentra activo IPv6. Si está todo ok, veremos una dirección de enlace local del tipo "fe80::/64" (https://es.wikipedia.org/wiki/Direcci%C3%B3n_de_Enlace-Local). El siguiente paso consistirá en hacer ping de una máquina a la otra con el parámetro "-a", con el fin de ver cual es el nombre asociado a la máquina destino y una vez lo conozcamos, hacer un ping directamente al nombre de netbios. Si IPv6 se encuentra configurado y no nos encontramos algún FQDN (https://es.wikipedia.org/wiki/FQDN) típico de redes corporativas, veremos que ha contestado el equipo de destino desde la dirección de IPv6.
Bien, tras esta introducción básica y exprés, ya estamos en disposición de iniciarnos en el mundo de los MITM en IPv6, pero eso será en el próximo post. Por lo que podéis aprovechar esta semana para trabajar con IPv6, arrancando Wireshark y comenzando a sniffar algo de tráfico para analizar el contenido de las comunicaciones y estudiar paquetes como ICMPv6, frente al ICMP tradicional de IPv4, para comenzar a entender los entresijos del protocolo.
Saludos!