Análisis de paquetes con Extcap

Ver código fuente en GitHub

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

Si deseas usar Pyspinel para detectar paquetes sin extcap, consulta Detección de paquetes con Pyspinel.

Configura el entorno de detección

Antes de comenzar, completa los siguientes pasos:

Verificación

Esta guía se verificó con Zolertia Firefly (SoC de Texas Instrument2538) 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 e instala el detector

Las instrucciones de compilación y escritura en la memoria flash varían según la plataforma.

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

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

Usa el detector

La pantalla de captura de Wireshark se muestra cuando se inicia Wireshark por primera vez. Debería enumerar las interfaces de hardware conectadas al detector de OpenThread.

Captura desde una sola interfaz

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

Captura de extcaps Wireshark de OT Sniffer

  1. Configura el Canal con el valor deseado.
  2. Consulta IEEE 802.15.4 TAP para asegurarte de que la información del canal se incluya en el resultado del pcap y se pueda mostrar en la GUI de Wireshark.
  3. Marca Save parameters on capture start (Guardar parámetros al inicio de la captura) para asegurarte de que se guarden estos parámetros después del inicio de la captura, a fin de evitar tener que volver a configurarlos la próxima vez que uses la interfaz (a menos que debas cambiar el canal).
  4. Haz clic en Start.

Opciones de la extensión de Wireshark OT Sniffer

Si tus parámetros ya están guardados, comienza a detectarlos. Para ello, selecciona la interfaz de hardware y haz clic en el ícono de Wireshark en la parte superior izquierda.

Captura desde múltiples 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 los detectores individuales cuando captures desde varias interfaces:

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

Paquetes de extcaps Wireshark de OT Sniffer

Solución de problemas

El detector de OpenThread no aparece como interfaz de Wireshark

  1. Si tienes varios intérpretes de Python instalados, asegúrate de que la secuencia de comandos de extcap utilice el intérprete de Python 3. Pyspinel no es compatible con Python 2.
  2. Verifica si el hardware está enumerado en USB y si los controladores están cargados.
  3. Comprueba que se haya instalado el firmware correcto (NCP o RCP) en el hardware.
  4. Verifique que la secuencia de comandos de Python ubicada en la ruta extcap sea ejecutable.
    • 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), modifícalo:
        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 utilizar Wireshark como el usuario root. Si eliges esa opción, cambia la configuración:

sudo dpkg-reconfigure wireshark-common

Si se configuró Wireshark 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 Wireshark al capturar en varias interfaces USB en Windows

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