Analizar Tráfico IPv6 con Wireshark

WiresharkWiresharkBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a usar Wireshark, un potente analizador de protocolos de red, para capturar y analizar el tráfico de red IPv6. IPv6, el Protocolo de Internet de próxima generación, ofrece un espacio de direcciones más grande y características de seguridad mejoradas en comparación con IPv4.

A medida que la adopción de IPv6 crece, es crucial para los profesionales de la ciberseguridad saber cómo monitorear y solucionar problemas de redes IPv6 utilizando herramientas como Wireshark. Este laboratorio práctico le brindará experiencia práctica en el monitoreo del tráfico IPv6 aplicable en entornos de red del mundo real.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/ipv6_support("IPv6 Support") subgraph Lab Skills wireshark/packet_capture -.-> lab-415950{{"Analizar Tráfico IPv6 con Wireshark"}} wireshark/display_filters -.-> lab-415950{{"Analizar Tráfico IPv6 con Wireshark"}} wireshark/export_packets -.-> lab-415950{{"Analizar Tráfico IPv6 con Wireshark"}} wireshark/packet_analysis -.-> lab-415950{{"Analizar Tráfico IPv6 con Wireshark"}} wireshark/ipv6_support -.-> lab-415950{{"Analizar Tráfico IPv6 con Wireshark"}} end

Captura de Tráfico IPv6

En este paso, nos centraremos en la captura de tráfico de red IPv6. IPv6 es la última versión del Protocolo de Internet, diseñado para abordar las limitaciones de IPv4, como el agotamiento de las direcciones IP disponibles. Para capturar y observar los paquetes IPv6 que viajan a través de sus interfaces de red, utilizaremos Wireshark, un analizador de protocolos de red potente y ampliamente utilizado. Le permite ver los detalles del tráfico de red, lo cual es esencial para la monitorización y la resolución de problemas de la red.

Habilitación de IPv6 en su Sistema

Antes de que podamos comenzar a capturar tráfico IPv6, debemos asegurarnos de que IPv6 esté habilitado en su sistema. Esto se debe a que si IPv6 está deshabilitado, su sistema no podrá enviar ni recibir paquetes IPv6, y no podremos capturar ningún tráfico relevante.

  1. Abra una ventana de terminal. Puede hacerlo haciendo clic en el icono de la terminal en la barra de tareas o presionando Ctrl+Alt+T. La terminal es una interfaz de línea de comandos donde puede ingresar comandos para interactuar con su sistema.

  2. Navegue al directorio del proyecto. Aquí es donde se encuentra el script para habilitar IPv6. Use el siguiente comando:

    cd /home/labex/project/

    El comando cd significa "change directory" (cambiar directorio). Le permite moverse de un directorio a otro en su sistema de archivos.

  3. Ejecute el script para habilitar IPv6 en su sistema. Use el siguiente comando:

    sudo ./enable_ipv6.sh

    El comando sudo se utiliza para ejecutar comandos con privilegios administrativos. El ./ indica que el script se encuentra en el directorio actual. Este script habilita la funcionalidad IPv6 en su máquina Linux configurando las interfaces de red y asegurándose de que IPv6 no esté deshabilitado en la configuración del sistema.

    Resultado esperado:

    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.lo.disable_ipv6 = 0

    Estas líneas indican que IPv6 está habilitado para todas las interfaces de red, la interfaz predeterminada y la interfaz de bucle invertido (loopback interface) respectivamente.

Inicio de Wireshark y Configuración de la Captura

Ahora que IPv6 está habilitado, podemos iniciar Wireshark y configurarlo para capturar tráfico de red.

  1. Inicie Wireshark ejecutando el siguiente comando en su terminal:

    wireshark &

    El símbolo & al final del comando ejecuta Wireshark en segundo plano. Esto significa que puede continuar usando la terminal mientras Wireshark se está ejecutando.

  2. Cuando se abra Wireshark, verá una lista de interfaces de red disponibles. Estas son las conexiones físicas o virtuales a través de las cuales su sistema puede enviar y recibir tráfico de red. Busque la interfaz etiquetada como any. Seleccionar esta interfaz permite a Wireshark capturar paquetes de todas las interfaces de red en su sistema.

    Wireshark Interface Selection
  3. Para comenzar a capturar paquetes, puede hacer doble clic en la interfaz any o seleccionarla y hacer clic en el botón azul con forma de aleta de tiburón en la barra de herramientas.

  4. Wireshark ahora comenzará a capturar todo el tráfico de red en su sistema. A medida que se capturan los paquetes, los verá mostrados en la ventana principal. Cada entrada de paquete muestra información como las direcciones IP de origen y destino, el protocolo utilizado y la hora de captura.

