tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
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:
- Prefisso di rete: I primi 48 bit, che determinano il segmento di rete.
- ID sottorete: I successivi 16 bit, utilizzati per definire sottoreti specifiche all'interno della rete.
- 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 a127.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:
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:
- Converti il MAC nel formato IPv6:
1234:5678:9abc
- Prependi
fe80::
e inseriscifffe
nel mezzo:fe80::1234:56ff:fe78:9abc
- Inverti il settimo bit da sinistra, cambiando
1234
in1034
: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
- Ottieni l'indirizzo MAC di un dispositivo all'interno della rete.
- Deriva l'indirizzo IPv6 Link-local dall'indirizzo MAC.
Modo 2: Utilizzando Multicast
- Invia un ping all'indirizzo multicast
ff02::1
per scoprire indirizzi IPv6 sulla rete locale.
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:
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
- https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.