Pentesting IPv6

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Teoria di base su IPv6

Reti

Gli indirizzi IPv6 sono strutturati per migliorare l'organizzazione delle reti 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 in modo univoco un dispositivo all'interno della sottorete.

Mentre IPv6 omette il protocollo ARP presente in IPv4, introduce ICMPv6 con due messaggi principali:

  • Neighbor Solicitation (NS): Messaggi multicast per la risoluzione degli indirizzi.

  • Neighbor Advertisement (NA): Risposte unicast a NS o annunci spontanei.

IPv6 incorpora anche tipi di indirizzo 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 locale, non per il routing su Internet. I dispositivi sulla stessa rete locale possono scoprirsi utilizzando questo intervallo.

Utilizzo pratico di IPv6 nei comandi di rete

Per interagire con le reti IPv6, è possibile utilizzare vari comandi:

  • Ping degli indirizzi link-local: Verifica la presenza di dispositivi locali utilizzando ping6.

  • Neighbor Discovery: Utilizza ip neigh per visualizzare i dispositivi scoperti a livello di collegamento.

  • alive6: Un tool alternativo per scoprire i dispositivi nella 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 sui tipi di indirizzi IPv6 e sui metodi per scoprire gli indirizzi IPv6 all'interno di una rete.

Dato un indirizzo MAC 12:34:56:78:9a:bc, è possibile costruire l'indirizzo IPv6 Link-local come segue:

  1. Convertire il MAC in formato IPv6: 1234:5678:9abc

  2. Preporre fe80:: e inserire fffe al centro: fe80::1234:56ff:fe78:9abc

  3. Invertire il settimo bit da sinistra, cambiando 1234 in 1034: fe80::1034:56ff:fe78:9abc

Tipi di indirizzi IPv6

  • Indirizzo unico locale (ULA): Per le comunicazioni locali, non destinato al routing pubblico su Internet. Prefisso: FEC00::/7

  • Indirizzo multicast: Per la comunicazione uno-a-molti. Recapitato a tutte le interfacce nel gruppo di multicast. Prefisso: FF00::/8

  • Indirizzo anycast: Per la comunicazione uno-a-più-vicini. 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 (simili a 169.254.x.x)

  • fc00::/7: Unicast locale unico (simile ai range 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 gli indirizzi IPv6 all'interno di una rete

  1. Ottenere l'indirizzo MAC di un dispositivo all'interno della rete.

  2. Derivare l'indirizzo IPv6 Link-local dall'indirizzo MAC.

Modo 2: Utilizzando il Multicast

  1. Inviare un ping all'indirizzo di multicast ff02::1 per scoprire gli indirizzi IPv6 nella 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) su IPv6

Esistono diverse tecniche per eseguire attacchi MitM nelle reti IPv6, come:

  • Spoofing degli annunci ICMPv6 dei vicini o dei router.

  • Utilizzo di messaggi ICMPv6 di reindirizzamento o "Packet Too Big" per manipolare il routing.

  • Attacco a mobile IPv6 (di solito richiede la disabilitazione di IPSec).

  • Configurazione di un server DHCPv6 falso.

Identificazione degli indirizzi IPv6 nel campo

Esplorazione dei sottodomini

Un metodo per trovare sottodomini potenzialmente collegati agli indirizzi IPv6 consiste nell'utilizzare i motori di ricerca. Ad esempio, l'utilizzo di un pattern di query come ipv6.* può essere efficace. In particolare, il seguente comando di ricerca può essere utilizzato su Google:

site:ipv6./

Utilizzo delle query DNS

Per identificare gli indirizzi IPv6, è possibile effettuare determinati tipi di query DNS:

  • AXFR: Richiede un trasferimento completo della zona, rivelando potenzialmente una vasta gamma di record DNS.

  • AAAA: Cerca direttamente gli indirizzi IPv6.

  • ANY: Una query generale che restituisce tutti i record DNS disponibili.

Sondaggio con Ping6

Dopo aver individuato gli indirizzi IPv6 associati a un'organizzazione, è possibile utilizzare l'utilità ping6 per il sondaggio. Questo strumento aiuta a valutare la reattività degli indirizzi IPv6 identificati e potrebbe anche aiutare a scoprire dispositivi IPv6 adiacenti.

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated