Ésta es la segunda entrada de una serie de artículos que tratan de ser un estudio práctico sobre ataques de Hacking en entornos LAN sobre el protocolo IPv6.

————————————————————————
# Hacking IPv6 I – Breve introducción al protocolo IPv6
# Hacking IPv6 II – Interceptación de tráfico mediante envenenamiento de caché (MITM) – (1ª parte)
# Hacking IPv6 III – Interceptación de tráfico mediante envenenamiento de caché (MITM) – (2ª parte)
# Hacking IPv6 IV – Redirección de tráfico IPv6 mediante el uso de mensajes Router Advertisment(RA)
# Hacking IPv6 V- DoS mediante mensajes Neighbor Solicitation (NS)
# Hacking IPv6 VI – Conclusiones
————————————————————————

En el primer artículo de la serie estuvimos viendo algunos conceptos básicos sobre el protocolo IPv6, necesarios para entender el resto de entregas.

Recordemos que estos artículos no pretenden ser un estudio en profundidad sobre ataques en entornos IPv6. Simplemente intentan ser un primer acercamiento a este nuevo protocolo que todavía resulta ser un gran desconocido para mucha gente. El enfoque de estos artículos es principalmente didáctico para ayudar a entender y aclarar algunos conceptos sobre IPv6.

En este artículo entraremos de lleno sobre el primero de los ataques que veremos a lo largo de las distintas entregas. Este ataque consiste en un ataque de envenenamiento de caché mediante mensajes ICMPv6.

IPv6 es un protocolo de capa 3 del modelo OSI que llegó hace algún tiempo y se presenta como la alternativa a IPv4. En entornos IPv4, cualquier dispositivo que se conecte una red Ethernet, y que desee comunicarse con otro dispositivo de la red, necesita conocer al menos, su dirección de capa de enlace (o dirección MAC).

Los ataques de envenenamiento de caché, consisten en hacer creer a una víctima que la dirección de capa de enlace de un determinado dispositivo de la red, es otra distinta de la que realmente es. El ataque más conocido es el ataque MITM, que conlleva que un atacante pueda interceptar las comunicaciones entre dos dispositivos.

En IPv4, los ataques MITM se realizan mediante mensajes ARP especialmente manipulados. En IPv6, estos ataques se realizan empleando mensajes ICMPv6.

Veamos cómo utilizar ICMPv6 para la ejecución de estos ataques. En condiciones normales, cuando un dispositivo A desea comunicarse con otro dispositivo B,  lo primero que debe hacer A es enviar a la red (a una determinada dirección multicast), un mensaje ICMPv6 de tipo “Neighbor Solicitation” preguntando por dirección MAC de B. Acto seguido, B contestará con un mensaje “Neighbor Advertisment” incluyendo en su contenido su dirección MAC de capa de enlace. El dispositivo A guardará en su propia caché esta información durante un tiempo, y la utilizará para construir en adelante los paquetes en Capa 2 que vayan dirigidos a B.

Los ataques de tipo MITM en entornos IPv6, se basan en enviar cada cierto tiempo mensajes de tipo “Nieghbor Advertisment” con información especialmente manipulada hacia las víctimas. El fin último del envío de estos mensajes, es introducir información maliciosa en la caché de las víctimas. De esta forma, las víctimas enviarán sin saberlo el tráfico hacia el atacante.

Después de esta breve introducción teórica sobre los ataques de envenenamiento de caché, pasemos a la parte práctica.

  • El entorno sobre el que realizaremos el ataque es el siguiente.

El objetivo del ataque consistirá en interceptar las comunicaciones entre la víctima Windows y el servidor Web Apache.

La red configurada en el entorno de pruebas es 2001::0/64. Más sencilla imposible 😉

Para esta prueba se ha configurado un servidor Apache escuchando en la dirección IPv6 2001::1.

Los mensajes ICMPv6 que enviará el atacante se generan con Scapy. Actualmente existen herramientas que facilitan la ejecución de este tipo de ataques, pero con Scapy veremos más claramente el contenido de estos paquetes.

  • Paquetes enviados hacia la víctima Windows.

  • Paquetes enviados hacia el servidor Web.

Una vez que el atacante comienza a enviar los paquetes en ambos sentidos, veamos cómo cambia el estado de las cachés de la víctima y del servidor Web.

  • El estado inicial de las cachés antes de ejecutar el ataque sería el siguiente.

  • Una vez ejecutado el ataque, el contenido de la caché de las víctimas cambia almacenando la dirección MAC del atacante.

A partir de ese momento, el atacante ya se encuentra interceptando el tráfico entre la víctima Windows y el servidor Web. Para que el tráfico llegue desde la víctima Windows hasta el servidor Web, el atacante tiene que hacer forwarding de los paquetes interceptados.

Esto se consigue en sistemas GNU/Linux editando el fichero /etc/sysctl.conf y descomentando la línea: net.ipv6.conf.all.fordwarding. Para que el cambio surta efecto se debe ejecutar el comando sysctl-p :

Comprobamos que efectivamente interceptamos el tráfico web desde la máquina del atacante.

Los paquetes duplicados que se observan en la captura anterior, son:

1. Paquete que va desde el servidor web hasta el atacante

2. Paquete que va desde el atacante hasta la víctima.

Por este motivo, Wireshark interpreta que hay paquetes duplicados y los muestra como “TCP Out-Of-Order“.

En la siguiente entrega veremos, junto con otros aspectos de seguridad relacionados con este tipo de ataques, por qué desde la máquina atacante se envían mensajes ICMPv6 de tipo Redirect mientras se está ejecutando el ataque.