hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md

130 lines
8.1 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
# IPv6 Grundlagen
2024-02-10 15:36:32 +00:00
## Netzwerke
2024-02-10 15:36:32 +00:00
IPv6-Adressen sind strukturiert, um die Organisation von Netzwerken und die Interaktion von Geräten zu verbessern. Eine IPv6-Adresse ist in folgende Teile unterteilt:
2024-02-10 15:36:32 +00:00
1. **Netzwerkpräfix**: Die ersten 48 Bits, die das Netzwerksegment bestimmen.
2. **Subnetz-ID**: Die nächsten 16 Bits, die zur Definition spezifischer Subnetze innerhalb des Netzwerks verwendet werden.
3. **Schnittstellenkennung**: Die letzten 64 Bits, die ein Gerät innerhalb des Subnetzes eindeutig identifizieren.
2024-02-10 15:36:32 +00:00
Während IPv6 das in IPv4 gefundene 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.
2024-02-07 05:06:18 +01:00
2024-02-10 15:36:32 +00:00
IPv6 enthält auch spezielle Adresstypen:
- **Loopback-Adresse (`::1`)**: Entsprechend 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 die Internet-Routing. Geräte im selben lokalen Netzwerk können sich mithilfe dieses Bereichs gegenseitig entdecken.
2024-02-07 05:06:18 +01:00
2024-02-10 15:36:32 +00:00
### Praktische Verwendung von IPv6 in Netzwerkbefehlen
2024-02-07 05:06:18 +01:00
2024-02-10 15:36:32 +00:00
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 auf der Linkschicht zu sehen.
- **alive6**: Ein alternatives Tool zum Auffinden von Geräten im selben Netzwerk.
2024-02-10 15:36:32 +00:00
Nachfolgend finden Sie einige Beispiele für Befehle:
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
2024-02-07 05:06:18 +01:00
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
2024-02-10 15:36:32 +00:00
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 ein kurzer Überblick über IPv6-Adresstypen und Methoden zur Entdeckung von IPv6-Adressen in einem Netzwerk.
2024-02-10 15:36:32 +00:00
## **Ableitung der Link-Local IPv6-Adresse aus der MAC-Adresse**
2024-02-10 15:36:32 +00:00
Gegeben sei eine MAC-Adresse **`12:34:56:78:9a:bc`**, kann die Link-Local IPv6-Adresse wie folgt konstruiert werden:
2024-02-10 15:36:32 +00:00
1. Konvertiere die MAC-Adresse in das IPv6-Format: **`1234:5678:9abc`**
2. Füge `fe80::` hinzu und füge `fffe` in die Mitte ein: **`fe80::1234:56ff:fe78:9abc`**
3. Invertiere das siebte Bit von links, ändere `1234` zu `1034`: **`fe80::1034:56ff:fe78:9abc`**
2024-02-10 15:36:32 +00:00
## **IPv6-Adresstypen**
2024-02-10 15:36:32 +00:00
- **Unique Local Address (ULA)**: Für lokale Kommunikation, nicht für öffentliches Internet-Routing gedacht. Präfix: **`FEC00::/7`**
- **Multicast-Adresse**: Für eine-zu-viele-Kommunikation. Wird an alle Schnittstellen in der Multicast-Gruppe gesendet. Präfix: **`FF00::/8`**
- **Anycast-Adresse**: Für eine-zu-nächste-Kommunikation. Wird an die nächstgelegene Schnittstelle gemäß Routing-Protokoll gesendet. Teil des globalen Unicast-Bereichs **`2000::/3`**.
2024-02-10 15:36:32 +00:00
## **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)
2024-02-07 05:06:18 +01:00
- **2000::/3**: Global Unicast
2024-02-10 15:36:32 +00:00
- **ff02::1**: Multicast Alle Knoten
- **ff02::2**: Multicast Router-Knoten
2024-02-10 15:36:32 +00:00
## **Entdeckung von IPv6-Adressen in einem Netzwerk**
2024-02-10 15:36:32 +00:00
### Methode 1: Verwendung von Link-Local-Adressen
1. Erhalten Sie die MAC-Adresse eines Geräts im Netzwerk.
2. Leiten Sie die Link-Local IPv6-Adresse aus der MAC-Adresse ab.
2024-02-10 15:36:32 +00:00
### Methode 2: Verwendung von Multicast
1. Senden Sie einen Ping an die Multicast-Adresse `ff02::1`, um IPv6-Adressen im lokalen Netzwerk zu entdecken.
```bash
2024-02-07 05:06:18 +01:00
service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table
```
2024-02-10 15:36:32 +00:00
## IPv6 Man-in-the-Middle (MitM) Angriffe
Es gibt mehrere Techniken, um MitM-Angriffe in IPv6-Netzwerken durchzuführen, wie zum Beispiel:
2024-02-10 15:36:32 +00:00
- Spoofing von ICMPv6-Nachbarn oder Router-Anzeigen.
- Verwendung von ICMPv6-Weiterleitung oder "Packet Too Big"-Nachrichten zur Manipulation der Routing-Tabelle.
- Angriffe auf mobile IPv6 (normalerweise erfordert das Deaktivieren von IPSec).
- Einrichtung eines Rogue-DHCPv6-Servers.
2024-02-10 15:36:32 +00:00
# Identifizierung von IPv6-Adressen im Netzwerk
2024-02-10 15:36:32 +00:00
## Erkunden von Subdomains
Eine Methode, um Subdomains zu finden, die potenziell mit IPv6-Adressen verknüpft sind, besteht darin, Suchmaschinen zu nutzen. Zum Beispiel kann die Verwendung eines Suchmusters wie `ipv6.*` effektiv sein. Konkret kann der folgende Suchbefehl in Google verwendet werden:
```bash
site:ipv6./
```
2024-02-10 15:36:32 +00:00
## Verwendung von DNS-Abfragen
Um IPv6-Adressen zu identifizieren, können bestimmte DNS-Eintragstypen abgefragt werden:
- **AXFR**: Fordert eine vollständige Zonentransfer an und deckt möglicherweise eine Vielzahl von DNS-Einträgen auf.
- **AAAA**: Sucht direkt nach IPv6-Adressen.
- **ANY**: Eine umfassende Abfrage, die alle verfügbaren DNS-Einträge zurückgibt.
2024-02-10 15:36:32 +00:00
## Sondieren mit Ping6
Nachdem IPv6-Adressen einer Organisation ermittelt wurden, kann das Dienstprogramm `ping6` zum Sondieren verwendet werden. Dieses Tool hilft bei der Bewertung der Reaktionsfähigkeit der identifizierten IPv6-Adressen und kann auch bei der Entdeckung benachbarter IPv6-Geräte helfen.
2024-02-10 15:36:32 +00:00
## 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)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>