IGRP.

IGRP (Interior Gateway Routing Protocol) IGRP es un protocolo propietario de Cisco basado en la tecnología Vector-Distancia diseñado para ser escalable. Actualmente no se soporta en sistema operativo de CISCO (IOS).

Las principales características de IGRP:


  • Envía actualizaciones de enrutamiento periódicas (cada 90 segundos).
  • Difunde la tabla de enrutamiento completa periódicamente.
  • Utiliza la distancia como parte de su métrica (en este caso, un compuesto de ancho de banda y retardos).
  • IGRP utiliza el algoritmo Vector-Distancia Bellman-Ford para determinar la mejor ruta hacia un destino particular.


Otras características de IGRP son:


  • Soporta Sólo enrutamiento IP.
  • Las rutas IGRP tiene una distancia administrativa de 100.
  • IGRP, por defecto, admite un máximo de 100 saltos. Este valor puede ser ajustado a un máximo de 255 saltos.
  • Utiliza el ancho de banda y retardos de la línea, de forma predeterminada, para calcular su distancia métrica. La confiabilidad, la carga de la red y MTU son atributos opcionales que pueden ser utilizados para calcular la métrica de distancia. IGRP requiere la inclusión de un Sistema Autónomo (AS) en su configuración. Sólo los routers que estén en el mismo AS enviarán actualizaciones entre sí.


El ataque:



Usando una herramienta que pertenece a IRPAS (una suite de herramientas de seguridad de routing para Linux) llamada IGRP para la inyección de rutas. El propósito es definir una tabla de enrutamiento con todos los parámetros a mano sin tener el sistema que realmente ejecuta cualquier tipo de enrutamiento dinámico y enviar esta información al sistema víctima. IGRP es un protocolo basado en emisión de ruta, el comportamiento predeterminado es enviar estos mensajes a la dirección de difusión IP (255.255.255.255). Si se desea inyectar una ruta a un sistema remoto hay que controlar la actualización y en consecuencia asegurarse de enviar el paquete con la dirección de la fuente correcta para que el sistema de la víctima acepte la actualización.

Antes de usar la herramienta, hay que diseñar la tabla de enrutamiento que se desea inyectar en el direccionado de destino. Debe contener los datos que su ruta se la preferida una para la víctima. El formato es:

destino:retardo:ancho de banda:mtu:Confiabilidad:Carga:cuenta de saltos


Donde destino es la red (192.168.1.0), retardo es en ms/10, ancho de banda en Mbit por segundo, MTU es la unidad máxima de transferencia (1500 para Ethernet), la fiabilidad y la carga se dan en tanto por ciento (255 = 100%, 1 = 0%) y el numero de saltos.
Se ignoran las líneas vacías y las líneas que comienzan con #.

Ejemplo:

# Archivo de rutas para igrp.c
#
# FX
# Phenoelit (http://www.phenoelit.de/)
#
# Formato
# Destino: retraso: ancho de banda: mtu: Confiabilidad: Carga: hopCount
#
# Ejemplos
192.168.1.0:500:1:1500:255:1:0


Uso:

./igrp -i (interface) -f (routes.file) -a (autonomous system)

Opciones:

-V detallado
-F archivo, que contiene las rutas
(Tanto como quieras)
-a El proceso que se está ejecutando IGR, utilice ASS para averiguarlo o especificar un rango de usar con un START-b STOP para enviar cambios a todos como de principio a STOP (Le recomiendo usar ASS para esto!).
-S IP fuente tal vez usted necesita esta
-D IP destinatino.

Si se desea que las rutas sean persistentes se ejecuta el programa dentro de un bucle cada 25-30 segundos, para mantener a la victima dentro de esas rutas.

Más información y descarga de la herramienta IRPAS:
http://www.phenoelit.org/irpas/

Este protocolo está obsoleto por lo que el mejor consejo para asegurarlo es no usarlo y utilizar otro más actual.


EIGRP.


EIGRP es una versión mejorada de IGRP. La misma tecnología de vector-distancia que se encuentra en IGRP también se utiliza en EIGRP, y la información de distancia subyacente se mantiene sin cambios. Las propiedades de convergencia y la eficiencia de funcionamiento de este protocolo han mejorado significativamente. Esto permite una arquitectura mejorada mientras que conserva la inversión existente en IGRP.

