Análisis de paquetes con Extcap

Ver código fuente en GitHub

En esta guía, se explica cómo configurar extcap para que Wireshark analice paquetes de una red Thread.

Para usar Pyspinel para el espionaje de paquetes sin extcap, consulta Espionaje de paquetes con Pyspinel.

Configura el entorno del sniffer

Antes de comenzar, completa los siguientes pasos:

Verificación

Esta guía se verificó con Zolertia Firefly (SoC CC2538 de Texas Instruments) en los siguientes sistemas host:

  • Debian 4.19.37: Wireshark 3.0.4
  • macOS Mojave 10.14.6: Wireshark 3.0.5
  • Windows 10 de 64 bits, versión 17134: Wireshark 3.0.6

Compila y escribe en la memoria flash el sniffer

Las instrucciones de compilación y de restablecimiento varían según la plataforma.

Para obtener instrucciones sobre cómo compilar y escribir en la memoria flash el CC2538, consulta el archivo readme del ejemplo de CC2538 en GitHub.

Para obtener instrucciones generales de compilación, consulta Cómo compilar OpenThread.

Cómo usar el sniffer

La pantalla de captura de Wireshark se muestra cuando se inicia por primera vez. Debe listar las interfaces de hardware conectadas a un sniffer de OpenThread.

Captura desde una sola interfaz

Si es la primera vez que usas una interfaz, haz clic en el botón Options a la izquierda de la interfaz:

Captura de Extcap de Wireshark de sniffer de OT

  1. Establece el canal en el valor deseado.
  2. Consulta IEEE 802.15.4 TAP para asegurarte de que la información del canal se incluya en el resultado de pcap y se pueda mostrar en la GUI de Wireshark.
  3. Marca la opción Guardar parámetros al inicio de la captura para asegurarte de que estos parámetros se guarden después del inicio de la captura y evitar tener que volver a configurarlos la próxima vez que uses la interfaz (a menos que necesites cambiar el canal).
  4. Haz clic en Iniciar.

Opciones de Extcap de Wireshark para el sniffer de OT

Si los parámetros ya están guardados, selecciona la interfaz de hardware y haz clic en el ícono de Wireshark en la parte superior izquierda para comenzar a rastrear.

Captura desde varias interfaces

Selecciona todas las interfaces de hardware que aparecen en la pantalla de captura y haz clic en el ícono de Wireshark en la parte superior izquierda.

Usa estos campos para identificar sniffers individuales cuando captures desde varias interfaces:

  • ID de interfaz (frame.interface_id): Es el identificador de interfaz que usa Wireshark para identificar una interfaz de captura.
  • Nombre de la interfaz (frame.interface_name): Es el nombre de la interfaz que usa Wireshark para identificar una interfaz de captura.
  • Canal (wpan-tap.ch_num): Es el canal de captura de IEEE 802.15.4 (rango: 11-26).

Paquetes de Extcap de Wireshark de sniffer de OT

Solución de problemas

El sniffer de OpenThread no aparece como una interfaz de Wireshark.

  1. Si tienes varios intérpretes de Python instalados, asegúrate de que la secuencia de comandos extcap use el intérprete de Python 3. Pyspinel no es compatible con Python 2.
  2. Comprueba si el hardware se enumera en USB y si se cargaron los controladores.
  3. Verifica que se haya escrito el firmware correcto (NCP o RCP) en el hardware.
  4. Verifica que la secuencia de comandos de Python ubicada en la ruta de acceso de extcap se pueda ejecutar.
    • Para OS X y Linux:
      1. Verifica que el permiso de ejecución esté presente para el archivo extcap_ot.py:
        ls -l extcap_ot.py
        
      2. Si falta el permiso de ejecución (x), modifica los permisos:
        chmod +x extcap_ot.py
        
      3. Verifica que la interfaz aparezca en la lista:
        extcap_ot.py --extcap-interfaces
        
    • Para Windows:
      1. Verifica que la interfaz aparezca en la lista:
        extcap_ot.bat --extcap-interfaces
        
      2. Si se cierra con un error de Python, verifica que la versión de Python sea 3.x:
        py -3 --version
        

Wireshark solo permite que el usuario raíz capture paquetes.

Durante la instalación de Wireshark en Ubuntu, se le pedirá al usuario que elija una de las siguientes opciones:

  1. Crea el grupo de usuarios wireshark y permite que todos los miembros de ese grupo capturen paquetes.
  2. Solo permite que el usuario root capture paquetes.

No se recomienda usar Wireshark como usuario de root. Si elegiste esa opción, cambia el parámetro de configuración:

sudo dpkg-reconfigure wireshark-common

Si Wireshark se configuró para restringir la captura a los miembros del grupo wireshark, es posible que debas agregar el usuario correcto al grupo:

sudo usermod -a -G wireshark user

También agrega el usuario correcto al grupo dialout:

sudo usermod -a -G dialout user

Cierra y reinicia Wireshark para aplicar la nueva configuración del grupo de usuarios.

Error de formato de Wireshark cuando se captura en varias interfaces USB en Windows

Este es un problema conocido de algunas versiones anteriores de Wireshark. Asegúrate de usar Wireshark 3.0.6 o una versión posterior.