¿Cómo filtrar y analizar el tráfico IPv6 capturado en Wireshark?

WiresharkAdvanced
Practicar Ahora

Introducción

En el ámbito de la ciberseguridad, comprender y analizar el tráfico de red es una habilidad crucial. Este tutorial te guía a través del proceso de captura, filtrado y análisis del tráfico IPv6 utilizando Wireshark, un potente analizador de protocolos de red.

IPv6 (Internet Protocol versión 6) representa la próxima generación de protocolos de Internet, diseñados para eventualmente reemplazar al ampliamente utilizado IPv4. A medida que las redes continúan evolucionando, los profesionales de la seguridad deben ser competentes en la monitorización de ambos protocolos. Al final de este laboratorio, estarás equipado con conocimientos prácticos para mejorar tus capacidades de monitorización de la seguridad de la red.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel avanzado con una tasa de finalización del 7%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Instalación y Configuración de Wireshark

Antes de que podamos capturar y analizar el tráfico IPv6, necesitamos instalar Wireshark en nuestro sistema Ubuntu y realizar una configuración básica.

Instalación de Wireshark

Comencemos actualizando las listas de paquetes e instalando Wireshark:

sudo apt update
sudo apt install -y wireshark

Durante la instalación, es posible que se te pregunte si los usuarios que no son superusuarios deberían poder capturar paquetes. Para este laboratorio, selecciona "Sí" para permitir que los usuarios que no son root capturen paquetes.

Después de que se complete la instalación, necesitamos agregar nuestro usuario al grupo wireshark para permitir la captura de paquetes sin privilegios de root:

sudo usermod -a -G wireshark labex

Para que los cambios surtan efecto, cerremos sesión y volvamos a iniciarla:

newgrp wireshark

Verificación de la Instalación

Para verificar que Wireshark se ha instalado correctamente, comprobemos su versión:

wireshark --version

Deberías ver una salida similar a la siguiente:

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Lanzamiento de Wireshark

Ahora, lancemos Wireshark desde la terminal:

wireshark &

El símbolo & ejecuta la aplicación en segundo plano, lo que te permite continuar usando la terminal.

Deberías ver la aplicación Wireshark abierta con una lista de interfaces de red disponibles. La interfaz podría verse similar a esto:

Wireshark Main Interface

Wireshark ahora está listo para capturar y analizar el tráfico de red. En el siguiente paso, generaremos algo de tráfico IPv6 que podremos capturar y analizar.

Generación de Tráfico IPv6 para Captura

Antes de que podamos analizar el tráfico IPv6, necesitamos generar algunos paquetes IPv6 en nuestra red. En este paso, utilizaremos varias herramientas para generar tráfico IPv6.

Comprensión de los Conceptos Básicos de IPv6

Las direcciones IPv6 son direcciones de 128 bits que se escriben típicamente en notación hexadecimal con dos puntos que separan cada grupo de 16 bits, como 2001:0db8:85a3:0000:0000:8a2e:0370:7334. IPv6 ofrece varias ventajas sobre IPv4:

  • Espacio de direcciones más grande (128 bits vs 32 bits)
  • Formato de encabezado simplificado para una mejor eficiencia de enrutamiento
  • Seguridad integrada con IPsec
  • Soporte mejorado para la Calidad de Servicio (QoS)

Comprobación de la Conectividad IPv6

Primero, comprobemos si nuestro sistema tiene conectividad IPv6 examinando las interfaces de red:

ip -6 addr show

Este comando muestra todas las direcciones IPv6 asignadas a las interfaces de red en tu sistema. Deberías ver una salida similar a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::215:5dff:fe00:1/64 scope link
       valid_lft forever preferred_lft forever

Las direcciones fe80:: son direcciones de enlace local que se configuran automáticamente en las interfaces habilitadas para IPv6.

Generación de Tráfico IPv6

Generemos algo de tráfico IPv6 que podamos capturar con Wireshark. Usaremos el comando ping6 para enviar solicitudes de eco ICMPv6 a direcciones IPv6.

Primero, hagamos ping a la dirección de loopback IPv6:

ping6 -c 4 ::1

Esto envía 4 solicitudes de eco ICMPv6 a la dirección de loopback (::1). Deberías ver una salida como:

PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from ::1: icmp_seq=4 ttl=64 time=0.074 ms

--- ::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3072ms
rtt min/avg/max/mdev = 0.035/0.064/0.074/0.017 ms

A continuación, hagamos ping a una dirección IPv6 conocida. Los servidores DNS de Google admiten IPv6 y se pueden usar para pruebas:

ping6 -c 4 2001:4860:4860::8888

Si tu sistema tiene conectividad IPv6 pública, deberías ver respuestas de ping exitosas. Si no, podrías ver errores que indican que no hay ruta al host.

Uso de netcat para Tráfico IPv6

También podemos usar netcat para generar tráfico IPv6. Abramos dos ventanas de terminal.

En la primera terminal, inicia un servidor netcat escuchando en una dirección IPv6:

nc -6 -l 8888

Esto inicia un servidor escuchando en el puerto 8888 para conexiones IPv6.

En la segunda terminal, conéctate a este servidor:

nc -6 ::1 8888

Ahora puedes escribir mensajes en cualquiera de las terminales, y se enviarán a la otra terminal a través de IPv6. Esto crea tráfico TCP que podemos capturar en Wireshark.

Escribe algunos mensajes en cada terminal para generar tráfico, luego presiona Ctrl+C en ambas terminales para cerrar las conexiones.

Ahora que hemos generado algo de tráfico IPv6, estamos listos para capturarlo y analizarlo con Wireshark en el siguiente paso.

Captura de Tráfico IPv6 con Wireshark

Ahora que hemos generado algo de tráfico IPv6, podemos usar Wireshark para capturarlo y examinarlo. En este paso, aprenderemos cómo configurar Wireshark para capturar paquetes IPv6.

Inicio de una Captura

Primero, inicia Wireshark si aún no se está ejecutando:

wireshark &

En la ventana principal de Wireshark, verás una lista de interfaces de red disponibles. Queremos capturar en la interfaz que está manejando nuestro tráfico de red:

  1. Localiza la interfaz llamada lo (loopback) en la lista
  2. Haz doble clic en esta interfaz para comenzar a capturar paquetes en ella

Alternativamente, puedes seleccionar la interfaz y hacer clic en el botón "Iniciar captura de paquetes" (el icono de aleta de tiburón azul) en la barra de herramientas.

Wireshark ahora comenzará a capturar todos los paquetes en la interfaz de loopback, incluido cualquier tráfico IPv6.

Generación de Tráfico Durante la Captura

Mientras Wireshark está capturando, generemos algo de tráfico IPv6. Abre una nueva terminal y ejecuta:

ping6 -c 10 ::1

Esto envía 10 solicitudes de eco ICMPv6 a la dirección de loopback, que será visible en Wireshark.

Deberías ver paquetes que aparecen en la ventana de Wireshark a medida que se capturan. Cada línea representa un solo paquete.

Detención de la Captura

Después de generar algo de tráfico, detengamos la captura:

  1. Haz clic en el botón "Detener captura de paquetes" (el icono del cuadrado rojo) en la barra de herramientas
  2. Wireshark ahora mostrará solo los paquetes que se capturaron durante la sesión

Comprensión de la Interfaz de Wireshark

La interfaz de Wireshark consta de tres paneles principales:

  1. Panel de Lista de Paquetes (superior): Muestra todos los paquetes capturados en orden secuencial
  2. Panel de Detalles de Paquetes (medio): Muestra los detalles del paquete seleccionado en una vista jerárquica
  3. Panel de Bytes de Paquetes (inferior): Muestra los bytes sin procesar del paquete seleccionado en formato hexadecimal y ASCII

Busquemos y seleccionemos un paquete IPv6 en el Panel de Lista de Paquetes. Busca paquetes con "IPv6" listado en la columna "Protocolo".

Cuando seleccionas un paquete IPv6, el Panel de Detalles de Paquetes mostrará la estructura del encabezado IPv6, incluyendo:

  • Versión (debería ser 6 para IPv6)
  • Clase de Tráfico
  • Etiqueta de Flujo
  • Longitud de la Carga Útil (Payload Length)
  • Encabezado Siguiente (Next Header)
  • Límite de Salto (Hop Limit)
  • Dirección de Origen (Source Address)
  • Dirección de Destino (Destination Address)

Puedes expandir cada campo haciendo clic en la flecha junto a él para ver más detalles.

Guardado de la Captura

Guardemos nuestra captura para un análisis posterior:

  1. Haz clic en el menú "Archivo"
  2. Selecciona "Guardar como"
  3. Navega al directorio /home/labex/project
  4. Ingresa un nombre de archivo como ipv6_capture.pcapng
  5. Haz clic en "Guardar"

Los paquetes capturados ahora se guardan en un archivo que se puede abrir más tarde para un análisis adicional.

ls -l /home/labex/project/ipv6_capture.pcapng