La tecnología de convergencia se basa en la investigación llevada a cabo en SRI International. El Algoritmo de actualización por difusión (DUAL) es el algoritmo usado para obtener la libertad de bucle en cada instante a través de un cálculo de ruta. Esto permite que todos los enrutadores que participen en un cambio de topología para sincronizar al mismo tiempo. Los routers que no son afectados por los cambios de topología no están involucrados en el recálculo.

EIGRP se ha extendido a ser un protocolo de capa de red independiente, permitiendo de este modo DUAL para apoyar a otros conjuntos de protocolos. EIGRP tiene cuatro componentes básicos:


  • Descubrimiento / Recuperación.
  • Protocolo de transporte confiable.
  • Máquina de estados finitos DUAL .
  • Modulos de protocolo dependientes.


Descubrimiento / recuperación es el proceso que los routers utilizan para aprender dinámicamente de otros routers en sus redes conectadas directamente. Los routers también deben descubrir cuando sus vecinos se convierten en inaccesibles o inoperantes. Este proceso se logra con pocos gastos enviando periódicamente pequeños paquetes hello. Siempre y cuando se reciben paquetes de saludo, un router puede determinar que un vecino está vivo y funcionando. Una vez determinado esto, los routers vecinos pueden intercambiar información de enrutamiento.

El transporte confiable es responsable de garantía, entrega ordenada de paquetes EIGRP a todos los vecinos. Es compatible con la transmisión de paquetes de multidifusión mezclados o unicast. Algunos paquetes EIGRP deben ser transmitidos de forma fiable y otros no lo necesitan. Por eficiencia, se proporciona fiabilidad sólo cuando sea necesario. Por ejemplo, en una red de acceso múltiple que tiene funciones de multidifusión, tales como Ethernet, no es necesario enviar hellos fiable a todos los vecinos de forma individual. Así EIGRP, envía un multicast hello con una indicación en el paquete de información a los receptores de que el paquete no tiene que ser reconocido. Otros tipos de paquetes, tales como actualizaciones, requieren el reconocimiento y esto se indica en el paquete. El transporte fiable tiene una disposición para enviar paquetes de multidifusión rápidamente cuando hay paquetes no reconocidos pendientes. Esto ayuda a asegurar que el tiempo de convergencia sigue siendo baja en presencia de diferentes enlaces de alta velocidad.


La máquina de estados finitos DUAL encarna el proceso de decisión para todos los cálculos de ruta. Realiza un seguimiento de todas las rutas anunciadas por todos los vecinos. La información de la distancia, conocida como una métrica, se utiliza por DUAL para seleccionar caminos libres bucle eficientes. DUAL selecciona las rutas para ser insertados en una tabla de enrutamiento basado en sucesores factibles. Un sucesor es un router vecino utilizado para el reenvío de paquetes que tiene una ruta de menor coste a un destino que no está garantizado para ser parte de un bucle de enrutamiento. Cuando no hay sucesores factibles, pero hay vecinos que anuncian el destino, debe ocurrir un recálculo. Este es el proceso en el que se determina un nuevo sucesor. La cantidad de tiempo que se necesita para volver a calcular la ruta afecta el tiempo de convergencia. A pesar de que el nuevo cálculo no es intensivo del procesador, es ventajoso para evitar volver a calcular si no es necesario. Cuando se produce un cambio de topología, DUAL pondrá a prueba para los sucesores factibles. Si hay sucesores factibles, utilizará los que encuentre con el fin de evitar cualquier recálculo innecesaria. Sucesores factibles se definen con más detalle más adelante en este documento.

Los módulos de protocolo dependientes son responsables de la capa de red, los requisitos específicos del protocolo. Por ejemplo, el módulo IP-EIGRP es responsable de enviar y recibir paquetes EIGRP que están encapsulados en IP. IP-EIGRP es responsable de analizar e informar a los paquetes EIGRP DUAL de la nueva información recibida. IP-EIGRP DUAL pide para tomar decisiones de enrutamiento y los resultados de los cuales se almacenan en la tabla de enrutamiento IP. IP-EIGRP es responsable de la redistribución de las rutas aprendidas de otros protocolos de enrutamiento IP.

El ataque:

