Cisco Discovery Protocol (CDP) es un protocolo propietario de Cisco,
el cual permite comunicarse entre sí a diferentes dispositivos de red.
Sin embargo, otros fabricantes pueden utilizar CDP si compran la
tecnología (por ejemplo Hewlett-Packard). La manera más sencilla de
identificar un paquete CDP es mirando las siguientes características: un
paquete IEEE 802.3 con una cabecera 802.2 SNAP y la MAC destino de
multicast 01:00:0C:CC:CC:CC.
Un paquete CDP siempre contiene información interesante sobre las propiedades del dispositivo que envía el paquete. Esta información puede contener por ejemplo:
Un paquete CDP siempre contiene información interesante sobre las propiedades del dispositivo que envía el paquete. Esta información puede contener por ejemplo:
- nombre del dispositivo
- modelo
- versión de IOS
- dirección IP (puede contener más de una)
- dominio VTP
- características (switch, router, bridge etc)
No se utiliza autenticación al enviar o recibir paquetes CDP. Los datos se envían en texto plano. Esto hace que realizar ataques sea muy sencillo. Además, el formato de los paquetes CDP se encuentra explicado en el website de Cisco. Un paquete CDP se compone de los siguientes campos:

- Version (1 byte): indica la versión de CDP, normalmente es uno o dos
- TTL (1 byte) – Time To Live: Tiempo de vigencia del paquete CDP
- Checksum (2 bytes): verifica si el paquete está correcto
- TLV (variable length) – Series Type, Length, Value. Este es el campo que contiene los datos, éstos se encuentran representados por una lista de grupos TLV, cada TLV con el siguiente formato: Type (2 bytes) – tipo de datos (por ejemplo Device ID, Address, Port ID), Length (2 bytes) – longitud del TLV y Value (longitud variable) – el valor
Si estamos conectados a una red que contiene dispositivos con CDP, el GUI mostrará los modos CDP de los dichos dispositivos. El primer ataque CDP se basa en la vulnerabilidad mencionada anteriormente. Para ello no se necesita información adicional. En el GUI de Yersinia, en modo CDP, teclea [x] y elige el ataque flooding CDP table.
Resultado del ataque DoS a CDP
# show cdp neighbours
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID Local Intrfce Holdtme Capability Platform Port ID
2EEEWWW Gig 0/1 253 yersinia Eth 0
ZCCCUU9 Gig 0/1 250 T S I r yersinia Eth 0
J222FFX Gig 0/1 249 R T yersinia Eth 0
WAAASS6 Gig 0/1 240 R B I r yersinia Eth 0
2IIWWWE Gig 0/1 249 T B H I yersinia Eth 0
K333FFX Gig 0/1 234 R T yersinia Eth 0
TBBBOO7 Gig 0/1 252 B H r yersinia Eth 0
3KKYKYY Gig 0/1 250 R B H yersinia Eth 0
TBBBPP7 Gig 0/1 252 S H I r yersinia Eth 0
Resultado del ataque DoS a CDP – log del switch
00:06:08: %SYS-2-MALLOCFAIL: Memory allocation of 224 bytes failed from 0x800118D0, alignment 0
Pool: Processor Free: 0 Cause: Not enough free memory
Alternate Pool: I/O Free: 32 Cause: Not enough free memory
-Process= "CDP Protocol", ipl= 0, pid= 26
-Traceback= 801DFC30 801E1DD8 800118D8 80011218 801D932C 801D9318
00:06:08: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:09: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:10: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:11: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:12: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:13: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:14: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:15: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:16: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:17: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:18: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:19: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:20: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:21: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:22: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:23: ../src-calhoun/strata_stats.c at line 137: can't not push event list
00:06:38: %SYS-2-MALLOCFAIL: Memory allocation of 140 bytes failed from 0x801E28BC, alignment 0
Pool: Processor Free: 0 Cause: Not enough free memory
Alternate Pool: I/O Free: 32 Cause: Not enough free memory
Yersinia
también incorpora otro ataque que consiste en crear un dispositivo
virtual Cisco. Cuando el administrador de red chequee los dispositivos
vecinos a un dispositivo Cisco real verá en la consola todos los
dispositivos virtuales creados. Este ataque no tiene consecuencias
negativas salvo la molestia para el administrador de la red (quien
probablemente intentará encontrar cuál es el nuevo dispositivo conectado
a su red).
La única contramedida válida contra los ataques CDP es desactivarlo con el comando: no cdp run. El propio protócolo no ha sido mejorado desde el punto de vista de la seguridad.
La única contramedida válida contra los ataques CDP es desactivarlo con el comando: no cdp run. El propio protócolo no ha sido mejorado desde el punto de vista de la seguridad.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.