mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
113 lines
5.6 KiB
Markdown
113 lines
5.6 KiB
Markdown
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
# Teoria di base dell'IPv6
|
||
|
||
## Reti
|
||
|
||
Gli indirizzi IPv6 sono strutturati per migliorare l'organizzazione della rete e l'interazione dei dispositivi. Un indirizzo IPv6 è diviso in:
|
||
|
||
1. **Prefisso di rete**: I primi 48 bit, che determinano il segmento di rete.
|
||
2. **ID sottorete**: I successivi 16 bit, utilizzati per definire sottoreti specifiche all'interno della rete.
|
||
3. **Identificatore dell'interfaccia**: Gli ultimi 64 bit, che identificano un dispositivo in modo univoco all'interno della sottorete.
|
||
|
||
Mentre l'IPv6 omette il protocollo ARP presente nell'IPv4, introduce **ICMPv6** con due messaggi principali:
|
||
|
||
- **Richiesta di vicinato (NS)**: Messaggi multicast per la risoluzione degli indirizzi.
|
||
- **Annuncio di vicinato (NA)**: Risposte unicast a NS o annunci spontanei.
|
||
|
||
L'IPv6 incorpora anche tipi di indirizzi speciali:
|
||
|
||
- **Indirizzo di loopback (`::1`)**: Equivalente a `127.0.0.1` di IPv4, per la comunicazione interna all'host.
|
||
- **Indirizzi link-local (`FE80::/10`)**: Per attività di rete locali, non per il routing su internet. I dispositivi sulla stessa rete locale possono scoprire l'uno l'altro utilizzando questo intervallo.
|
||
|
||
### Utilizzo pratico dell'IPv6 nei comandi di rete
|
||
|
||
Per interagire con le reti IPv6, puoi utilizzare vari comandi:
|
||
|
||
- **Ping indirizzi link-local**: Controlla la presenza di dispositivi locali utilizzando `ping6`.
|
||
- **Scoperta dei vicini**: Usa `ip neigh` per visualizzare i dispositivi scoperti a livello di link.
|
||
- **alive6**: Uno strumento alternativo per scoprire dispositivi sulla stessa rete.
|
||
|
||
Di seguito alcuni esempi di comandi:
|
||
```bash
|
||
ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1
|
||
ip neigh | grep ^fe80
|
||
|
||
# Alternatively, use alive6 for neighbor discovery
|
||
alive6 eth0
|
||
```
|
||
Gli indirizzi IPv6 possono essere derivati dall'indirizzo MAC di un dispositivo per la comunicazione locale. Ecco una guida semplificata su come derivare l'indirizzo IPv6 Link-local da un indirizzo MAC noto e una breve panoramica dei tipi di indirizzi IPv6 e dei metodi per scoprire gli indirizzi IPv6 all'interno di una rete.
|
||
|
||
## **Derivazione dell'IPv6 Link-local dall'indirizzo MAC**
|
||
|
||
Dato un indirizzo MAC **`12:34:56:78:9a:bc`**, puoi costruire l'indirizzo IPv6 Link-local come segue:
|
||
|
||
1. Converti il MAC nel formato IPv6: **`1234:5678:9abc`**
|
||
2. Prependi `fe80::` e inserisci `fffe` nel mezzo: **`fe80::1234:56ff:fe78:9abc`**
|
||
3. Inverti il settimo bit da sinistra, cambiando `1234` in `1034`: **`fe80::1034:56ff:fe78:9abc`**
|
||
|
||
## **Tipi di Indirizzi IPv6**
|
||
|
||
- **Indirizzo Locale Unico (ULA)**: Per comunicazioni locali, non destinato al routing su internet pubblico. Prefisso: **`FEC00::/7`**
|
||
- **Indirizzo Multicast**: Per comunicazione uno-a-molti. Consegnato a tutte le interfacce nel gruppo multicast. Prefisso: **`FF00::/8`**
|
||
- **Indirizzo Anycast**: Per comunicazione uno-a-più-vicina. Inviato all'interfaccia più vicina secondo il protocollo di routing. Parte dell'intervallo di unicast globale **`2000::/3`**.
|
||
|
||
## **Prefissi degli Indirizzi**
|
||
|
||
- **fe80::/10**: Indirizzi Link-Local (simile a 169.254.x.x)
|
||
- **fc00::/7**: Unicast Locale Unico (simile a intervalli IPv4 privati come 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||
- **2000::/3**: Unicast Globale
|
||
- **ff02::1**: Multicast Tutti i Nodi
|
||
- **ff02::2**: Multicast Nodi Router
|
||
|
||
## **Scoprire Indirizzi IPv6 all'interno di una Rete**
|
||
|
||
### Modo 1: Utilizzando Indirizzi Link-local
|
||
|
||
1. Ottieni l'indirizzo MAC di un dispositivo all'interno della rete.
|
||
2. Deriva l'indirizzo IPv6 Link-local dall'indirizzo MAC.
|
||
|
||
### Modo 2: Utilizzando Multicast
|
||
|
||
1. Invia un ping all'indirizzo multicast `ff02::1` per scoprire indirizzi IPv6 sulla rete locale.
|
||
```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
|
||
```
|
||
## Attacchi Man-in-the-Middle (MitM) IPv6
|
||
|
||
Esistono diverse tecniche per eseguire attacchi MitM nelle reti IPv6, come:
|
||
|
||
- Spoofing delle pubblicità dei vicini o dei router ICMPv6.
|
||
- Utilizzo di messaggi ICMPv6 di reindirizzamento o "Pacchetto Troppo Grande" per manipolare il routing.
|
||
- Attacco a mobile IPv6 (di solito richiede che IPSec sia disabilitato).
|
||
- Configurazione di un server DHCPv6 malevolo.
|
||
|
||
# Identificazione degli indirizzi IPv6 nel campo
|
||
|
||
## Esplorazione dei Sottodomini
|
||
|
||
Un metodo per trovare sottodomini che sono potenzialmente collegati a indirizzi IPv6 implica l'uso di motori di ricerca. Ad esempio, impiegare un modello di query come `ipv6.*` può essere efficace. In particolare, il seguente comando di ricerca può essere utilizzato in Google:
|
||
```bash
|
||
site:ipv6./
|
||
```
|
||
## Utilizzo delle Query DNS
|
||
|
||
Per identificare gli indirizzi IPv6, è possibile interrogare determinati tipi di record DNS:
|
||
|
||
- **AXFR**: Richiede un trasferimento completo della zona, potenzialmente rivelando un'ampia gamma di record DNS.
|
||
- **AAAA**: Cerca direttamente indirizzi IPv6.
|
||
- **ANY**: Una query ampia che restituisce tutti i record DNS disponibili.
|
||
|
||
## Probing con Ping6
|
||
|
||
Dopo aver individuato gli indirizzi IPv6 associati a un'organizzazione, è possibile utilizzare l'utilità `ping6` per il probing. Questo strumento aiuta a valutare la reattività degli indirizzi IPv6 identificati e potrebbe anche assistere nella scoperta di dispositivi IPv6 adiacenti.
|
||
|
||
## Riferimenti
|
||
|
||
- [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}}
|