networking

OSPF, EIGRP, BGP e RIP: come funzionano e come si sfruttano in pentest

OSPF, EIGRP, BGP e RIP: come funzionano e come si sfruttano in pentest

Guida completa a OSPF, EIGRP, BGP e RIP: funzionamento, differenze, route injection, BGP hijacking, fake LSA, MITM e difese per protocolli di routing dinamico.

  • Pubblicato il 2026-03-24
  • Tempo di lettura: 9 min

I protocolli di routing dinamico sono il sistema nervoso delle reti enterprise e di Internet. Capire cos’è OSPF, come funziona BGP e perché EIGRP è rilevante per un pentester significa capire come i pacchetti trovano il loro percorso — e come un attaccante può manipolare quei percorsi per intercettare, redirigere, o bloccare il traffico di un’intera organizzazione.


Cos’è il routing dinamico con OSPF/EIGRP/BGP/RIP #

Il routing dinamico è il meccanismo con cui i router si scambiano automaticamente informazioni sulle reti raggiungibili e aggiornano le proprie tabelle di routing senza intervento manuale. Contrapposto alle route statiche (configurate a mano), il routing dinamico si adatta automaticamente ai cambiamenti della topologia: link down, nuove subnet, percorsi alternativi.

I protocolli di routing si dividono in due categorie principali:

IGP (Interior Gateway Protocol): usati all’interno di un sistema autonomo (AS). Includono OSPF, EIGRP, RIP, IS-IS.

EGP (Exterior Gateway Protocol): usati tra sistemi autonomi diversi. BGP è l’unico EGP in uso oggi su Internet.

La caratteristica comune a tutti: nessun meccanismo di autenticazione obbligatorio nelle configurazioni di default. Un router non autorizzato che parla il protocollo giusto può iniettare route nella tabella di routing dell’intera rete.


RIP: Routing Information Protocol #

Cos’è RIP #

RIP (Routing Information Protocol) è il protocollo di routing più semplice e più vecchio. Definito in RFC 1058 (RIPv1) e RFC 2453 (RIPv2), usa il distance-vector algorithm: ogni router conosce solo la distanza verso le reti vicine e propaga quella conoscenza.

La metrica di RIP è il hop count: il numero di router da attraversare per raggiungere una destinazione. Il massimo è 15 hop — 16 significa “irraggiungibile”. Questo lo rende inadatto a reti grandi.

Come funziona RIP #

  • Ogni router invia il proprio RIP table completo ai vicini ogni 30 secondi (RIPv1: broadcast; RIPv2: multicast 224.0.0.9)
  • I vicini aggiornano le proprie tabelle con le informazioni ricevute
  • Se una route non viene aggiornata entro 180 secondi (timeout), viene marcata come irraggiungibile
  • Convergenza lenta: in reti grandi ci volgono minuti per propagare i cambiamenti

RIP in un pentest #

RIP usa UDP porta 520. In reti con RIP attivo (spesso ambienti legacy e SOHO), un attaccante può:

Iniettare route false: inviare RIP Response con route più specifiche (hop count basso) per dirottare traffico:

python
from scapy.all import *

# RIPv2 route injection
rip_packet = (
    IP(src="192.168.1.1", dst="224.0.0.9") /
    UDP(sport=520, dport=520) /
    RIP(cmd=2) /
    RIPEntry(AF=2, addr="10.0.0.0", mask="255.0.0.0", nextHop="0.0.0.0", metric=1)
)
send(rip_packet, iface="eth0")

Causare routing loop: iniettare route che si riferiscono l’una all’altra, causando loop di instradamento e interruzioni del servizio.


OSPF: Open Shortest Path First #

Cos’è OSPF #

OSPF (Open Shortest Path First) è il protocollo IGP più usato nelle reti enterprise. Definito in RFC 2328 (OSPFv2 per IPv4) e RFC 5340 (OSPFv3 per IPv6), usa il link-state algorithm: ogni router conosce la topologia completa dell’area e calcola il percorso ottimale tramite l’algoritmo di Dijkstra (SPF).

Usa IP protocol number 89 e multicast:

  • 224.0.0.5 — All OSPF routers
  • 224.0.0.6 — All Designated Routers

Concetti chiave OSPF #

Area: OSPF divide la rete in aree gerarchiche. L’Area 0 (backbone) è obbligatoria. Le altre aree si connettono al backbone tramite ABR (Area Border Router).

Designated Router (DR) e Backup DR (BDR): sulle reti multi-access (come Ethernet), OSPF elegge un DR che centralizza la distribuzione degli LSA. Controllare il DR significa controllare il flusso degli aggiornamenti di routing nell’area.

LSA (Link State Advertisement): i messaggi OSPF che descrivono la topologia della rete. Ogni router inonda la propria area con i propri LSA.

Hello packet: OSPF usa pacchetti Hello ogni 10 secondi (su reti broadcast) o 30 secondi (su link seriali) per verificare che i vicini siano attivi e mantenere le adiacenze.

Come funziona OSPF #

  1. Router invia Hello su 224.0.0.5 per scoprire i vicini
  2. Negozia parametri (Hello interval, Dead interval, Area ID) con ogni vicino
  3. Se i parametri corrispondono, forma un’adiacenza (neighbor relationship)
  4. Scambia il proprio database LSA con i vicini tramite DBD, LSR, LSU, LSAck
  5. Calcola il percorso ottimale con SPF
  6. Installa le route nella tabella di routing

OSPF in un pentest #

OSPF è il protocollo di routing più interessante per un pentester enterprise.

Reconnaissance passiva: il traffico OSPF è visibile su qualsiasi interfaccia connessa alla rete. Hello packet e LSA rivelano:

bash
tcpdump -i eth0 -nn proto 89

In Wireshark:

text
ospf

Gli LSA contengono la mappa completa della topologia OSPF: tutti i router, tutte le subnet, tutti i link. In pochi minuti di ascolto passivo si ottiene un diagramma completo della rete interna.

Injection di route OSPF false: se l’autenticazione OSPF non è configurata (default in molti ambienti), un attaccante può stabilire un’adiacenza OSPF con i router vicini e iniettare LSA arbitrari:

bash
# Con FRRouting (FRR) su Linux
apt install frr
# Configurare ospfd con route da iniettare

Con Loki (framework per attacchi a protocolli di routing):

bash
loki -i eth0 --ospf

Diventare DR/BDR: inviare Hello con Router Priority massima (255) per vincere l’elezione del Designated Router. Il DR riceve tutti gli LSA e li distribuisce — posizione privilegiata per intercettare aggiornamenti di routing.

Falso LSA per MITM: iniettare un LSA che annuncia una route più specifica verso un subnet target con se stesso come next-hop. Il traffico verso quella subnet passa per l’attaccante.


EIGRP: Enhanced Interior Gateway Routing Protocol #

Cos’è EIGRP #

EIGRP (Enhanced Interior Gateway Routing Protocol) è un protocollo di routing proprietario Cisco, in parte aperto con RFC 7868. Usa un algoritmo ibrido chiamato DUAL (Diffusing Update Algorithm) che combina caratteristiche distance-vector e link-state.

Usa IP protocol number 88 e multicast 224.0.0.10.

La metrica EIGRP è composita: considera bandwidth, delay, reliability, load, e MTU — significativamente più ricca del solo hop count di RIP.

EIGRP in un pentest #

Come OSPF, EIGRP non ha autenticazione di default in molte configurazioni legacy. Il traffico EIGRP è visibile su qualsiasi interfaccia nella stessa subnet:

bash
tcpdump -i eth0 -nn proto 88

In Wireshark:

text
eigrp

I pacchetti EIGRP Hello rivelano il Router ID, l’AS number, e i parametri K (metriche). Con Loki:

bash
loki -i eth0 --eigrp

Loki può stabilire adiacenze EIGRP e iniettare route false, ottenendo lo stesso effetto MITM descritto per OSPF. L’AS number è visibile nei pacchetti Hello — necessario per stabilire l’adiacenza.


BGP: Border Gateway Protocol #

Cos’è BGP #

BGP (Border Gateway Protocol) è il protocollo di routing di Internet. Definito nell’RFC 4271, BGP è l’unico EGP in uso: gestisce il routing tra i sistemi autonomi (AS) che compongono Internet.

