jueves, 9 de agosto de 2012

Model OSI atacks - 6ª Parte - 802.1Q

El protocolo IEEE 802.1Q es una especificación pública. Describe el formato de los paquetes que pasan por enlaces de trunking. Debido a la naturaleza abierta de la especificación, este estándar se encuentra ahora aceptado por la mayoría de los fabricantes y es la manera común de establecer trunks entre switches de distintos fabricantes. Sin embargo, no es el único protocolo. Algunos fabricantes tiene su propia solución. Por ejemplo, Cisco usa su protocolo propietario ISL (Inter-Switch Link).

Cuándo un switch recibe una trama, añade una marca 802.1Q (4 bytes), recalcula el FCS (Frame Check Sequence) y envía la trama original con las modificaciones por el enlace de trunking. El campo VID identifica la VLAN a la que pertenece el paquete. Este identificador puede variar entre 0 y 4096. Teóricamente, si hemos establecido el trunking y el switch soporta 802.1Q, podremos enviar paquetes a VLANs distintas.

  
Para utilizar 802.1Q es obligatorio tener establecido un trunk. En la sección anterior hemos visto con DTP y, además, especificar el encapsulamiento que se llevará a cabo con 802.1Q. Supongamos, entonces, que el enlace de trunk ha sido establecido en el puerto correspondiente. Los ataques contra 802.1Q pueden dividirse en dos clases:
  • enviar tramas 802.1Q con el fin de enviarlas a VLANs no pertenecientes al atacante,
  • uso de tramas 802.1Q doblemente encapsuladas – este tipo de ataque añade dos marcas al paquete original con el propósito de utilizar la VLAN de la segunda marca como destino, una vez que el switch ha eliminado la primera marca.
Intentemos primero enviar tramas 802.1Q doblemente encapsuladas con Yersinia. En la pantalla de 802.1Q, rellenamos los campos con valores por defecto (tecla [d]) y vamos al modo edición (tecla [e]). Ahora cambiamos el campo Source MAC con el valor 66:66:66:66:66:66, seguidamente cambiamos el campo VLAN con el valor 16 y VLAN2 con el valor 1. Finalmente, salgamos del modo editor ([return]). Ahora vamos a la ventana de ataques con [x], y elegimos el ataque sending 802.1Q double enc. packet.

Yersinia usa 802.1Q para enviar paquetes ICMP Echo Request con el payload YERSINIA. Se puede apreciar perfectamente que hemos enviado un paquete 802.1Q doblemente encapsulado – primero con la VLAN 16 y finalmente con la VLAN 1.

Paquete ICMP Echo Request de Yersinia decodificado con Ethereal
Ethernet II, Src: 66:66:66:66:66:66, Dst: ff:ff:ff:ff:ff:ff
 Destination: ff:ff:ff:ff:ff:ff (ff:ff:ff:ff:ff:ff)
 Source: 66:66:66:66:66:66 (66:66:66:66:66:66)
 Type: 802.1Q Virtual LAN (0x8100)
802.1q Virtual LAN
 111. .... .... .... = Priority: 7
 ...0 .... .... .... = CFI: 0
 .... 0000 0001 0000 = ID: 16
 Type: 802.1Q Virtual LAN (0x8100)
802.1q Virtual LAN
 111. .... .... .... = Priority: 7
 ...0 .... .... .... = CFI: 0
 .... 0000 0000 0001 = ID: 1
 Type: IP (0x0800)
Internet Protocol, Src Addr: 10.0.0.1 (10.0.0.1), Dst Addr: 255.255.255.255 (255.255.255.255)
 Protocol: ICMP (0x01)
 Source: 10.0.0.1 (10.0.0.1)
 Destination: 255.255.255.255 (255.255.255.255)
Internet Control Message Protocol
 Type: 8 (Echo (ping) request)
 Checksum: 0xb953 (correct)
 Identifier: 0x0042
 Sequence number: 00:42
 Data (8 bytes)
0000  59 45 52 53 49 4e 49 41                           YERSINIA 

Este ataque sólo demuestra que podemos inyectar tráfico a otras VLANs (esto es conocido como VLAN-hopping). Sin embargo se pueden realizar ataques más sofisticados, tipo Man-in-the-Middle. 


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.