Generación de Tráfico IPv6 para la Captura

Para asegurarnos de que tenemos algo de tráfico IPv6 para analizar, generaremos algunos paquetes IPv6 haciendo ping a una dirección IPv6. Hacer ping es una forma sencilla de probar la conectividad entre dos dispositivos de red.

  1. Mientras Wireshark se está ejecutando y capturando paquetes, abra una nueva ventana de terminal. Esto le permite ejecutar comandos para generar tráfico sin interferir con el proceso de captura de paquetes.

  2. Primero, encontremos la dirección IPv6 de su interfaz eth1. Ejecute el siguiente comando:

    ip addr show dev eth1 | grep inet6

    El comando ip addr show muestra las direcciones IP asignadas a sus interfaces de red. El dev eth1 especifica que queremos ver las direcciones para la interfaz eth1. El | es un operador de tubería (pipe operator), que toma la salida del comando de la izquierda y la usa como entrada para el comando de la derecha. El grep inet6 filtra la salida para mostrar solo las líneas que contienen la cadena inet6, que son las direcciones IPv6.

    La salida mostrará las direcciones IPv6 asociadas con la interfaz eth1. Debería ver una dirección IPv6 local de enlace (link-local IPv6 address) que comienza con fe80::. Esta es su dirección IPv6 local, que se utiliza para la comunicación dentro del segmento de red local.

    Ejemplo de salida:

    inet6 fe80::42:acff:fe14:3/64 scope link
  3. Ahora, haga ping a esta dirección IPv6 para generar algo de tráfico IPv6. Use el comando ping6, que está diseñado específicamente para hacer ping a direcciones IPv6. Incluya el nombre de la interfaz (eth1) porque es una dirección local de enlace. El nombre de la interfaz es necesario para especificar qué interfaz de red se debe utilizar para la comunicación.

    ping6 -c 4 fe80::42:acff:fe14:3%eth1

    Nota: Reemplace fe80::42:acff:fe14:3 con la dirección IPv6 real que se muestra en su sistema.

    El parámetro -c 4 le dice a ping que envíe 4 paquetes y luego se detenga. Esto es útil para limitar la cantidad de tráfico generado.

    Resultado esperado:

    PING fe80::42:acff:fe14:3%eth1(fe80::42:acff:fe14:3%eth1) 56 data bytes
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=1 ttl=64 time=0.049 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=2 ttl=64 time=0.064 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=3 ttl=64 time=0.064 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=4 ttl=64 time=0.064 ms
    
    --- fe80::42:acff:fe14:3%eth1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3060ms
    rtt min/avg/max/mdev = 0.049/0.060/0.064/0.007 ms

    Esta salida muestra los detalles del proceso de ping, incluido el tiempo que tardó cada paquete en viajar hacia el destino y regresar, y la tasa de pérdida de paquetes.

  4. Regrese a la ventana de Wireshark. Ahora debería ver varios paquetes nuevos en la lista de captura, incluidos los paquetes ICMPv6 generados por su comando ping. ICMPv6 es el Protocolo de Mensajes de Control de Internet para IPv6 (Internet Control Message Protocol for IPv6), que se utiliza para informes de errores y fines de diagnóstico.

  5. Detenga la captura de paquetes haciendo clic en el botón rojo cuadrado "Stop" en la barra de herramientas de Wireshark.

Ahora ha capturado con éxito tráfico IPv6 utilizando Wireshark. En el siguiente paso, aprenderá a filtrar y analizar este tráfico.

Filtrado y Análisis del Tráfico IPv6

Ahora que ha capturado algo de tráfico IPv6, es hora de aprender a filtrar y analizar este tráfico. Wireshark, un potente analizador de protocolos de red, ofrece excelentes capacidades de filtrado. Filtrar el tráfico capturado le ayuda a centrarse en los tipos específicos de paquetes IPv6 que desea examinar. En lugar de observar un conjunto grande y mixto de datos de red, el filtrado le permite aislar la información relevante, lo que hace que su análisis sea más eficiente.

Uso de Filtros de Visualización para IPv6

