
{"id":2049,"date":"2026-06-06T07:36:16","date_gmt":"2026-06-06T07:36:16","guid":{"rendered":"https:\/\/www.ipv6council.es\/?p=2049"},"modified":"2026-06-06T07:36:16","modified_gmt":"2026-06-06T07:36:16","slug":"ipv6-para-pentesters-probando-el-protocolo","status":"publish","type":"post","link":"https:\/\/www.ipv6council.es\/index.php\/2026\/06\/06\/ipv6-para-pentesters-probando-el-protocolo\/","title":{"rendered":"IPv6 para pentesters: probando el protocolo"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">IPv6 ya no es una tecnolog\u00eda experimental ni una promesa futura. En muchas redes de proveedores de acceso, infraestructuras cloud y entornos corporativos es ya el protocolo predominante. Sin embargo, en numerosas ocasiones su despliegue se realiza sin que los equipos <\/span><span style=\"font-weight: 400;\">ni herramientas <\/span><span style=\"font-weight: 400;\">de seguridad tengan una visibilidad completa de su funcionamiento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Desde la perspectiva de las pruebas t\u00e9cnicas de seguridad esto abre un escenario interesante: redes que operan en <\/span><b>dual stack<\/b><span style=\"font-weight: 400;\">, servicios accesibles por IPv6 que no han sido auditados y mecanismos de autoconfiguraci\u00f3n que pueden ser explotados<\/span><span style=\"font-weight: 400;\">,<\/span><span style=\"font-weight: 400;\"> si no se entienden <\/span><span style=\"font-weight: 400;\">y configuran<\/span><span style=\"font-weight: 400;\"> correctamente. <\/span><span style=\"font-weight: 400;\">Otro punto de atenci\u00f3n lo constituye el sesgo con el que trabajan la mayor\u00eda de los ingenieros de redes y sistemas, que tienen a continuar con las reglas del modelo IPv4 en lugar de entender y plantearse un nuevo modelo. As\u00ed algunos de ellos siguen aduciendo que el NAT es una capa adicional de seguridad y apuestan por el uso de NAT66, cuando los mecanismos para saltarse los NAT, como NAT-traversal se estandarizaron hace tiempo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esta serie de art\u00edculos, publicada desde el IPv6 Council en Madrid, tiene como objetivo explorar IPv6 desde un punto de vista pr\u00e1ctico y t\u00e9cnico, utilizando <\/span><span style=\"font-weight: 400;\">el enfoque y las <\/span><span style=\"font-weight: 400;\">herramientas habituales en auditor\u00eda de seguridad y pentesting.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El enfoque ser\u00e1 eminentemente t\u00e9cnico y orientado a pruebas reales. A lo largo de los distintos art\u00edculos veremos c\u00f3mo:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">preparar un entorno de laboratorio IPv6<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">analizar el comportamiento del protocolo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">descubrir hosts y servicios<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">identificar superficies de ataque<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">aplicar t\u00e9cnicas ofensivas espec\u00edficas sobre IPv6<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">En este primer art\u00edculo nos centraremos en establecer un <\/span><b>laboratorio funcional IPv6<\/b><span style=\"font-weight: 400;\"> y en realizar las primeras verificaciones t\u00e9cnicas que nos permitan entender c\u00f3mo se comporta el protocolo desde la perspectiva de un auditor de seguridad.<\/span><\/p>\n<h3><b>Preparando el entorno de laboratorio<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Para las pruebas utilizaremos <\/span><b>Kali Linux<\/b> <span style=\"font-weight: 400;\">en nuestro host conectado al laboratorio del Council,<\/span><span style=\"font-weight: 400;\"> una distribuci\u00f3n ampliamente utilizada en auditor\u00edas de seguridad y an\u00e1lisis de redes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El entorno de laboratorio utilizar\u00e1 dos fuentes principales de conectividad IPv6:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">una <\/span><b>VPN WireGuard<\/b><span style=\"font-weight: 400;\"> hacia el laboratorio IPv6 del IPv6 Council<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">conectividad IPv6 sobre redes IPv4 mediante <\/span><b>t\u00faneles IPv6<\/b><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">El laboratorio IPv6 <\/span><span style=\"font-weight: 400;\">del Council<\/span><span style=\"font-weight: 400;\"> est\u00e1 patrocinado por la empresa <\/span><b>W-A-T<\/b><span style=\"font-weight: 400;\">, que proporciona infraestructura IPv6 que utilizaremos a lo largo de esta serie para realizar pruebas t\u00e9cnicas y experimentos de seguridad m\u00e1s avanzados.<\/span><\/p>\n<p>Mediante esta conectividad dispondremos de visibilidad sobre las m\u00e1quinas controladas del laboratorio, cuya infraestructura opera exclusivamente sobre IPv6, sin conectividad IPv4 entre los hosts. Adem\u00e1s, obtendremos acceso a Internet a trav\u00e9s de IPv6, con un enfoque principalmente <em data-start=\"290\" data-end=\"301\">IPv6-only (<\/em>si fuera necesario acceder a recursos IPv4, podr\u00eda habilitarse un mecanismo de traducci\u00f3n mediante NAT64 y DNS64). Todo esto proporcionar\u00e1 un entorno controlado para la realizaci\u00f3n de pruebas ofensivas y el an\u00e1lisis de servicios desplegados sobre una pila de red IPv6 completa, permitiendo observar su comportamiento sin la intervenci\u00f3n de mecanismos heredados de IPv4.<\/p>\n<h3><b>Conectividad IPv6 mediante WireGuard<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Una vez establecida la conexi\u00f3n VPN mediante WireGuard podemos verificar la configuraci\u00f3n de red del sistema con el comando:<\/span><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">ip a<\/span><\/h6>\n<\/blockquote>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2052\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen1.jpg\" alt=\"\" width=\"512\" height=\"241\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen1.jpg 512w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen1-300x141.jpg 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">La salida del comando confirma que la m\u00e1quina dispone de tres interfaces relevantes: <\/span><b>lo<\/b><span style=\"font-weight: 400;\">, <\/span><b>enX0 <\/b><span style=\"font-weight: 400;\">y <\/span><b>enX1<\/b><span style=\"font-weight: 400;\">.<\/span><\/h6>\n<h6><span style=\"font-weight: 400;\">Las interfaces <\/span><b>enX0 <\/b><span style=\"font-weight: 400;\">y <\/span><b>enX1 <\/b><span style=\"font-weight: 400;\">aparecen activas y con capacidad MULTICAST, algo esperable en un entorno IPv6, donde muchos mecanismos de control y descubrimiento sustituyen el broadcast de IPv4 por multicast. Adem\u00e1s, en IPv6 es normal que una misma interfaz tenga varias direcciones simult\u00e1neamente con distinto alcance o scope, por ejemplo una direcci\u00f3n global para comunicaci\u00f3n normal y una direcci\u00f3n link-local para funciones locales del enlace.<\/span><\/h6>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">En IPv6 existen distintos tipos de direcciones, pero en un laboratorio como este veremos principalmente dos:<\/span><\/p>\n<h5><b>1. Direcciones Link-Local<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Pertenecen al prefijo <\/span><strong>fe80::\/10<\/strong><\/p>\n<div class=\"qMYqUG_convSearchResultHighlightRoot\">\n<div class=\"\" data-turn-id-container=\"request-WEB:e9b5dcdf-5f2a-4b9a-b2eb-b9be56bfbb38-0\" data-is-intersecting=\"true\">\n<section class=\"text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:e9b5dcdf-5f2a-4b9a-b2eb-b9be56bfbb38-0\" data-turn-id-container=\"request-WEB:e9b5dcdf-5f2a-4b9a-b2eb-b9be56bfbb38-0\" data-testid=\"conversation-turn-2\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" data-conversation-screenshot-content=\"\">\n<div class=\"flex max-w-full flex-col gap-4 grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"ad3b2d63-c88f-45c2-bf5a-fcd48e5ccf4e\" data-message-model-slug=\"gpt-5-5\" data-turn-start-message=\"true\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden\">\n<div class=\"markdown prose dark:prose-invert wrap-break-word w-full dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"337\" data-is-last-node=\"\" data-is-only-node=\"\">Estas direcciones se generan autom\u00e1ticamente en cada interfaz IPv6 y est\u00e1n dise\u00f1adas para funcionar \u00fanicamente dentro del segmento de red local al que pertenece el dispositivo. Su alcance queda limitado a ese enlace, por lo que no pueden ser enrutadas ni utilizadas para comunicarse con equipos situados fuera de la red local.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<p><span style=\"font-weight: 400;\">En t\u00e9rminos de funcionamiento de red, <\/span>se utilizan para procesos esenciales como <em data-start=\"154\" data-end=\"174\">Neighbor Discovery<\/em>, la autoconfiguraci\u00f3n autom\u00e1tica de direcciones y la comunicaci\u00f3n directa entre nodos conectados al mismo enlace de red.<\/p>\n<p><span style=\"font-weight: 400;\">Desde la perspectiva de seguridad, muchas operaciones cr\u00edticas del protocolo IPv6 dependen exclusivamente de direcciones link-local, lo que las convierte en un punto de inter\u00e9s para ataques locales en la red.<\/span><\/p>\n<h5><b>2.Direcciones Global Unicast<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Las direcciones <\/span><b>Global Unicast<\/b><span style=\"font-weight: 400;\"> son el equivalente funcional a las direcciones p\u00fablicas de IPv4. <\/span><span style=\"font-weight: 400;\">Normalmente pertenecen a prefijos como <\/span><strong>2000::\/3, <\/strong>p<span style=\"font-weight: 400;\">or ello es muy habitual observar direcciones IPv6 que comienzan por <\/span><strong>2xxx:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Estas direcciones son <\/span><b>globalmente enrutables y \u00fanicas <\/b><span style=\"font-weight: 400;\">en Internet y utilizadas para comunicaci\u00f3n <\/span><b>end-to-end.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">En otras palabras, cuando un host dispone de una direcci\u00f3n Global Unicast puede comunicarse directamente con cualquier otro host IPv6 en Internet sin necesidad de NAT.<\/span><\/p>\n<div class=\"flex max-w-full flex-col gap-4 grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"d56f00b0-d803-45b8-bb25-5cb46815ad48\" data-message-model-slug=\"gpt-5-5\" data-turn-start-message=\"true\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden\">\n<div class=\"markdown prose dark:prose-invert wrap-break-word w-full dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"916\" data-is-last-node=\"\" data-is-only-node=\"\">Desde la perspectiva de la ciberseguridad, este modelo tiene implicaciones relevantes. En IPv6, una configuraci\u00f3n deficiente puede exponer servicios directamente a Internet, ya que desaparece la capa de <span style=\"font-weight: 400;\">pseudo-<\/span><span style=\"font-weight: 400;\">ocultaci\u00f3n<\/span> que suele aportar la traducci\u00f3n de direcciones (NAT) en muchos entornos IPv4, aunque dicha protecci\u00f3n nunca ha sido absoluta y puede ser sorteada mediante diversas t\u00e9cnicas. El dise\u00f1o nativo de IPv6 favorece una conectividad real de extremo a extremo entre hosts, lo que implica que cada dispositivo o servicio puede ser potencialmente alcanzable desde cualquier punto de Internet IPv6 si las pol\u00edticas de filtrado y control de acceso no est\u00e1n correctamente configuradas. <span style=\"font-weight: 400;\">Como consecuencia, las superficies de ataque de cada dispositivo o servicio son potencialmente accesibles desde cualquier punto de Internet IPv6.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3><b>Tabla de rutas IPv6<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Podemos examinar la tabla de rutas IPv6 con:<\/span><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">ip -6 <\/span><span style=\"font-weight: 400;\">route<\/span><\/h6>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">Este comando nos permite identificar el <\/span><b>gateway IPv6, <\/b><span style=\"font-weight: 400;\">el prefijo asignado al laboratorio y las rutas necesarias para alcanzar Internet, otras redes\u2026<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2054\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen2.jpg\" alt=\"\" width=\"602\" height=\"108\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen2.jpg 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen2-300x54.jpg 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">El campo <\/span><b>proto kernel<\/b><span style=\"font-weight: 400;\"> significa que estas rutas han sido creadas autom\u00e1ticamente por el kernel al asignar direcciones IPv6 a esas interfaces, y su presencia confirma que vm0 tiene conectividad local simult\u00e1nea en ambos segmentos.<\/span><\/h6>\n<h6><span style=\"font-weight: 400;\">Adem\u00e1s, aparecen dos rutas por defecto: una mediante la direcci\u00f3n global <\/span><b>2001:920:580d:f00::1<\/b><span style=\"font-weight: 400;\"> y otra aprendida autom\u00e1ticamente por Router Advertisement usando la direcci\u00f3n link-local<\/span><b> fe80::4c4f:53ff:fef5:ffca<\/b><span style=\"font-weight: 400;\"> en<\/span><b> enX0<\/b><span style=\"font-weight: 400;\">. Esta segunda entrada ilustra muy bien c\u00f3mo IPv6 utiliza <\/span><b>NDP <\/b><span style=\"font-weight: 400;\">y <\/span><b>Router Advertisement<\/b><span style=\"font-weight: 400;\"> para aprender gateways de forma din\u00e1mica, sin depender exclusivamente de configuraci\u00f3n manual.<\/span><\/h6>\n<\/blockquote>\n<h3><b>Descubrimiento de hosts mediante multicast<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A diferencia de IPv4, IPv6 elimina el concepto de broadcast y utiliza <\/span><b>multicast<\/b><span style=\"font-weight: 400;\"> para muchas operaciones del protocolo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Una direcci\u00f3n especialmente interesante es ff02::1. Esta direcci\u00f3n corresponde al grupo <\/span><b>all-nodes multicast<\/b><span style=\"font-weight: 400;\">, que incluye todos los dispositivos IPv6 del enlace local.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Podemos enviar un ping multicast con:<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2057\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen3.jpg\" alt=\"\" width=\"483\" height=\"276\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen3.jpg 483w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen3-300x171.jpg 300w\" sizes=\"(max-width: 483px) 100vw, 483px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Si existen otros hosts IPv6 en el mismo segmento, estos pueden responder al ping, lo que permite observar qu\u00e9 dispositivos est\u00e1n presentes en la red.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Desde la perspectiva de auditor\u00eda, este comportamiento puede utilizarse para <\/span><b>descubrimiento r\u00e1pido de nodos en redes IPv6 locales<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><b>Resoluci\u00f3n DNS en IPv6<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Los servicios accesibles mediante IPv6 se publican en DNS mediante registros <\/span><b>AAAA<\/b><span style=\"font-weight: 400;\">. <\/span><span style=\"font-weight: 400;\">La consulta propiamente dicha del registro AAAA puede hacerse sobre IPv4 o sobre IPv6 indistintamente. En nuestro Laboratorio ir\u00e1n por IPv6 salvo que sea necesario (algunos DNS autoritativos podr\u00edan no contestar en IPv6). En ese caso se habilitar\u00eda un DNS64+NAT64.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Podemos consultarlos con:<\/span><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">dig google.com AAAA<\/span><\/h6>\n<\/blockquote>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2058\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen4.jpg\" alt=\"\" width=\"421\" height=\"284\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen4.jpg 421w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen4-300x202.jpg 300w\" sizes=\"(max-width: 421px) 100vw, 421px\" \/><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">Esto indica que el servicio dispone de una direcci\u00f3n IPv6 accesible p\u00fablicamente.<\/span><\/h6>\n<h6><span style=\"font-weight: 400;\">En redes dual stack los sistemas operativos modernos suelen aplicar pol\u00edticas como <\/span><b>Happy Eyeballs<\/b><span style=\"font-weight: 400;\">, eligiendo din\u00e1micamente entre IPv4 e IPv6 seg\u00fan latencia y disponibilidad.<\/span><\/h6>\n<\/blockquote>\n<h3><b>Observando el tr\u00e1fico IPv6 con Wireshark<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Una forma excelente de comprender el funcionamiento del protocolo es capturar tr\u00e1fico de red. Podemos generar tr\u00e1fico simple con:<\/span><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">ping6 google.com<\/span><\/h6>\n<\/blockquote>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2059\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen5.png\" alt=\"\" width=\"602\" height=\"269\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen5.png 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen5-300x134.png 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">En los paquetes capturados podremos analizar la cabecera IPv6, que contiene campos como:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Version<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Traffic Class<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Flow Label<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Payload Length<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Next Header<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Hop Limit<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Source Address<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Destination Address<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A diferencia de IPv4, IPv6 simplifica la cabecera base y delega funcionalidades adicionales en <\/span><b>extension headers<\/b><span style=\"font-weight: 400;\">, lo cual tiene implicaciones relevantes en sistemas de inspecci\u00f3n de tr\u00e1fico y seguridad.<\/span><\/p>\n<h3><b>Neighbor Discovery (ND)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">IPv6 reemplaza el protocolo ARP utilizado en IPv4 mediante <\/span><b>Neighbor Discovery Protocol (NDP)<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p>NDP utiliza mensajes ICMPv6 para llevar a cabo funciones esenciales para el funcionamiento de una red IPv6. Entre ellas se encuentran el descubrimiento de nodos vecinos, la resoluci\u00f3n de direcciones MAC asociadas a direcciones IPv6, la detecci\u00f3n y localizaci\u00f3n de routers disponibles en el enlace, as\u00ed como el mantenimiento de la conectividad local mediante diversos mecanismos de verificaci\u00f3n y actualizaci\u00f3n de informaci\u00f3n sobre los dispositivos presentes en la red.<\/p>\n<p><span style=\"font-weight: 400;\">Los mensajes principales son:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Neighbor Solicitation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Neighbor Advertisement<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Router Solicitation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Router Advertisement<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Podemos observar estos mensajes capturando tr\u00e1fico con Wireshark mientras interactuamos con otros hosts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En la siguiente imagen se puede observar el intercambio Neighbor Solicitation\/Neighbor Advertisement entre vm0 y lab-gw:<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2060\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen6.jpg\" alt=\"\" width=\"602\" height=\"228\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen6.jpg 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen6-300x114.jpg 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Tambi\u00e9n el paquete de <strong>router Solicitation<\/strong>:<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2061\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen7.png\" alt=\"\" width=\"602\" height=\"35\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen7.png 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen7-300x17.png 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2062\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen8.png\" alt=\"\" width=\"602\" height=\"67\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen8.png 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen8-300x33.png 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">NDP es especialmente relevante porque es susceptible a diferentes ataques locales, como: NDP spoofing, MITM en redes IPv6, Interceptaci\u00f3n de tr\u00e1fico local\u2026<\/span><\/p>\n<h3><b>Autoconfiguraci\u00f3n de direcciones (SLAAC)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Una caracter\u00edstica fundamental de IPv6 es la <\/span><b>Stateless Address Autoconfiguration (SLAAC)<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mediante SLAAC, un host puede obtener autom\u00e1ticamente una direcci\u00f3n IPv6 v\u00e1lida utilizando:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">un <\/span><b>prefijo anunciado por el router<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">un identificador de interfaz<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Este proceso se basa en mensajes <\/span><b>Router Advertisement (RA)<\/b><span style=\"font-weight: 400;\"> enviados por routers de la red. Podemos observarlos capturando tr\u00e1fico en la interfaz local del laboratorio:<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2063\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen9.jpg\" alt=\"\" width=\"602\" height=\"161\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen9.jpg 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen9-300x80.jpg 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">Los campos de tiempo de vida tambi\u00e9n son relevantes: valid time 86400s (24 horas) indica cu\u00e1nto tiempo es v\u00e1lida la direcci\u00f3n generada, y pref. time 14400s (4 horas) marca el periodo durante el cual se prefiere esa direcci\u00f3n para nuevas conexiones. El campo router lifetime 1800s indica que los nodos deben considerar este router como gateway v\u00e1lido durante 30 minutos si dejan de recibir anuncios.<\/span><\/h6>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">Podemos ver el resultado en la tabla de direcciones de vm0:<\/span><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2064\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen10.jpg\" alt=\"\" width=\"602\" height=\"105\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen10.jpg 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen10-300x52.jpg 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">En este laboratorio vm0 tiene <\/span><b>configurada est\u00e1ticamente<\/b><span style=\"font-weight: 400;\"> la direcci\u00f3n 2a0e:a980:ff00::1000 dentro del prefijo anunciado por el RA \u2014 por eso aparece con valid_lft forever en lugar de un tiempo de vida limitado. Una direcci\u00f3n generada por SLAAC puro tendr\u00eda un sufijo derivado de la MAC de la interfaz (por ejemplo 2a0e:a980:ff00::4c4f:53ff:fef5:ffcb) o uno aleatorio si el sistema usa Privacy Extensions, y mostrar\u00eda los tiempos de vida anunciados en el RA.<\/span><\/h6>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">Esto simplifica enormemente la configuraci\u00f3n de redes IPv6, pero tambi\u00e9n introduce implicaciones de seguridad importantes. Un atacante con acceso al segmento local podr\u00eda enviar Router Advertisements falsos para anunciar un prefijo y un gateway bajo su control, logrando redirigir el tr\u00e1fico de todos los hosts que procesen ese RA, introducir gateways maliciosos o interceptar comunicaciones de forma transparente. Este tipo de ataques, conocidos como Rogue Router Advertisements, se analizar\u00e1 en detalle en art\u00edculos posteriores.<\/span><\/p>\n<h3><b>Escaneo de hosts IPv6 con Nmap<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">La herramienta <\/span><b>Nmap<\/b><span style=\"font-weight: 400;\"> soporta escaneo de hosts IPv6 mediante la opci\u00f3n <\/span><span style=\"font-weight: 400;\">-6<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por ejemplo:<\/span><\/p>\n<blockquote>\n<h6><span style=\"font-weight: 400;\">nmap -6 -Pn -sV 2a0e:a980:ff00::CAFE:1001<\/span><\/h6>\n<\/blockquote>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-2065\" src=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen11.jpg\" alt=\"\" width=\"602\" height=\"144\" srcset=\"https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen11.jpg 602w, https:\/\/www.ipv6council.es\/wp-content\/uploads\/2026\/06\/Imagen11-300x72.jpg 300w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Sin embargo, IPv6 introduce un cambio fundamental en la forma de realizar descubrimiento de hosts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Un prefijo t\u00edpico <\/span><span style=\"font-weight: 400;\">\/64<\/span><span style=\"font-weight: 400;\"> contiene 2<\/span><span style=\"font-weight: 400;\">64<\/span><span style=\"font-weight: 400;\"> direcciones (exactamente 18.446.744.073.709.551.616)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esto hace que los m\u00e9todos tradicionales de escaneo exhaustivo utilizados en IPv4 sean completamente impracticables.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por tanto el descubrimiento de hosts en redes IPv6 requiere t\u00e9cnicas diferentes, como an\u00e1lisis de tr\u00e1fico, observaci\u00f3n de Neighbor Discovery, enumeraci\u00f3n de DNS y heur\u00edsticas sobre direccionamiento. <\/span><span style=\"font-weight: 400;\">Existe una RFC de IETF en la que se ha abordado precisamente que, a pesar de que es costoso, existen t\u00e9cnicas para descubrir o predecir de alguna manera las direcciones a tacar. Es la RFC 7707 \u201c Network Reconnaissance in IPv6 Networks\u201d accesible<\/span> <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7707\"><span style=\"font-weight: 400;\">aqu\u00ed<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>IPv6 ya no es una tecnolog\u00eda experimental ni una promesa futura. En muchas redes de proveedores de acceso, infraestructuras cloud y entornos corporativos es ya el protocolo predominante. Sin embargo, en numerosas ocasiones su despliegue se realiza sin que los equipos ni herramientas de seguridad tengan una visibilidad completa de su funcionamiento. Desde la perspectiva&hellip;&nbsp;<a href=\"https:\/\/www.ipv6council.es\/index.php\/2026\/06\/06\/ipv6-para-pentesters-probando-el-protocolo\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">IPv6 para pentesters: probando el protocolo<\/span><\/a><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"off","neve_meta_content_width":54,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/posts\/2049"}],"collection":[{"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/comments?post=2049"}],"version-history":[{"count":18,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/posts\/2049\/revisions"}],"predecessor-version":[{"id":2079,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/posts\/2049\/revisions\/2079"}],"wp:attachment":[{"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/media?parent=2049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/categories?post=2049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ipv6council.es\/index.php\/wp-json\/wp\/v2\/tags?post=2049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}