Se trata de un generador de paquetes EIGRP y sniffer desarrollado para probar la seguridad y calidad de funcionamiento global de este protocolo de enrutamiento de Cisco. Usar esta herramienta requiere un buen nivel de conocimiento de las operaciones de EIGRP, la estructura de paquetes y tipos, así como la capa 3 de la topología de la red auditada.

Ejecución:

eigrp.pl [--sniff] [ --iface=interface ] [--timeout=i]

Opciones:

- sniff, sniffar paquetes EIGRP.
- iface, interfaz de red de escucha.
- iflist, todas las interfaces de red disponibles.
- source, dirección IP de origen.
- dest, paquetes IP de destino. Por defecto IP multicast - 224.0.0.10.
- timeout=n pcap timeout (500 por defecto).
- hello, Enviar EIGRP HELLO.
- update, actualización de ruta.
- query, enviar consulta.
- external, ruta externa.
- internal, ruta interna.
- Ipgoodbye = s reenvió de mensaje adiós.
- File2ip = s, Enviar olfateó eigrp los datos de un archivo.
- payback, el paquete de actualización, cambie [Retardo] y enviarlo de vuelta (PoC).
- op = n, EIGRP opcode no. para disparar, capturar una pkt definido.
- Sn = n, EIGRP número de secuencia para disparar.
- auth, los datos de autenticación para el ataque de respuesta (copiar hex pasado de aspiración).
- opcode, opcode personalizado para paquetes hello fuzzing.
- flags=n, banderas EIGRP (0,1 ó 2).
- version=n, EIGRP versión [8 bits entero] De fábrica = 2.
- As = n, número de sistema autónomo, Default = 1.
- K1 = n, métricas K1 defecto 1.
- K2 = n, métricas K2 defecto 0.
- K3 = n, métricas K3 defecto 1.
- K4 = n, métricas K4 defecto 0.
- K5 = n, métricas K4 defecto 0.
- Mtu = n, MTU.
- nms = n, añadir NMS (Próximo mensaje multicast) al paquete de saludo.
- eigrpv = s versión EIGRP.
- Ios = s IOS versión.
- hopCount = n, cuenta de saltos.
- reliability=n, confiabilidad.
- load = n, carga.
- delay =n, retardo.
- sequence=n , secuencia (secuencia de 32 bits) predeterminado = 0.
- ACK = n, reconocer (32bit secuencia) Por defecto = 0
- nextHop = s próximo salto.
- bandwidth=n, ancho de banda.
- routedest =s, destino de ruta.
- origrouter = s, enrutadores originarios.
- origas = n, numero de originarios del sistema autónomo.
- arbitatag = n, etiqueta arbitraria.
- metric=n, protocolo de métrica.
- extproto = n protocolo externo
ID IGRP (1)
EIGRP (2)
Ruta estática (3)
RIP (4)
HOLA (5)
OSPF (6)
IS_IS (7)
EGP (8)
BGP (9)
IDRP (10)
LINK conectado (11)
- hold=n, Tiempo de espera en segundos.
- hellotime = n, Escribir reintentos de tiempo de espera de envio HELLO. Por defecto = 5 seg
- hellodos = s subred IP. Ataque de denegación de servicios enviando argumento HELLO EIGRP a rango IP.
- retries=n, Packet enviar reintentos predeterminado = 1;

Ejemplos de uso:

./eigrp.pl --sniff --iface eth0
./eigrp.pl --ipgoodbye 192.168.66.202 --source 192.168.7.8
./eigrp.pl --file2ip update.dat --source 192.168.7.8
./eigrp.pl --update --external --as 65534 --source 192.168.7.8
./eigrp.pl --hello --auth 00020010000000020000000000000000000000000efe074034 46c77a9697fe5753f79e52 --source 192.168.77.8 --nms 1
./eigrp.pl --help This message

Más información y descarga de esta herramienta:
http://www.hackingciscoexposed.com/tools/eigrp-tools.tar.gz

EIGRP puede ser vulnerable a ataques de man-in-the-middle, route-starvation/spoofing y DoS, ataques debido a la falta de autenticación por defecto. La mejor forma de asegurar este protocolo es aplicar las opciones de autentificación.

Publicado por Alvaro Paz en http://vtroger.blogspot.com.es/2013/05/seguridad-en-protocolos-de-routing-igrp.html