Deberías ver una salida que confirma que el archivo fue creado:

-rw-r--r-- 1 labex labex 12345 Sep 10 12:34 /home/labex/project/ipv6_capture.pcapng

En el siguiente paso, aprenderemos cómo filtrar y analizar el tráfico IPv6 que hemos capturado.

Filtrado Básico de IPv6 en Wireshark

Wireshark puede capturar un gran volumen de paquetes, lo que hace esencial filtrar los datos para enfocarse en tráfico específico. En este paso, aprenderemos cómo usar filtros de visualización para aislar el tráfico IPv6.

Comprensión de los Filtros de Visualización de Wireshark

Los filtros de visualización de Wireshark te permiten mostrar solo los paquetes que coinciden con criterios específicos. La sintaxis del filtro es rica y poderosa, lo que permite un control preciso sobre qué paquetes se muestran.

Los filtros de visualización se ingresan en la barra de filtro en la parte superior de la ventana de Wireshark. A medida que escribes, el color de fondo proporciona retroalimentación:

  • Verde: Sintaxis de filtro válida
  • Rojo: Sintaxis de filtro inválida
  • Amarillo: Filtro válido pero potencialmente problemático

Filtros Básicos de IPv6

Comencemos abriendo nuestro archivo de captura guardado:

  1. Haz clic en el menú "Archivo"
  2. Selecciona "Abrir"
  3. Navega a /home/labex/project
  4. Selecciona ipv6_capture.pcapng
  5. Haz clic en "Abrir"

Ahora, apliquemos algunos filtros básicos de IPv6:

Filtrado para todo el tráfico IPv6

Para mostrar solo paquetes IPv6, ingresa lo siguiente en la barra de filtro:

ipv6

Presiona Enter o haz clic en "Aplicar" para aplicar el filtro. Solo se mostrarán los paquetes que usan el protocolo IPv6.

Filtrado por Dirección IPv6

Para filtrar paquetes por dirección de origen IPv6:

ipv6.src == ::1

Esto muestra solo los paquetes que se originan en la dirección de loopback.

Para filtrar paquetes por dirección de destino IPv6:

ipv6.dst == ::1

Esto muestra solo los paquetes destinados a la dirección de loopback.

Puedes combinar filtros usando operadores lógicos:

ipv6.src == ::1 and ipv6.dst == ::1

Esto muestra solo los paquetes donde tanto el origen como el destino son la dirección de loopback.

Filtrado por Protocolo IPv6

IPv6 usa un campo "Encabezado Siguiente" (Next Header) para indicar el protocolo encapsulado dentro del paquete IPv6. Los valores comunes del encabezado siguiente incluyen:

  • 6: TCP
  • 17: UDP
  • 58: ICMPv6

Para filtrar paquetes ICMPv6:

ipv6.nxt == 58

O simplemente puedes usar:

icmpv6

Para filtrar paquetes TCP IPv6:

ipv6.nxt == 6

O equivalentemente:

ipv6 and tcp

Combinación de Filtros

Los filtros de Wireshark se pueden combinar usando operadores lógicos:

  • and o &&: Ambas condiciones deben ser verdaderas
  • or o ||: Al menos una condición debe ser verdadera
  • not o !: Niega una condición

Por ejemplo, para encontrar todos los paquetes IPv6 excepto ICMPv6:

ipv6 and not icmpv6

Para encontrar paquetes que sean solicitudes de eco ICMPv6 o respuestas de eco:

icmpv6.type == 128 or icmpv6.type == 129

Guardado de Filtros

Si usas con frecuencia ciertos filtros, puedes guardarlos para usarlos más tarde:

  1. Ingresa tu filtro en la barra de filtro
  2. Haz clic en el botón "Guardar este filtro" (signo más a la derecha)
  3. Ingresa un nombre para tu filtro
  4. Haz clic en "OK"

Para aplicar un filtro guardado, haz clic en el botón "Filtro" (icono de embudo) y selecciona tu filtro guardado del menú desplegable.

Guardemos un filtro para paquetes ICMPv6:

  1. Ingresa icmpv6 en la barra de filtro
  2. Haz clic en el signo más
  3. Nómbralo "Tráfico ICMPv6"
  4. Haz clic en "OK"

Ahora puedes aplicar rápidamente este filtro cuando sea necesario.

Uso de Expresiones de Filtro desde los Detalles del Paquete

Wireshark ofrece una forma conveniente de crear filtros desde los detalles del paquete:

  1. Selecciona un paquete en la lista de paquetes
  2. En el panel de detalles del paquete, haz clic derecho en un campo
  3. Elige "Aplicar como Filtro" y luego selecciona:
    • "Seleccionado" para filtrar por ese valor exacto
    • "No Seleccionado" para excluir ese valor
    • "Y Seleccionado" para agregar la condición al filtro actual
    • "O Seleccionado" para agregar una condición alternativa

Esto facilita la construcción de filtros complejos sin memorizar nombres de campos.

Intenta esto:

  1. Selecciona un paquete IPv6
  2. Expande la sección "Internet Protocol Version 6" en los detalles del paquete
  3. Haz clic derecho en el campo "Encabezado Siguiente"
  4. Selecciona "Aplicar como Filtro" > "Seleccionado"

La barra de filtro ahora mostrará un filtro para ese valor específico del encabezado siguiente.

En el siguiente paso, pasaremos más allá del filtrado básico a técnicas de análisis IPv6 más avanzadas.

Análisis Avanzado de IPv6 en Wireshark

Ahora que estás familiarizado con el filtrado básico de IPv6, exploremos técnicas de análisis más avanzadas en Wireshark para obtener una comprensión más profunda de los patrones de tráfico IPv6.

Análisis de Protocolo IPv6

Análisis de ICMPv6 para el Descubrimiento de Vecinos

ICMPv6 juega un papel crucial en las redes IPv6, especialmente para el Protocolo de Descubrimiento de Vecinos (NDP), que reemplaza a ARP en IPv4. Analicemos el tráfico NDP:

  1. Abre Wireshark con nuestro archivo de captura
  2. Aplica el siguiente filtro para ver todos los mensajes NDP:
    icmpv6.type >= 133 and icmpv6.type <= 137

Este filtro incluye:

  • Tipo 133: Solicitud de Router (Router Solicitation)
  • Tipo 134: Anuncio de Router (Router Advertisement)
  • Tipo 135: Solicitud de Vecino (Neighbor Solicitation)
  • Tipo 136: Anuncio de Vecino (Neighbor Advertisement)
  • Tipo 137: Mensaje de Redirección (Redirect Message)

Si no ves ningún mensaje NDP en tu captura, generemos algunos:

## En una nueva terminal, inicia una nueva captura de Wireshark en la interfaz apropiada
wireshark -i eth0 &

## Luego ejecuta este comando para activar la solicitud de vecino
ping6 -c 2 ff02::1

Esto hace ping a la dirección multicast de todos los nodos IPv6, lo que debería activar mensajes de descubrimiento de vecinos.

Análisis de Encabezados de Extensión IPv6

IPv6 usa encabezados de extensión para incluir información opcional. Para filtrar paquetes con encabezados de extensión:

ipv6.nxt != 6 and ipv6.nxt != 17 and ipv6.nxt != 58

Esto muestra paquetes IPv6 que no tienen TCP, UDP o ICMPv6 como su encabezado siguiente, lo que indica que probablemente usan encabezados de extensión.

Uso de Herramientas Estadísticas de Wireshark

Wireshark proporciona varias herramientas estadísticas que son valiosas para analizar el tráfico IPv6.

Estadísticas de Conversación IPv6

Para ver las conversaciones IPv6:

  1. Haz clic en el menú "Estadísticas"
  2. Selecciona "Conversaciones"
  3. Haz clic en la pestaña "IPv6"

Esto muestra todas las conversaciones IPv6 en tu captura, mostrando las direcciones de origen y destino, el conteo de paquetes y el conteo de bytes.

Puedes ordenar las conversaciones por cualquier columna haciendo clic en el encabezado de la columna.

Jerarquía de Protocolos IPv6

Para ver la distribución de protocolos en tu captura:

  1. Haz clic en el menú "Estadísticas"
  2. Selecciona "Jerarquía de Protocolos"

Esto muestra una vista jerárquica de los protocolos, con porcentajes de paquetes y bytes para cada protocolo. Puedes ver qué proporción de tu tráfico es IPv6 y, dentro de eso, cuánto es ICMPv6, TCP, UDP, etc.

Estadísticas de Puntos Finales IPv6

Para analizar los puntos finales IPv6:

  1. Haz clic en el menú "Estadísticas"
  2. Selecciona "Puntos Finales"
  3. Haz clic en la pestaña "IPv6"

Esto muestra todas las direcciones IPv6 vistas en la captura, junto con los conteos de paquetes y bytes. Ayuda a identificar los hosts IPv6 más activos.

Análisis de Gráfico de Flujo

Para una representación visual de los intercambios de paquetes:

  1. Haz clic en el menú "Estadísticas"
  2. Selecciona "Gráfico de Flujo"
  3. En las opciones, asegúrate de que "Direcciones IPv6" esté seleccionado para el tipo de flujo
  4. Haz clic en "OK"

Esto crea una representación visual de los flujos de paquetes entre hosts, lo que facilita la comprensión de los patrones de comunicación.

Exportación de Datos para un Análisis Adicional

Para exportar datos IPv6 para análisis en otras herramientas:

  1. Haz clic en el menú "Archivo"
  2. Selecciona "Exportar Descomposiciones de Paquetes"
  3. Elige "Como CSV" (u otro formato según tus necesidades)
  4. Selecciona qué campos exportar
  5. Haz clic en "Guardar"

Exportemos información básica de IPv6:

## Crea una exportación simple desde la línea de comandos
tshark -r /home/labex/project/ipv6_capture.pcapng -T fields -e frame.number -e ipv6.src -e ipv6.dst -e ipv6.nxt -E header=y -E separator=, > /home/labex/project/ipv6_analysis.csv

Esto crea un archivo CSV con números de marco, direcciones IPv6 de origen y destino, y valores de encabezado siguiente.

Para ver el archivo exportado:

cat /home/labex/project/ipv6_analysis.csv

Deberías ver una salida similar a:

frame.number,ipv6.src,ipv6.dst,ipv6.nxt
1,::1,::1,58
2,::1,::1,58
...

Creación de un Perfil IPv6 Personalizado

Para el análisis frecuente de IPv6, es útil crear un perfil personalizado:

  1. Haz clic en el menú "Editar"
  2. Selecciona "Perfiles de Configuración"
  3. Haz clic en el botón "+" para agregar un nuevo perfil
  4. Nómbralo "Análisis IPv6"
  5. Haz clic en "OK"

Ahora puedes personalizar este perfil con tus filtros IPv6 preferidos, diseños de columna y colores. Siempre que necesites analizar el tráfico IPv6, puedes cambiar a este perfil.

Para agregar una columna útil para el análisis de IPv6:

  1. Haz clic derecho en cualquier encabezado de columna
  2. Selecciona "Preferencias de Columna"
  3. Haz clic en "+" para agregar una nueva columna
  4. Para "Título", ingresa "Encabezado Siguiente"
  5. Para "Tipo", selecciona "Personalizado"
  6. Para "Campos", ingresa "ipv6.nxt"
  7. Haz clic en "OK"

Esto agrega una columna que muestra el valor del Encabezado Siguiente IPv6, lo que facilita la identificación del protocolo encapsulado en cada paquete IPv6.

Con estas técnicas de análisis avanzadas, ahora tienes un conjunto de herramientas completo para investigar patrones de tráfico IPv6, identificar posibles problemas y obtener una comprensión más profunda del comportamiento de la red IPv6.

Resumen

En este laboratorio, has aprendido a capturar, filtrar y analizar eficazmente el tráfico IPv6 utilizando Wireshark, una poderosa herramienta de análisis de red.

Comenzaste instalando y configurando Wireshark en tu sistema Ubuntu, luego generaste tráfico IPv6 para su análisis. Aprendiste a capturar este tráfico y guardarlo para un examen detallado.

A continuación, dominaste las técnicas básicas de filtrado de IPv6, lo que te permite enfocarte en aspectos específicos de las comunicaciones IPv6. También exploraste métodos de análisis avanzados, incluyendo:

  • Análisis del tráfico ICMPv6 para el Protocolo de Descubrimiento de Vecinos (Neighbor Discovery Protocol)
  • Examen de los encabezados de extensión IPv6
  • Uso de las herramientas estadísticas de Wireshark para obtener información sobre conversaciones y puntos finales
  • Creación de gráficos de flujo visuales para comprender los patrones de comunicación
  • Exportación de datos para un análisis adicional
  • Personalización de Wireshark con perfiles optimizados para el análisis de IPv6

Estas habilidades son esenciales para los profesionales de seguridad de red modernos a medida que la adopción de IPv6 continúa creciendo. La capacidad de monitorear, analizar y solucionar problemas de tráfico IPv6 de manera efectiva ayuda a identificar posibles amenazas a la seguridad, optimizar el rendimiento de la red y garantizar la funcionalidad adecuada de la red.

Al aplicar estas técnicas en tu práctica de seguridad, puedes mejorar la visibilidad de la red de tu organización y mejorar tu capacidad para detectar y responder a incidentes de seguridad que involucren tráfico IPv6.