Pentesting IPv6

Sostieni HackTricks

Teoria di base su 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 di 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:

  • Sondaggio del vicino (NS): Messaggi multicast per la risoluzione degli indirizzi.

  • Annuncio del vicino (NA): Risposte unicast a NS o annunci spontanei.

IPv6 incorpora anche tipi di indirizzi speciali:

  • Indirizzo di loopback (::1): Equivalente al 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.

  • Scoperta del vicino: Utilizza ip neigh per visualizzare i dispositivi scoperti a livello di collegamento.

  • alive6: Un tool alternativo per scoprire i 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 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. Converti il MAC in formato IPv6: 1234:5678:9abc

  2. Anteporre 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 Locale Unico (ULA): Per comunicazioni locali, non destinato al routing pubblico su Internet. Prefisso: FEC00::/7

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

  • Indirizzo Anycast: Per comunicazioni 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

Scoperta degli 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 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:

  • Falsificare annunci di vicinato o router ICMPv6.

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

  • Attaccare IPv6 mobile (di solito richiede che IPSec sia disabilitato).

  • Configurare un server DHCPv6 fraudolento.

Identificazione degli Indirizzi IPv6 nel campo

Esplorazione dei Sottodomini

Un metodo per trovare sottodomini potenzialmente collegati agli indirizzi IPv6 coinvolge l'utilizzo dei motori di ricerca. Ad esempio, l'impiego di un modello 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 interrogare determinati tipi di record DNS:

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

  • AAAA: Cerca direttamente gli indirizzi IPv6.

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

Indagine con Ping6

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

Riferimenti

Sostieni HackTricks

Last updated