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

132 lines
8.1 KiB
Markdown
Raw Permalink Normal View History

{% hint style="success" %}
Apprenez et pratiquez le piratage AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le piratage GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Soutenez HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
# Théorie de base sur IPv6
2023-06-03 13:10:46 +00:00
## Réseaux
Les adresses IPv6 sont structurées pour améliorer l'organisation des réseaux et l'interaction des appareils. Une adresse IPv6 est divisée en :
1. **Préfixe de réseau** : Les 48 premiers bits, déterminant le segment réseau.
2. **ID de sous-réseau** : Les 16 bits suivants, utilisés pour définir des sous-réseaux spécifiques au sein du réseau.
3. **Identifiant d'interface** : Les 64 derniers bits, identifiant de manière unique un appareil au sein du sous-réseau.
Alors qu'IPv6 omet le protocole ARP trouvé dans IPv4, il introduit **ICMPv6** avec deux messages principaux :
- **Solicitation de voisinage (NS)** : Messages multicast pour la résolution d'adresses.
- **Annonce de voisinage (NA)** : Réponses unicast aux NS ou annonces spontanées.
IPv6 intègre également des types d'adresses spéciaux :
- **Adresse de bouclage (`::1`)** : Équivalent à `127.0.0.1` en IPv4, pour la communication interne au sein de l'hôte.
- **Adresses de lien local (`FE80::/10`)** : Pour les activités de réseau local, non pour le routage internet. Les appareils sur le même réseau local peuvent se découvrir mutuellement en utilisant cette plage.
### Utilisation pratique de l'IPv6 dans les commandes réseau
Pour interagir avec les réseaux IPv6, vous pouvez utiliser diverses commandes :
- **Ping des adresses de lien local** : Vérifiez la présence des appareils locaux en utilisant `ping6`.
- **Découverte de voisinage** : Utilisez `ip neigh` pour voir les appareils découverts au niveau de la couche de liaison.
- **alive6** : Un outil alternatif pour découvrir les appareils sur le même réseau.
Voici quelques exemples de commandes :
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
Les adresses IPv6 peuvent être dérivées de l'adresse MAC d'un appareil pour la communication locale. Voici un guide simplifié sur la manière de dériver l'adresse IPv6 de lien local à partir d'une adresse MAC connue, ainsi qu'un bref aperçu des types d'adresses IPv6 et des méthodes pour découvrir les adresses IPv6 au sein d'un réseau.
## **Dérivation de l'adresse IPv6 de lien local à partir de l'adresse MAC**
Étant donné une adresse MAC **`12:34:56:78:9a:bc`**, vous pouvez construire l'adresse IPv6 de lien local comme suit :
1. Convertir la MAC en format IPv6 : **`1234:5678:9abc`**
2. Préfixer `fe80::` et insérer `fffe` au milieu : **`fe80::1234:56ff:fe78:9abc`**
3. Inverser le septième bit de gauche, en changeant `1234` en `1034` : **`fe80::1034:56ff:fe78:9abc`**
## **Types d'adresses IPv6**
- **Adresse Unique Locale (ULA)** : Pour les communications locales, non destinée au routage sur Internet public. Préfixe : **`FEC00::/7`**
- **Adresse Multicast** : Pour les communications de un à plusieurs. Livrée à toutes les interfaces du groupe multicast. Préfixe : **`FF00::/8`**
- **Adresse Anycast** : Pour les communications de un à plus proche. Envoyée à l'interface la plus proche selon le protocole de routage. Fait partie de la plage d'unicast globale **`2000::/3`**.
## **Préfixes d'adresse**
- **fe80::/10** : Adresses de lien local (similaire à 169.254.x.x)
- **fc00::/7** : Unique Local-Unicast (similaire aux plages IPv4 privées comme 10.x.x.x, 172.16.x.x, 192.168.x.x)
- **2000::/3** : Unicast Global
- **ff02::1** : Multicast Tous les Noeuds
- **ff02::2** : Multicast Noeuds Routeurs
## **Découverte des adresses IPv6 au sein d'un réseau**
### Méthode 1 : Utilisation des adresses de lien local
1. Obtenir l'adresse MAC d'un appareil dans le réseau.
2. Dériver l'adresse IPv6 de lien local à partir de l'adresse MAC.
### Méthode 2 : Utilisation du Multicast
1. Envoyer un ping à l'adresse multicast `ff02::1` pour découvrir les adresses IPv6 sur le réseau local.
```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
```
## Attaques de l'homme du milieu (MitM) IPv6
Plusieurs techniques existent pour exécuter des attaques MitM dans les réseaux IPv6, telles que :
- Le spoofing des annonces de voisin ou de routeur ICMPv6.
- L'utilisation des messages de redirection ICMPv6 ou "Packet Too Big" pour manipuler le routage.
- Attaquer le mobile IPv6 (nécessite généralement que IPSec soit désactivé).
- Mettre en place un serveur DHCPv6 malveillant.
# Identification des adresses IPv6 sur le terrain
## Exploration des sous-domaines
Une méthode pour trouver des sous-domaines potentiellement liés à des adresses IPv6 implique l'utilisation des moteurs de recherche. Par exemple, l'utilisation d'un motif de requête tel que `ipv6.*` peut être efficace. Plus précisément, la commande de recherche suivante peut être utilisée dans Google:
```bash
site:ipv6./
```
## Utilisation des requêtes DNS
Pour identifier les adresses IPv6, certains types d'enregistrements DNS peuvent être interrogés :
- **AXFR** : Demande un transfert de zone complet, permettant potentiellement de découvrir une large gamme d'enregistrements DNS.
- **AAAA** : Recherche directement des adresses IPv6.
- **ANY** : Une requête large qui renvoie tous les enregistrements DNS disponibles.
## Exploration avec Ping6
Après avoir identifié les adresses IPv6 associées à une organisation, l'utilitaire `ping6` peut être utilisé pour l'exploration. Cet outil aide à évaluer la réactivité des adresses IPv6 identifiées et peut également aider à découvrir des périphériques IPv6 adjacents.
## Références
* [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
{% hint style="success" %}
Apprenez et pratiquez le piratage AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le piratage GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Soutenez HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}