7.7 KiB
{% hint style="success" %}
Aprende y practica Hacking en AWS: HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- ¡Consulta los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
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:
- Prefijo de red: Los primeros 48 bits, que determinan el segmento de red.
- ID de subred: Los siguientes 16 bits, utilizados para definir subredes específicas dentro de la red.
- 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 al127.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:
- Convertir la MAC a formato IPv6:
1234:5678:9abc
- Anteponer
fe80::
e insertarfffe
en el medio:fe80::1234:56ff:fe78:9abc
- Invertir el séptimo bit desde la izquierda, cambiando
1234
a1034
: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
- Obtener la dirección MAC de un dispositivo dentro de la red.
- Derivar la dirección IPv6 de Enlace Local desde la dirección MAC.
Forma 2: Utilizando Multidifusión
- 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
- 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
{% hint style="success" %}
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- ¡Consulta los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.