Pentesting IPv6

Apoya a HackTricks

Teoría básica de IPv6

Redes

Las direcciones IPv6 están estructuradas para mejorar la organización de redes y la interacción de dispositivos. Una dirección IPv6 se divide en:

  1. Prefijo de red: Los primeros 48 bits, que determinan el segmento de red.

  2. ID de subred: Los siguientes 16 bits, utilizados para definir subredes específicas dentro de la red.

  3. Identificador de interfaz: Los últimos 64 bits, que identifican de forma única un dispositivo dentro de la subred.

Mientras que IPv6 omite el protocolo ARP encontrado en IPv4, introduce ICMPv6 con dos mensajes principales:

  • Solicitud de vecino (NS): Mensajes multicast para resolución de direcciones.

  • Anuncio de vecino (NA): Respuestas unicast a NS o anuncios espontáneos.

IPv6 también incorpora tipos de direcciones especiales:

  • Dirección de bucle local (::1): Equivalente al 127.0.0.1 de IPv4, para comunicación interna dentro del host.

  • Direcciones de enlace local (FE80::/10): Para actividades de red local, no para enrutamiento en internet. Los dispositivos en la misma red local pueden descubrirse mutuamente utilizando este rango.

Uso práctico de IPv6 en comandos de red

Para interactuar con redes IPv6, puedes utilizar varios comandos:

  • Ping a direcciones de enlace local: Verifica la presencia de dispositivos locales usando ping6.

  • Descubrimiento de vecinos: Utiliza ip neigh para ver los dispositivos descubiertos en la capa de enlace.

  • alive6: Una herramienta alternativa para descubrir dispositivos en la misma red.

A continuación se muestran algunos ejemplos de comandos:

ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80

# Alternatively, use alive6 for neighbor discovery
alive6 eth0

Derivando la Dirección IPv6 de Enlace Local desde la Dirección MAC

Dada una dirección MAC 12:34:56:78:9a:bc, puedes construir la dirección IPv6 de Enlace Local de la siguiente manera:

  1. Convertir la MAC a formato IPv6: 1234:5678:9abc

  2. Anteponer fe80:: e insertar fffe en el medio: fe80::1234:56ff:fe78:9abc

  3. Invertir el séptimo bit desde la izquierda, cambiando 1234 a 1034: fe80::1034:56ff:fe78:9abc

Tipos de Direcciones IPv6

  • Dirección Única Local (ULA): Para comunicaciones locales, no destinada al enrutamiento público en internet. Prefijo: FEC00::/7

  • Dirección Multicast: Para comunicación uno a muchos. Entregada a todas las interfaces en el grupo de multidifusión. Prefijo: FF00::/8

  • Dirección Anycast: Para comunicación uno a más cercano. Enviada a la interfaz más cercana según el protocolo de enrutamiento. Parte del rango de unicast global 2000::/3.

Prefijos de Direcciones

  • fe80::/10: Direcciones de Enlace Local (similar a 169.254.x.x)

  • fc00::/7: Única Local-Unicast (similar a rangos IPv4 privados como 10.x.x.x, 172.16.x.x, 192.168.x.x)

  • 2000::/3: Unicast Global

  • ff02::1: Multidifusión Todos los Nodos

  • ff02::2: Multidifusión Nodos de Enrutador

Descubriendo Direcciones IPv6 dentro de una Red

Forma 1: Utilizando Direcciones de Enlace Local

  1. Obtener la dirección MAC de un dispositivo dentro de la red.

  2. Derivar la dirección IPv6 de Enlace Local desde la dirección MAC.

Forma 2: Utilizando Multidifusión

  1. Enviar un ping a la dirección de multidifusión ff02::1 para descubrir direcciones IPv6 en la red local.

service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table

Ataques de Hombre en el Medio (MitM) en IPv6

Existen varias técnicas para llevar a cabo ataques MitM en redes IPv6, tales como:

  • Falsificación de anuncios de vecino o router ICMPv6.

  • Utilización de mensajes de redirección ICMPv6 o mensajes de "Paquete Demasiado Grande" para manipular el enrutamiento.

  • Atacar IPv6 móvil (generalmente requiere que IPSec esté deshabilitado).

  • Configurar un servidor DHCPv6 falso.

Identificación de Direcciones IPv6 en el campo

Exploración de Subdominios

Un método para encontrar subdominios que estén potencialmente vinculados a direcciones IPv6 implica aprovechar los motores de búsqueda. Por ejemplo, utilizar un patrón de consulta como ipv6.* puede ser efectivo. Específicamente, el siguiente comando de búsqueda se puede utilizar en Google:

site:ipv6./

Utilizando Consultas DNS

Para identificar direcciones IPv6, se pueden consultar ciertos tipos de registros DNS:

  • AXFR: Solicita una transferencia completa de zona, lo que potencialmente descubre una amplia gama de registros DNS.

  • AAAA: Busca directamente direcciones IPv6.

  • ANY: Una consulta amplia que devuelve todos los registros DNS disponibles.

Sondeando con Ping6

Después de identificar las direcciones IPv6 asociadas con una organización, se puede utilizar la utilidad ping6 para sondear. Esta herramienta ayuda a evaluar la capacidad de respuesta de las direcciones IPv6 identificadas, y también puede ayudar a descubrir dispositivos IPv6 adyacentes.

Referencias

Apoya a HackTricks

Last updated