Los filtros de visualización (display filters) en Wireshark son una gran herramienta. Le permiten ver solo los paquetes que coinciden con criterios específicos. En este caso, nos centraremos en los paquetes IPv6.

  1. En la ventana principal de Wireshark, verá una lista de paquetes. En la parte superior de esta lista, hay una barra de filtro de visualización. Tiene un campo de texto con el mensaje "Apply a display filter" (Aplicar un filtro de visualización). Esta barra es donde ingresará sus criterios de filtro.

  2. Para mostrar solo los paquetes IPv6, escriba el siguiente filtro en la barra de filtro de visualización:

    ipv6

    Este filtro le dice a Wireshark que solo muestre los paquetes que utilizan el protocolo IPv6.

    Wireshark Display Filter Bar
  3. Después de escribir el filtro, presione Enter o haga clic en el botón de flecha azul para aplicarlo. Una vez aplicado, la lista de paquetes ahora solo mostrará los paquetes IPv6. Esto significa que cualquier paquete IPv4 u otro protocolo se filtrará, dejándole solo con el tráfico IPv6.

  4. Si desea refinar aún más su filtro para mostrar solo los paquetes ICMPv6 (como los generados por el comando ping6), escriba el siguiente filtro:

    icmpv6

    ICMPv6 es un protocolo clave para las redes IPv6, utilizado para tareas como informes de errores y mensajes de diagnóstico. Al usar este filtro, puede concentrarse en estos tipos específicos de paquetes.

    Wireshark Display Filter Bar
  5. Aplique el filtro como antes. Ahora, debería ver solo los paquetes ICMPv6 de sus comandos ping en la lista de paquetes.

Examen de los Detalles del Paquete IPv6

Wireshark proporciona información detallada sobre cada paquete. Echemos un vistazo más de cerca a la estructura de un paquete IPv6.

  1. En la lista de paquetes filtrados, busque un paquete ICMPv6 Echo Request. Puede identificarlo buscando "Echo (ping) request" en la columna Info. Haga clic en este paquete para seleccionarlo.

  2. Cuando selecciona un paquete, el panel central mostrará un desglose detallado de ese paquete. Busque la sección etiquetada como "Internet Protocol Version 6". Si aún no está expandida, haga clic en la flecha junto a ella para expandirla. Esto le mostrará todos los campos en el encabezado IPv6 (IPv6 header).

    IPv6 Packet Details
  3. En la información del encabezado IPv6, hay varios campos importantes para observar:

    • Version: Este campo debe ser 6 para IPv6. Es una forma sencilla de confirmar que el paquete está utilizando el protocolo IPv6.
    • Traffic Class: Este campo se utiliza para QoS (Quality of Service - Calidad de Servicio). Ayuda a priorizar diferentes tipos de tráfico en la red.
    • Flow Label: Esto se puede utilizar para mantener el estado de los paquetes que pertenecen al mismo flujo. Es útil para realizar un seguimiento de los paquetes relacionados.
    • Payload Length: Esto indica el tamaño de los datos después del encabezado IPv6. Le ayuda a comprender cuántos datos se transportan en el paquete.
    • Next Header: Este campo identifica el tipo de encabezado que sigue al encabezado IPv6. Podría ser otro encabezado de protocolo como TCP o UDP.
    • Hop Limit: Similar a TTL (Time To Live - Tiempo de Vida) en IPv4, este valor se decrementa en cada enrutador. Evita que los paquetes circulen indefinidamente en la red.
    • Source Address: Esta es la dirección IPv6 del remitente. Le dice de dónde se originó el paquete.
    • Destination Address: Esta es la dirección IPv6 del destinatario. Muestra a dónde va el paquete.
  4. Observe la diferencia entre las direcciones IPv6 e IPv4. IPv6 utiliza direcciones de 128 bits, que normalmente se escriben como ocho grupos de cuatro dígitos hexadecimales. En contraste, IPv4 utiliza direcciones de 32 bits. Esto hace que las direcciones IPv6 sean mucho más largas y proporciona un espacio de direcciones mucho mayor.

  5. Ahora, expanda la sección "Internet Control Message Protocol v6" para ver los detalles del paquete ICMPv6:

    • Type: Esto indica el tipo de mensaje ICMPv6. Por ejemplo, 128 es para Echo Request y 129 es para Echo Reply.
    • Code: Esto especifica aún más el tipo de mensaje. Proporciona información más detallada sobre el mensaje ICMPv6.
    • Checksum: Esto se utiliza para detectar errores en el mensaje ICMPv6. Ayuda a garantizar la integridad de los datos.
    • Identifier: Esto se utiliza para hacer coincidir las solicitudes con las respuestas. Permite al remitente realizar un seguimiento de qué respuesta corresponde a qué solicitud.
    • Sequence: Este es un número de secuencia que se incrementa para cada paquete en una sesión de ping. Ayuda a ordenar los paquetes.

