Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-08-20 10:32:23 +00:00
parent e6f0d269a5
commit 3bd4f8e326

View File

@ -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}}