BGP usa TCP porta 179. A differenza di OSPF e EIGRP, BGP è un protocollo path-vector: non calcola il percorso ottimale basandosi sulla topologia, ma sceglie il percorso in base a policy e attributi definiti dall’amministratore.

Concetti chiave BGP #

AS (Autonomous System): un insieme di reti sotto un’unica amministrazione con una policy di routing coerente. Identificato da un ASN (Autonomous System Number).

BGP peer (speaker): due router BGP si connettono tramite sessione TCP e si scambiano informazioni di routing. La sessione richiede che i peer siano configurati esplicitamente (no discovery automatico come OSPF).

eBGP vs iBGP: eBGP (External BGP) tra AS diversi; iBGP (Internal BGP) tra router dello stesso AS.

NLRI (Network Layer Reachability Information): le informazioni di raggiungibilità scambiate tra peer BGP — essenzialmente la lista di prefissi IP con i loro attributi.

Attributi BGP: ogni route BGP ha attributi che ne determinano la preferenza (AS_PATH, NEXT_HOP, LOCAL_PREF, MED, COMMUNITY, ecc.).

BGP in un pentest #

BGP è rilevante in engagement su ISP, grandi enterprise con connessioni multi-homed, e ambienti cloud/CDN.

Reconnaissance passiva su sessioni BGP:

bash
# Identificare sessioni BGP attive
nmap -p 179 <target_range>

# Capture del traffico BGP
tcpdump -i eth0 -nn tcp port 179

Le sessioni BGP in chiaro (BGP non usa cifratura di default) rivelano:

  • ASN dei peer
  • Prefissi annunciati
  • Attributi delle route

BGP Hijacking (su reti con BGP proprio o accesso a router BGP): se un attaccante riesce ad accedere a un router BGP o a stabilire una sessione BGP non autorizzata, può annunciare prefissi IP più specifici di quelli legittimi. I router Internet preferiscono route più specifiche (Longest Prefix Match): il traffico verso quei prefissi viene rediretto globalmente.

Questo è esattamente il meccanismo degli incidenti BGP più famosi: Pakistan Telecom che ha “preso” il traffico YouTube nel 2008, o i molteplici incident BGP di leak e hijack documentati annualmente.

BGP Session Reset (DoS): inviare un RST TCP alla sessione BGP causa il reset della sessione e la rimozione di tutte le route del peer. Richiede IP spoofing o accesso MITM sul path TCP:

bash
hping3 -S -a <bgp_peer_ip> -p 179 --tcp-timestamp <router_ip>

Lettura dei full routing table tramite looking glass: in ambienti con accesso a looking glass BGP interni, è possibile ottenere l’intera tabella di routing dell’organizzazione senza accesso diretto ai router.


OSPF/EIGRP/BGP/RIP in un engagement di pentesting #

Reconnaissance: identificare protocolli attivi #

Il primo passo è identificare quali protocolli di routing sono attivi nel segmento:

bash
# Ascoltare il multicast di routing
tcpdump -i eth0 -nn dst net 224.0.0.0/4

# OSPF (proto 89) su 224.0.0.5/224.0.0.6
tcpdump -i eth0 -nn proto 89

# EIGRP (proto 88) su 224.0.0.10
tcpdump -i eth0 -nn proto 88

# RIP (UDP 520) su 224.0.0.9
tcpdump -i eth0 -nn udp port 520

# BGP (TCP 179)
tcpdump -i eth0 -nn tcp port 179

Con Nmap:

bash
nmap -sU -p 520 <subnet>          # RIP
nmap -p 179 <subnet>              # BGP
nmap --script broadcast-ospf-discover -e eth0  # OSPF discovery

Enumeration della topologia da LSA/Update #

Una volta identificato il protocollo, ascoltare il traffico per raccogliere la topologia:

  • OSPF LSA: rivelano tutti i router, tutte le subnet, i link cost, gli ABR
  • EIGRP Update: rivelano le reti raggiungibili e le metriche
  • BGP Update: rivelano i prefissi annunciati e l’AS path
  • RIP Response: rivelano le subnet raggiungibili e i hop count

In pochi minuti di ascolto passivo si costruisce una mappa della rete più dettagliata di qualsiasi scan attivo.

