Как установить Wireshak на Linux и захватить USB-трафик?

Я столкнулся с многочисленными проблемами при установке Wireshark и захвате трафика USB, особенно из-за разрешений пользователей.

В ответ я опишу полный рабочий процесс для этого. Ответы на каждую отдельную проблему даются на разных форумах, поэтому я подумал, что соберу все вместе в один ответ, чтобы будущие пользователи Google не сталкивались с каждой проблемой, с которой они сталкиваются.

1 ответ

Решение

Протестировано на Ubuntu 14.04, но, вероятно, работает на других дистрибутивах, поскольку ни один из шагов не относится к Ubuntu.

В первый раз, когда вы будете следовать учебнику, выполните все шаги 1 -> 7.

При перезагрузке компьютера необходимо повторить шаги 6 и 7, чтобы увидеть интерфейсы USB в Wireshark.

  1. Установите Wireshark и libpcap:

    sudo apt-get install wireshark libpcap0.8

  2. Для Debian, Ubuntu и других производных Debian перейдите к шагу 3.

    Для других систем на основе Linux или других методов установки, см. Wireshark Wiki, затем перейдите к шагу 6.

  3. Переконфигурируйте wireshark, чтобы не-суперпользователи могли отслеживать пакеты:

    sudo dpkg-reconfigure wireshark-common

    Выбрать <Yes> в быстром

  4. Добавьте свое имя пользователя в группу пользователей "wireshark":

    sudo usermod -a -G wireshark <your_username>

    Вы можете проверить, правильно ли это сделано, отобразив группы, в которые входит ваше имя пользователя:

    groups <your_username>

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

    groupadd wireshark

    А затем добавьте ваше имя пользователя в группу (см. Выше)

  5. Важно: выйдите из сеанса, затем войдите снова.

  6. Этот шаг зависит от версии ядра, установленной на вашем компьютере. Чтобы узнать версию вашего ядра, введите:

    uname -r

    Для версий ядра до 2.6.21, если debugfs еще не смонтирован в /sys/kernel/debug, убедитесь, что он смонтирован там, выполнив следующую команду:

    sudo mount -t debugfs / /sys/kernel/debug

    Для версии ядра 2.6.21 и выше загрузите загружаемый модуль usbmon в ядро:

    sudo modprobe usbmon

    Посмотрите Wireshark Wiki для получения дополнительной информации об этой дифференциации.

  7. Если интерфейсы usbmon не отображаются в Wireshark, найдите интерфейсы, используя dumpcap (инструмент командной строки Wireshark):

    sudo dumpcap -D

    Вы должны увидеть интерфейсы usbmon*. Теперь отобразим разрешения интерфейсов usbmon:

    ls -l /dev/usbmon*

    Если файлы usbmon* имеют 'crw-------', то это нормально, что Wireshark не может их прочитать, потому что он не запускается от имени root. Не выполняйте wireshark в корневом режиме, это может повредить файлы. Вместо этого сделайте их доступными для других пользователей:

    sudo chmod 644 /dev/usbmon*

Теперь интерфейсы usbmon должны появиться в Wireshark.

Повеселись!


Источники:

https://wiki.wireshark.org/CaptureSetup/USB

https://wiki.wireshark.org/CaptureSetup/CapturePrivileges

https://unix.stackexchange.com/questions/55722/wireshark-couldnt-run-usr-sbin-dumpcap-in-child-process

http://anonscm.debian.org/viewvc/collab-maint/ext-maint/wireshark/trunk/debian/README.Debian?view=markup

Другие вопросы по тегам