From 3bd4f8e326ab5dcaac9b305e0d19d39d12b089fd Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 20 Aug 2025 10:32:23 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-network/ --- .../pentesting-network/pentesting-ipv6.md | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md index c9e174456..c8ce35318 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md +++ b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md @@ -30,7 +30,7 @@ Um mit IPv6-Netzwerken zu interagieren, können Sie verschiedene Befehle verwend - **Neighbor Discovery**: Verwenden Sie `ip neigh`, um Geräte zu sehen, die auf der Linkschicht entdeckt wurden. - **alive6**: Ein alternatives Tool zur Entdeckung von Geräten im selben Netzwerk. -Unten sind einige Beispielbefehle: +Nachfolgend einige Beispielbefehle: ```bash ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1 ip neigh | grep ^fe80 @@ -51,8 +51,8 @@ Gegeben ist eine MAC-Adresse **`12:34:56:78:9a:bc`**, die Link-Local IPv6-Adress ### **IPv6-Adresstypen** - **Unique Local Address (ULA)**: Für lokale Kommunikation, nicht für das Routing im öffentlichen Internet gedacht. Präfix: **`FEC00::/7`** -- **Multicast-Adresse**: Für Eins-zu-viele-Kommunikation. An alle Schnittstellen in der Multicast-Gruppe gesendet. Präfix: **`FF00::/8`** -- **Anycast-Adresse**: Für Eins-zu-nächste Kommunikation. An die nächstgelegene Schnittstelle gemäß Routing-Protokoll gesendet. Teil des **`2000::/3`** globalen Unicast-Bereichs. +- **Multicast-Adresse**: Für Eins-zu-viele-Kommunikation. An alle Schnittstellen in der Multicast-Gruppe geliefert. Präfix: **`FF00::/8`** +- **Anycast-Adresse**: Für Eins-zu-nächster Kommunikation. An die nächstgelegene Schnittstelle gemäß Routing-Protokoll gesendet. Teil des **`2000::/3`** globalen Unicast-Bereichs. ### **Adresspräfixe** @@ -106,7 +106,7 @@ Um IPv6-Adressen zu identifizieren, können bestimmte DNS-Record-Typen abgefragt Nachdem IPv6-Adressen, die mit einer Organisation verbunden sind, identifiziert wurden, kann das Dienstprogramm `ping6` zum Abtasten verwendet werden. Dieses Tool hilft dabei, die Reaktionsfähigkeit der identifizierten IPv6-Adressen zu bewerten und kann auch dabei helfen, benachbarte IPv6-Geräte zu entdecken. -## IPv6-Angriffstechniken im lokalen Netzwerk +## IPv6 Angriffs-Techniken im lokalen Netzwerk Die folgenden Abschnitte behandeln praktische Layer-2 IPv6-Angriffe, die **innerhalb desselben /64-Segments** ausgeführt werden können, ohne einen globalen Präfix zu kennen. Alle unten gezeigten Pakete sind **link-local** und reisen nur durch den lokalen Switch, was sie in den meisten Umgebungen extrem stealthy macht. @@ -195,7 +195,7 @@ argp.add_argument('-t','--time',type=int,default=0,help='Duration (0 = infinite) a = argp.parse_args() sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0) ``` -Ergebnis: eine vollständige **link-lokale Topologie** (MAC ⇄ IPv6) in wenigen Sekunden, ohne IPS/IDS-Systeme auszulösen, die auf aktiven Scans basieren. +Ergebnis: eine vollständige **link-lokale Topologie** (MAC ⇄ IPv6) in Sekundenschnelle, ohne IPS/IDS-Systeme auszulösen, die auf aktiven Scans basieren. ### Router Advertisement (RA) Spoofing @@ -227,6 +227,33 @@ sudo sysctl -w net.ipv6.conf.all.forwarding=1 sudo ip6tables -A FORWARD -i eth0 -j ACCEPT sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ``` +#### Router Advertisement Flags (M/O) & Default Router Preference (Prf) + +| Flag | Bedeutung | Auswirkung auf das Client-Verhalten | +|------|-----------|-------------------------------------| +| **M (Managed Address Configuration)** | Wenn auf `1` gesetzt, muss der Host **DHCPv6** verwenden, um seine IPv6-Adresse zu erhalten. | Die gesamte Adressierung erfolgt über DHCPv6 – perfekt für *mitm6* Stilvergiftung. | +| **O (Other Configuration)** | Wenn auf `1` gesetzt, sollte der Host **DHCPv6** nur verwenden, um *andere* Informationen (DNS, NTP, …) zu erhalten. | Adresse weiterhin über SLAAC, aber DNS kann mit DHCPv6 gehijackt werden. | +| **M=0 / O=0** | Reines SLAAC-Netzwerk. | Nur RA / RDNSS-Tricks sind möglich – DHCPv6 wird von Clients nicht gesendet. | +| **M=1 / O=1** | Gemischte Umgebung. | Sowohl DHCPv6 als auch SLAAC werden verwendet; die Angriffsfläche für Spoofing ist am größten. | + +Während eines Pentests können Sie einfach die legitime RA einmal inspizieren und entscheiden, welcher Vektor machbar ist: +```bash +sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements +``` +Suchen Sie nach dem Feld `flags [M,O]` im Dump – kein Raten erforderlich. + +Das **Prf** (Router Preference) Feld im RA-Header steuert, wie attraktiv Ihr rogue Router aussieht, wenn *mehrere* Gateways vorhanden sind: + +| Prf-Wert | Binär | Bedeutung | +|----------|-------|-----------| +| **Hoch** | `10` | Clients bevorzugen diesen Router gegenüber jedem *Mittleren*/*Niedrigen* | +| Mittel (Standard) | `01` | Wird von fast jedem legitimen Gerät verwendet | +| Niedrig | `00` | Wird nur gewählt, wenn kein besserer Router vorhanden ist | + +Beim Generieren des Pakets mit Scapy können Sie es über den `prf`-Parameter wie oben gezeigt festlegen (`prf=0x1` → Hoch). Die Kombination aus **Hoch Prf**, einem **kurzen Intervall** und einer **nicht null Lebensdauer** macht Ihr rogue Gateway bemerkenswert stabil. + +--- + ### RDNSS (DNS) Spoofing über RA [RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) erlaubt das Hinzufügen einer **Recursive DNS Server (RDNSS)** Option innerhalb eines RA. Moderne Betriebssysteme (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) vertrauen darauf automatisch: @@ -253,7 +280,7 @@ Clients will **prepend** your DNS to their resolver list for the given lifetime, ### DHCPv6 DNS Spoofing (mitm6) -Statt SLAAC verlassen sich Windows-Netzwerke oft auf **stateless DHCPv6** für DNS. [mitm6](https://github.com/rofl0r/mitm6) antwortet automatisch auf `Solicit`-Nachrichten mit einem **Advertise → Reply**-Fluss, der **deine Link-Local-Adresse für 300 Sekunden als DNS zuweist**. Dies ermöglicht: +Anstatt SLAAC verlassen sich Windows-Netzwerke oft auf **stateless DHCPv6** für DNS. [mitm6](https://github.com/rofl0r/mitm6) antwortet automatisch auf `Solicit`-Nachrichten mit einem **Advertise → Reply**-Fluss, der **deine Link-Local-Adresse für 300 Sekunden als DNS zuweist**. Dies ermöglicht: * NTLM-Relay-Angriffe (WPAD + DNS-Hijacking) * Abfangen interner Namensauflösungen, ohne Router zu berühren @@ -262,12 +289,12 @@ Typische Verwendung: ```bash sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning ``` -### Abwehrmaßnahmen +### Verteidigungen * **RA Guard / DHCPv6 Guard / ND Inspection** auf verwalteten Switches. -* Port-ACLs, die nur die MAC-Adresse des legitimen Routers erlauben, RAs zu senden. +* Port-ACLs, die nur die MAC des legitimen Routers erlauben, RAs zu senden. * Überwachen auf **unsolide hochfrequente RAs** oder plötzliche **RDNSS-Änderungen**. -* Das Deaktivieren von IPv6 an Endpunkten ist eine vorübergehende Lösung, die oft moderne Dienste beeinträchtigt und blinde Flecken verbirgt – bevorzuge stattdessen L2-Filterung. +* Das Deaktivieren von IPv6 an Endpunkten ist eine vorübergehende Lösung, die oft moderne Dienste unterbricht und blinde Flecken verbirgt – bevorzuge stattdessen L2-Filterung. ## Referenzen @@ -276,5 +303,6 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning - [RFC 8106 – IPv6 ND DNS Configuration](https://datatracker.ietf.org/doc/html/rfc8106) - [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html) - [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904) +- [Practical Guide to IPv6 Attacks in a Local Network](https://habr.com/ru/articles/930526/) {{#include ../../banners/hacktricks-training.md}}