Attack surface: route injection #

Su tutti i protocolli senza autenticazione (o con autenticazione debole), l’iniezione di route false permette di:

  1. MITM: annunciare route più specifiche verso subnet target con se stesso come next-hop
  2. Blackholing: annunciare route con next-hop inesistente per scartare silenziosamente il traffico
  3. Route leak: propagare route interne verso segmenti non autorizzati

Tool principali per attacchi ai protocolli di routing:

  • Loki: toolkit specifico per OSPF, EIGRP, RIP, BGP
  • Scapy: costruzione di pacchetti di routing personalizzati
  • FRRouting: implementazione completa di OSPF, EIGRP, BGP, RIP su Linux
  • GNS3/EVE-NG: per testare in laboratorio prima dell’engagement

Pivoting tramite manipolazione del routing #

Iniettando route che annunciano subnet normalmente non raggiungibili dall’attaccante come raggiungibili attraverso di lui, è possibile espandere il raggio d’azione dell’engagement verso segmenti isolati. Combinato con VLAN hopping e tunneling GRE, questa tecnica permette di raggiungere praticamente qualsiasi segmento della rete interna.


Attacchi specifici su OSPF/EIGRP/BGP/RIP #

RIP: False Response Injection #

Inviare RIP Response con route più specifiche e metric 1. Convergenza rapida (30 secondi): il traffico viene rediretto quasi immediatamente.

OSPF: Fake LSA e MaxAge Attack #

Inviare LSA con MaxAge (3600 secondi) per un router legittimo causa l’immediata rimozione di quel router dalla topologia OSPF — effetto DoS selettivo su un singolo router senza toccarlo fisicamente.

EIGRP: Stuck-In-Active (SIA) Attack #

Inviare query EIGRP continue senza risposta mette i vicini in stato SIA, causando la rottura delle adiacenze e la convergenza verso percorsi alternativi — potenzialmente meno sicuri.

BGP: AS Path Manipulation #

Inviare update BGP con AS_PATH manipolato per influenzare le preferenze di routing dei peer, dirottando traffico su percorsi controllati dall’attaccante.


Esempi pratici con OSPF/EIGRP/BGP/RIP in laboratorio #

Analisi OSPF completa con Wireshark #

text
ospf.msg.hello      # Pacchetti Hello (topology discovery)
ospf.msg.dbdesc     # Database Description (lista LSA)
ospf.msg.lsupdate   # LSA Update (topologia completa)
ospf.v2.options.e   # OSPF con external routes

Dump della topologia OSPF con Scapy #

python
from scapy.all import *

# Ascoltare Hello OSPF e stampare Router ID e Area
sniff(filter="proto 89", iface="eth0",
      prn=lambda p: print(f"Router ID: {p[OSPF].src}, Area: {p[OSPF].area}"))

Verifica adiacenze OSPF su host Linux con FRR #

bash
vtysh
show ip ospf neighbor
show ip ospf database
show ip route ospf

Detection e difesa OSPF/EIGRP/BGP/RIP #

  • OSPF/EIGRP/RIP: monitorare le adiacenze — un nuovo neighbor non in inventario è sospetto
  • LSA/Update anomali: route più specifiche che compaiono improvvisamente, specialmente verso subnet critiche
  • BGP: monitorare i prefix announcement — servizi come BGPmon e RIPE RIS rivelano hijack BGP in tempo reale
  • Volume anomalo di traffico di routing: flood di pacchetti Hello o Update può indicare un attacco DoS

Hardening e mitigazioni OSPF/EIGRP/BGP/RIP #

Autenticazione OSPF #

OSPFv2 supporta autenticazione MD5 (legacy) e SHA-HMAC:

text
interface GigabitEthernet0/0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 <password>

Meglio: usare OSPFv3 con IPSec per autenticazione e cifratura.

Autenticazione EIGRP #

text
key chain EIGRP-KEYS
 key 1
  key-string <password>
router eigrp 100
 network 192.168.0.0
 authentication mode eigrp 100 md5
 authentication key-chain eigrp 100 EIGRP-KEYS

Autenticazione RIPv2 #

text
key chain RIP-KEYS
 key 1
  key-string <password>