Guardado de los Paquetes Capturados

A menudo es útil guardar sus capturas de paquetes para su posterior análisis o documentación. Aquí le mostramos cómo puede hacerlo:

  1. En Wireshark, haga clic en el menú File (Archivo), luego seleccione Save As (Guardar como). Esto abrirá un diálogo donde puede elegir dónde guardar el archivo y cómo nombrarlo.

  2. Navegue al directorio /home/labex/project/. Esta es la ubicación donde queremos guardar nuestra captura de paquetes.

  3. Ingrese capture.pcapng como nombre de archivo. Este es el nombre que se utilizará para identificar la captura de paquetes guardada.

  4. Haga clic en el botón Save (Guardar) para guardar su captura de paquetes. El archivo se guardará en el formato PCAPNG, que es el formato estándar para las capturas de paquetes de Wireshark. Este formato es ampliamente compatible y se puede abrir en otras herramientas de análisis de red.

  5. Puede verificar que el archivo se guardó correctamente ejecutando el siguiente comando en una terminal:

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

    Este comando enumera los detalles del archivo, incluidos sus permisos, propietario, tamaño y fecha de creación.

    Resultado esperado:

    -rw-r--r-- 1 labex labex [file size] [date] /home/labex/project/capture.pcapng

Ahora ha aprendido a filtrar el tráfico IPv6, examinar los detalles de los paquetes IPv6 y guardar sus capturas de paquetes para futuras referencias. En el siguiente paso, explorará los encabezados de extensión IPv6 (IPv6 extension headers) con más detalle.

Examen de los Encabezados de Extensión IPv6

En este paso, exploraremos los encabezados de extensión IPv6 (IPv6 extension headers). IPv6 es el protocolo de Internet de próxima generación que ofrece muchas mejoras con respecto a IPv4. Una de estas mejoras clave es el uso de encabezados de extensión. Estos encabezados son cruciales porque proporcionan una funcionalidad mejorada, como mejores características de enrutamiento y seguridad. Comprenderlos es esencial para cualquier persona involucrada en la monitorización de redes IPv6 y el análisis de seguridad, ya que pueden revelar información importante sobre cómo se están manejando los paquetes en la red.

Identificación de Encabezados de Extensión en Wireshark

Ahora, usemos Wireshark para identificar y comprender los encabezados de extensión IPv6 en los paquetes que capturamos anteriormente.

  1. Primero, asegúrese de que Wireshark esté abierto. Si no lo está, puede abrirlo usando el siguiente comando en la terminal:

    wireshark &

    El & al final permite que el comando se ejecute en segundo plano, para que pueda continuar usando la terminal para otras tareas.

  2. A continuación, abra el archivo de captura que guardó en el paso anterior. Aquí está cómo:

    • Haga clic en File (Archivo) > Open (Abrir) en el menú de Wireshark.
    • Navegue al directorio /home/labex/project/.
    • Seleccione el archivo llamado capture.pcapng y haga clic en Open (Abrir). Este archivo contiene el tráfico de red que capturó anteriormente.
  3. En la barra de filtro en la parte superior de Wireshark, ingrese el siguiente filtro:

    ipv6

    Este filtro muestra todos los paquetes IPv6. Examinaremos el campo "Next Header" en estos paquetes para identificar cualquier encabezado de extensión.

  4. Seleccione cualquier paquete IPv6 de la lista de paquetes en el lado izquierdo de Wireshark. En el panel central, expanda la sección "Internet Protocol Version 6". Esto le mostrará los detalles del encabezado IPv6.

  5. Busque el campo "Next Header" dentro del encabezado IPv6 expandido. Este campo es muy importante ya que nos dice qué viene inmediatamente después del encabezado IPv6. Podría ser un encabezado de extensión o un protocolo de capa superior como TCP o UDP.

  6. El valor de "Next Header" corresponde a un número de protocolo específico:

    • 0: Hop-by-Hop Options (Opciones Salto a Salto)
    • 43: Routing (Enrutamiento)
    • 44: Fragment (Fragmento)
    • 50: ESP (Encapsulating Security Payload - Carga Útil de Seguridad Encapsulada)
    • 51: AH (Authentication Header - Encabezado de Autenticación)
    • 60: Destination Options (Opciones de Destino)
    • 58: ICMPv6
    • 6: TCP
    • 17: UDP
  7. Si un encabezado de extensión está presente en el paquete, aparecerá como una sección expandible debajo del encabezado IPv6 en el panel de detalles del paquete. Expándalo para ver su contenido, que puede proporcionar información valiosa sobre el manejo del paquete.

Exportación de Bytes de Paquetes para Análisis

Para analizar más a fondo el campo "Next Header", exportaremos los bytes de un paquete que lo contenga.

  1. Seleccione cualquier paquete IPv6 de la lista de paquetes.

  2. En el panel central, asegúrese de que la sección "Internet Protocol Version 6" esté expandida. Si no lo está, expándala para ver los detalles del encabezado IPv6.

  3. Encuentre el campo "Next Header". Por lo general, está cerca de la parte superior de los detalles del encabezado IPv6.

  4. Haga clic con el botón derecho en el campo "Next Header" y seleccione "Export Selected Packet Bytes" (Exportar Bytes de Paquete Seleccionados).

    Wireshark Export Packet Bytes
  5. En el diálogo que aparece, navegue al directorio /home/labex/project/. Aquí es donde guardaremos los bytes exportados.

  6. Ingrese extension_header.txt como nombre de archivo.

  7. Haga clic en "Save" (Guardar) para guardar el archivo.

  8. Puede verificar que el archivo se creó correctamente ejecutando el siguiente comando en la terminal:

    cat /home/labex/project/extension_header.txt

    La salida probablemente será un solo carácter que representa el valor de Next Header. Esto puede ser útil para un análisis o scripting posterior.

Análisis de la Cadena de Encabezados de Extensión

En IPv6, un paquete puede tener múltiples encabezados de extensión, formando una cadena. Cada encabezado de extensión tiene un campo "Next Header" que indica lo que le sigue.

Por ejemplo, un paquete IPv6 podría tener la siguiente estructura:

  1. El encabezado IPv6 principal con un valor "Next Header" de 0, lo que significa que el siguiente encabezado es un encabezado Hop-by-Hop Options.
  2. El encabezado Hop-by-Hop Options con un valor "Next Header" de 43, lo que indica que el siguiente encabezado es un encabezado Routing.
  3. El encabezado Routing con un valor "Next Header" de 6, lo que significa que el siguiente encabezado es un encabezado TCP.
  4. Finalmente, el encabezado TCP y la carga útil (payload).

Este mecanismo de encadenamiento brinda mucha flexibilidad en el manejo de paquetes. Sin embargo, también se puede utilizar indebidamente para ataques de seguridad, como intentar eludir las reglas del firewall (cortafuegos). Es por eso que comprender los encabezados de extensión es crucial para la monitorización de la seguridad de la red.

Ahora ha aprendido a identificar y examinar los encabezados de extensión IPv6 en Wireshark. Esta es una habilidad esencial para cualquier persona involucrada en la monitorización de redes IPv6 y el análisis de seguridad.

Resumen

En este laboratorio, ha aprendido habilidades esenciales para la monitorización de redes IPv6 utilizando Wireshark. Comenzó capturando tráfico IPv6 y generando paquetes con comandos ping6. Luego, profundizó en el filtrado y análisis de los paquetes capturados, con un enfoque en la estructura y los campos únicos de los encabezados IPv6 (IPv6 headers).

Las habilidades clave adquiridas incluyen la captura de tráfico IPv6, el uso de filtros de visualización (display filters) para tipos de paquetes específicos, el examen de estructuras y encabezados de paquetes, el guardado de capturas para su posterior análisis, la identificación de encabezados de extensión IPv6 (IPv6 extension headers) y la comprensión del campo "Next Header" y la cadena de encabezados de extensión (extension header chain). Estas habilidades son vitales para los administradores de red y los profesionales de la ciberseguridad en entornos prevalentes de IPv6, cruciales para la seguridad de la red, la resolución de problemas y la comprensión del comportamiento de la red. A medida que la adopción de IPv6 crece a nivel mundial, este conocimiento proporciona una base sólida para conceptos avanzados.