mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
113 lines
5.7 KiB
Markdown
113 lines
5.7 KiB
Markdown
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
# IPv6 Grundtheorie
|
||
|
||
## Netzwerke
|
||
|
||
IPv6-Adressen sind so strukturiert, dass sie die Netzwerkorganisation und die Interaktion von Geräten verbessern. Eine IPv6-Adresse ist unterteilt in:
|
||
|
||
1. **Netzwerkpräfix**: Die ersten 48 Bits, die das Netzwerksegment bestimmen.
|
||
2. **Subnetz-ID**: Die folgenden 16 Bits, die zur Definition spezifischer Subnetze innerhalb des Netzwerks verwendet werden.
|
||
3. **Schnittstellenbezeichner**: Die letzten 64 Bits, die ein Gerät innerhalb des Subnetzes eindeutig identifizieren.
|
||
|
||
Während IPv6 das in IPv4 vorhandene ARP-Protokoll weglässt, führt es **ICMPv6** mit zwei Hauptnachrichten ein:
|
||
|
||
- **Neighbor Solicitation (NS)**: Multicast-Nachrichten zur Adressauflösung.
|
||
- **Neighbor Advertisement (NA)**: Unicast-Antworten auf NS oder spontane Ankündigungen.
|
||
|
||
IPv6 umfasst auch spezielle Adresstypen:
|
||
|
||
- **Loopback-Adresse (`::1`)**: Entspricht IPv4's `127.0.0.1`, für die interne Kommunikation innerhalb des Hosts.
|
||
- **Link-Local-Adressen (`FE80::/10`)**: Für lokale Netzwerkaktivitäten, nicht für das Internet-Routing. Geräte im selben lokalen Netzwerk können sich mit diesem Bereich gegenseitig entdecken.
|
||
|
||
### Praktische Nutzung von IPv6 in Netzwerkbefehlen
|
||
|
||
Um mit IPv6-Netzwerken zu interagieren, können Sie verschiedene Befehle verwenden:
|
||
|
||
- **Ping Link-Local-Adressen**: Überprüfen Sie die Anwesenheit lokaler Geräte mit `ping6`.
|
||
- **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.
|
||
|
||
Im Folgenden einige Beispielbefehle:
|
||
```bash
|
||
ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1
|
||
ip neigh | grep ^fe80
|
||
|
||
# Alternatively, use alive6 for neighbor discovery
|
||
alive6 eth0
|
||
```
|
||
IPv6-Adressen können aus der MAC-Adresse eines Geräts für die lokale Kommunikation abgeleitet werden. Hier ist eine vereinfachte Anleitung, wie man die Link-Local IPv6-Adresse aus einer bekannten MAC-Adresse ableitet, sowie eine kurze Übersicht über IPv6-Adresstypen und Methoden zur Entdeckung von IPv6-Adressen innerhalb eines Netzwerks.
|
||
|
||
## **Ableitung der Link-Local IPv6 von der MAC-Adresse**
|
||
|
||
Gegeben ist eine MAC-Adresse **`12:34:56:78:9a:bc`**, die Link-Local IPv6-Adresse kann wie folgt konstruiert werden:
|
||
|
||
1. MAC in IPv6-Format umwandeln: **`1234:5678:9abc`**
|
||
2. `fe80::` voranstellen und `fffe` in die Mitte einfügen: **`fe80::1234:56ff:fe78:9abc`**
|
||
3. Das siebte Bit von links umkehren, wodurch `1234` zu `1034` wird: **`fe80::1034:56ff:fe78:9abc`**
|
||
|
||
## **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 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**
|
||
|
||
- **fe80::/10**: Link-Local-Adressen (ähnlich wie 169.254.x.x)
|
||
- **fc00::/7**: Unique Local-Unicast (ähnlich wie private IPv4-Bereiche wie 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||
- **2000::/3**: Global Unicast
|
||
- **ff02::1**: Multicast Alle Knoten
|
||
- **ff02::2**: Multicast Router-Knoten
|
||
|
||
## **Entdeckung von IPv6-Adressen innerhalb eines Netzwerks**
|
||
|
||
### Methode 1: Verwendung von Link-Local-Adressen
|
||
|
||
1. Ermitteln Sie die MAC-Adresse eines Geräts im Netzwerk.
|
||
2. Leiten Sie die Link-Local IPv6-Adresse aus der MAC-Adresse ab.
|
||
|
||
### Methode 2: Verwendung von Multicast
|
||
|
||
1. Senden Sie ein Ping an die Multicast-Adresse `ff02::1`, um IPv6-Adressen im lokalen Netzwerk zu entdecken.
|
||
```bash
|
||
service ufw stop # Stop the firewall
|
||
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
|
||
ip -6 neigh # Display the neighbor table
|
||
```
|
||
## IPv6 Man-in-the-Middle (MitM) Angriffe
|
||
|
||
Es gibt mehrere Techniken zur Durchführung von MitM-Angriffen in IPv6-Netzwerken, wie zum Beispiel:
|
||
|
||
- Spoofing von ICMPv6-Nachbar- oder Router-Anzeigen.
|
||
- Verwendung von ICMPv6-Redirect- oder "Packet Too Big"-Nachrichten zur Manipulation des Routings.
|
||
- Angriff auf mobiles IPv6 (erfordert normalerweise, dass IPSec deaktiviert ist).
|
||
- Einrichten eines bösartigen DHCPv6-Servers.
|
||
|
||
# Identifizierung von IPv6-Adressen im Feld
|
||
|
||
## Erforschen von Subdomains
|
||
|
||
Eine Methode, um Subdomains zu finden, die potenziell mit IPv6-Adressen verknüpft sind, besteht darin, Suchmaschinen zu nutzen. Zum Beispiel kann ein Abfragemuster wie `ipv6.*` effektiv sein. Insbesondere kann der folgende Suchbefehl in Google verwendet werden:
|
||
```bash
|
||
site:ipv6./
|
||
```
|
||
## Nutzung von DNS-Abfragen
|
||
|
||
Um IPv6-Adressen zu identifizieren, können bestimmte DNS-Record-Typen abgefragt werden:
|
||
|
||
- **AXFR**: Fordert einen vollständigen Zonenübertrag an, der möglicherweise eine Vielzahl von DNS-Records aufdeckt.
|
||
- **AAAA**: Sucht direkt nach IPv6-Adressen.
|
||
- **ANY**: Eine breite Abfrage, die alle verfügbaren DNS-Records zurückgibt.
|
||
|
||
## Probing mit Ping6
|
||
|
||
Nachdem IPv6-Adressen, die mit einer Organisation verbunden sind, identifiziert wurden, kann das `ping6`-Dienstprogramm zum Probing verwendet werden. Dieses Tool hilft bei der Bewertung der Reaktionsfähigkeit der identifizierten IPv6-Adressen und kann auch dabei helfen, benachbarte IPv6-Geräte zu entdecken.
|
||
|
||
## Referenzen
|
||
|
||
- [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)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|