interface GigabitEthernet0/0
 ip rip authentication mode md5
 ip rip authentication key-chain RIP-KEYS

BGP: TTL Security e MD5 #

text
neighbor <peer_ip> ttl-security hops 1    # GTSM — accetta solo pacchetti con TTL 255
neighbor <peer_ip> password <password>    # MD5 sulla sessione TCP BGP

Filtrare il traffico di routing sulle porte di accesso #

Nessun host utente dovrebbe poter inviare o ricevere traffico OSPF, EIGRP, RIP o BGP. Configurare ACL sui router per accettare questi protocolli solo dalle interfacce verso altri router autorizzati.


Errori comuni su OSPF/EIGRP/BGP/RIP #

“I protocolli di routing sono interni, non sono a rischio” Falso. Un attaccante con accesso fisico o logico a qualsiasi segmento della rete può partecipare al routing dinamico se l’autenticazione non è configurata.

“L’autenticazione MD5 su OSPF/EIGRP è sufficiente” MD5 è considerato debole. Preferire SHA-256/SHA-512 dove supportato. MD5 è comunque molto meglio di nessuna autenticazione.

“BGP è sicuro perché richiede configurazione manuale dei peer” BGP richiede la configurazione del peer, ma non verifica l’identità in modo crittografico di default. La combinazione GTSM + MD5 + prefix filtering è il minimo per BGP sicuro.

“RIP è obsoleto, nessuno lo usa più” RIP è presente in moltissimi router SOHO, dispositivi embedded, e ambienti legacy industriali. In un engagement su reti OT/ICS o ambienti con hardware datato, RIP è molto più comune di quanto ci si aspetti.


FAQ su OSPF/EIGRP/BGP/RIP #

Cos’è OSPF e come funziona? OSPF (Open Shortest Path First) è un protocollo di routing link-state che usa l’algoritmo di Dijkstra per calcolare il percorso ottimale. Ogni router ha una mappa completa della topologia della propria area e calcola autonomamente le route migliori.

Qual è la differenza tra OSPF e BGP? OSPF è un IGP usato all’interno di un singolo AS per trovare il percorso ottimale basandosi sulla topologia. BGP è l’EGP usato tra AS diversi per scambiare informazioni di raggiungibilità basandosi su policy. OSPF converge velocemente; BGP è lento e policy-driven.

Come si sfrutta OSPF in un pentest? I due vettori principali sono: l’ascolto passivo degli LSA per mappare la topologia della rete, e l’iniezione di LSA falsi (su reti senza autenticazione) per redirigere il traffico. Tool come Loki o FRRouting permettono di stabilire adiacenze OSPF e iniettare route.

Cos’è un BGP hijack? Un BGP hijack è l’annuncio non autorizzato di prefissi IP altrui da parte di un AS. I router Internet preferiscono le route più specifiche (Longest Prefix Match), quindi un hijack con prefisso più specifico redirige il traffico verso l’attaccante a livello globale.

Come si protegge OSPF dagli attacchi? La difesa principale è l’autenticazione: configurare autenticazione SHA-HMAC su tutte le interfacce OSPF. Combinata con ACL che limitano il traffico OSPF solo alle interfacce verso router autorizzati, riduce drasticamente la superficie di attacco.


Conclusione su OSPF/EIGRP/BGP/RIP #

I protocolli di routing dinamico sono la spina dorsale invisibile di qualsiasi rete enterprise. Sono ovunque, spesso non autenticati, e trasportano la mappa completa dell’infrastruttura in ogni pacchetto che inviano.

In un engagement su reti interne, ascoltare il traffico OSPF o EIGRP per pochi minuti può darti una visione della topologia più completa di settimane di scanning attivo. E su reti senza autenticazione, iniettare route false significa controllare il flusso del traffico di tutta l’organizzazione.

Approfondisci i protocolli correlati:

Riferimento ufficiale: RFC 2328 — OSPF Version 2


Hai routing dinamico nella tua infrastruttura e non sai se è configurato in modo sicuro? Un pentest dedicato al livello 3 può rispondere a quella domanda prima che lo faccia qualcun altro: hackita.it/servizi.

HackITA è gratuito grazie a chi decide di supportarlo: hackita.it/supporto

#route injection #bgp hijacking

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.