Сниффинг пакетов с помощью Extcap

Посмотреть исходный код на GitHub

В этом руководстве рассказывается, как настроить extcap для Wireshark для перехвата пакетов из сети Thread.

Чтобы использовать Pyspinel для анализа пакетов без extcap, обратитесь к разделу Анализ пакетов с помощью Pyspinel .

Настройка среды сниффера

Прежде чем начать, выполните следующие шаги:

Проверка

Это руководство было проверено с помощью Zolertia Firefly (система на кристалле Texas Instruments CC2538 ) на следующих хост-системах:

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Мохаве 10.14.6 — Wireshark 3.0.5
  • 64-разрядная версия Windows 10 17134 — Wireshark 3.0.6

Собрать и прошить сниффер

Инструкции по сборке и перепрошивке зависят от платформы.

Инструкции по сборке и прошивке CC2538 см. в README примера CC2538 на GitHub.

Общие инструкции по сборке см. в разделе Как собрать OpenThread .

Используйте сниффер

Экран захвата Wireshark отображается при первом запуске Wireshark. В нем должны быть перечислены аппаратные интерфейсы, подключенные к анализатору OpenThread.

Захват с одного интерфейса

Если вы впервые используете интерфейс, нажмите кнопку « Параметры » слева от интерфейса:

OT Sniffer Wireshark Extcap Capture

  1. Установите канал на желаемое значение.
  2. Проверьте IEEE 802.15.4 TAP , чтобы убедиться, что информация о канале включена в вывод pcap и может отображаться в графическом интерфейсе Wireshark.
  3. Установите флажок Сохранить параметры при запуске захвата , чтобы убедиться, что эти параметры сохраняются после начала захвата, чтобы избежать повторной установки при следующем использовании интерфейса (если только вам не нужно изменить канал).
  4. Щелкните Пуск .

Параметры Extcap OT Sniffer Wireshark

Если ваши параметры уже сохранены, начните прослушивание, выбрав аппаратный интерфейс и щелкнув значок Wireshark в левом верхнем углу.

Захват с нескольких интерфейсов

Выберите все аппаратные интерфейсы, перечисленные на экране захвата, и щелкните значок Wireshark в левом верхнем углу.

Используйте эти поля для идентификации отдельных снифферов при захвате с нескольких интерфейсов:

  • Идентификатор интерфейса (frame.interface_id) — идентификатор интерфейса, используемый Wireshark для идентификации интерфейса захвата.
  • Имя интерфейса (frame.interface_name) — имя интерфейса, используемое Wireshark для идентификации интерфейса захвата.
  • Канал (wpan-tap.ch_num) — канал захвата IEEE 802.15.4 (диапазон: 11-26)

Пакеты OT Sniffer Wireshark Extcap

Поиск неисправностей

Сниффер OpenThread не указан как интерфейс Wireshark

  1. Если у вас установлено несколько интерпретаторов Python, убедитесь, что скрипт extcap использует интерпретатор Python 3. Pyspinel не поддерживает Python 2.
  2. Проверьте, указано ли оборудование на USB и загружены ли драйвера.
  3. Убедитесь, что на аппаратное обеспечение установлена ​​правильная прошивка (NCP или RCP).
  4. Убедитесь, что скрипт Python, расположенный в пути extcap, является исполняемым.
    • Для OS X и Linux:
      1. Убедитесь, что разрешение на выполнение присутствует для файла extcap_ot.py :
        ls -l extcap_ot.py
        
      2. Если разрешение на выполнение (x) отсутствует, измените разрешения:
        chmod +x extcap_ot.py
        
      3. Убедитесь, что интерфейс указан в списке:
        extcap_ot.py --extcap-interfaces
        
    • Для Windows:
      1. Убедитесь, что интерфейс указан в списке:
        extcap_ot.bat --extcap-interfaces
        
      2. Если это завершается с ошибкой Python, убедитесь, что версия Python 3.x:
        py -3 --version
        

Wireshark позволяет только пользователю root перехватывать пакеты

Во время установки Wireshark на Ubuntu пользователю будет предложено выбрать один из следующих вариантов:

  1. Создайте группу пользователей wireshark и разрешите всем членам этой группы перехватывать пакеты.
  2. Разрешить только пользователю root захватывать пакеты.

Использование Wireshark в качестве пользователя root настоятельно не рекомендуется. Если вы выбрали этот вариант, измените настройку:

sudo dpkg-reconfigure wireshark-common

Если Wireshark настроен на ограничение захвата членами группы wireshark , вам может потребоваться добавить в группу нужного пользователя:

sudo usermod -a -G wireshark user

Также добавьте правильного пользователя в группу dialout :

sudo usermod -a -G dialout user

Закройте и перезапустите Wireshark, чтобы применить новые настройки группы пользователей.

Ошибка формата Wireshark при захвате на несколько интерфейсов USB в Windows

Это известная проблема для некоторых старых версий Wireshark. Убедитесь, что вы используете Wireshark 3.0.6 или более позднюю версию.