Español | English
rss facebook linkedin Twitter

Ataques sobre el nivel 2 del modelo OSI (V): Dynamic Trunking Protocol

Dynamic Trunking Protocol (DTP) es un protocolo propietario de Cisco para establecer trunks entre switches de nivel dos. Los paquetes DTP tienen normalmente como MAC de destino 01:00:0C:CC:CC:CC y una trama IEEE 802.3 con una cabecera 802.2 SNAP. Este protocolo se encuentra disponible en muchos switches Cisco, excluyendo modelos XL. DTP se encuentra activado por defecto en los dispositivos Cisco, preparado para negociar en todos los puertos del switch. Sin embargo, es necesario saber cómo negociar DTP para establecer un trunk. La especificación DTP es propietaria de Cisco (no pública), lo cual lo hace algo más difícil. Por
tanto los autores del artículo se han visto obligados a utilizar ingeniería inversa del tráfico entre switches cuando establecen un trunk con el fin de ser lo más precisos posible con el formato DTP.

DTP negocia tanto la activación del propio trunk como el tipo de encapsulamiento utilizada para recibir y enviar tráfico por un puerto dado. El tipo más común de encapsulamiento es IEEE 802.1Q (soportada por la mayoría de los switches Cisco). Esta especificación es un estándar público. Por otro lado, también puede utilizarse ISL, el cual es otro protocolo propietario de Cisco y soportado sólo en dispositivos de alto nivel. El principal motivo de utilizar es marcar los paquetes con su correspondiente VLAN. Esto ayuda a los switches a saber por dónde enviar los paquetes.

DTP no utiliza autenticación y, como hemos mencionado anteriormente, se encuentra activado por defecto en todos los puertos. La única condición es si somos capaces de negociar DTP. Si lo somos podremos tener acceso a otras VLANs. Con el fin de aprender a negociar DTP primero es necesario conocer el formato del paquete:
  • Domain (32 bytes): Cadena ASCII igual al dominio VTP configurado
  • Status (1 byte): indica el estado del puerto: on, off, desirable or auto; por defecto: desirable – podemos empezar a negociar DTP
  • Type (1 byte): tipo de encapsulamiento soportado: ISL, 802.1Q, negotiated (ISL o 802.1Q) o native
  • Neighbor-ID (6 bytes): identifica el dispositivo que envía el paquete; normalmente: dirección MAC del puerto.
El primer paso en la negociación con dispositivos Cisco es enviar tres paquetes, uno por segundo, indicando el estado del trunk y el tipo de encapsulamiento requerido. Tras esto, se envía un paquete DTP cada 30 segundos. Yersinia implementa este comportamiento con un hilo encargado de la tarea.

Por otro lado, es necesario controlar el estado del otro dispositivo para cambiar el nuestro si fuera necesario. Esto se consigue con un bucle de recepción de paquetes DTP. Tras unos pocos chequeos, Yersinia cambia su estado DTP en función del otro dispositivo.
Estado DTP del puerto desde la consola del switch
zipi# sh dtp int Fa0/10
DTP information for FastEthernet0/10:
TOS/TAS/TNS: ACCESS/DESIRABLE/ACCESS
TOT/TAT/TNT: NATIVE/802.1Q/802.1Q
Neighbor address 1: 000000000000
Neighbor address 2: 000000000000
Gracias al trabajo realizado en Yersinia, fue posible añadir el soporte de DTP en Wireshark

Alfredo Andrés
David Barroso
S21sec e-crime

(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login