Анализатор протоколов Wireshark

Анализатор протоколов Wireshark.

Содержание

1 Общая информация

  • Сайт: https://www.wireshark.org/
  • Впервые выпущен в 1998 году.
  • Первоначальное название — Ethereal.
  • Разработчикам пришлось изменить название на Wireshark в 2006 году из-за проблем с товарными знаками.

2 Установка

2.1 Установка в разных операционных системах

2.2 Запуск без административных привилегий

  • Административные полномочия требуются для захвата пакетов.

2.2.1 Linux

  1. Ограничение разрешения на захват для группы

    1. Произвольный дистрибутив Linux

      • Необходимо установить права доступа к файлу /usr/sbin/dumpcap.

      • Предположим, что это группа wireshark.

      • Создайте группу wirehark и добавьте в неё пользователя user_name.

        sudo -i
        groupadd -s wireshark
        gpasswd -a -G wireshark user_name
        
      • Изменим параметры файла /usr/sbin/dumpcap:

        sudo -i
        chgrp wireshark /usr/bin/dumpcap
        chmod 750 /usr/bin/dumpcap
        
      • Кроме того, зададим capabilities для этого файла:

        setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
        
        • Можно проверить, что параметры установлены правильно:
          getcap /usr/bin/dumpcap
          
      • После этого можно перелогиниться или временно добавить себя в новую группу:

        newgrp wireshark
        
    1. Ubuntu

      • Нужно выполнить следующие действия:
        sudo -i
        apt-get install wireshark
        apt-get install pcaputils
        dpkg-reconfigure wireshark-common
        groupadd wireshark
        usermod -a -G wireshark user_name
        
      • После этого можно перелогиниться или временно добавить себя в новую группу:
        newgrp wireshark
        
    1. Gentoo

      • В Gentoo для захвата используется группа pcap.
      • Выполните следующее:
        sudo -i
        usermod -a -G pcap user_name
        
      • После этого можно перелогиниться или временно добавить себя в новую группу:
        newgrp pcap
        

2.2.2 Windows

  • Драйвер WinPcap (NPF) загружается Wireshark, когда он начинает собирать данные в реальном времени.
  • Для этого требуются права администратора.
  • Остановка Wireshark не останавливает драйвер WinPcap.
  • При установке драйвера WinPcap через Chocolatey он устанавливается для автоматического запуска с полномочиями администратора.
  1. Запуск Wireshark под администратором

    • Самый простой вариант, но не безопасный.
  1. Запуск драйвера NPF под администратором вручную

    • Запустите драйвер NPF:
      runas /u:administrator "net start npf"
      
    • После этого можно работать с Wireshark.
    • Остановите драйвер NPF:
      runas /u:administrator "net stop npf"
      
  1. Запуск драйвера NPF под администратором автоматически при старте системы

    • Запустите под администратором:
      sc config npf start=auto
      
    • Или в Device Manager выберите View->Show hidden devices, откройте Non-Plug and Play Drivers. Потом настройте запуск NetGroup Packet Filter Driver.

2.2.3 BSD, MacOS

  • Для захвата пакетов необходим доступ для чтения к устройствам BPF в /dev/bpf*.
  • Поскольку в MacOS используется devfs, изменения не сохраняется между перезагрузками.

2.3 Видео

2.3.1 Установка на Windows

2.3.2 Установка на Ubuntu Linux

2.3.3 Установка на Fedora Linux

3 Терминальный вариант Wireshark

3.1 Общая информация

  • Сайт: https://tshark.dev/
  • TShark — анализатор сетевых протоколов, терминальный вариант Wireshark.
  • Без настроек TShark будет работать так же, как tcpdump.
  • Будет использовать библиотеку pcap для захвата трафика с первого доступного сетевого интерфейса и отображать сводную строку в стандартном выводе для каждого полученного пакета.

3.2 Пример использования

  • Например, чтобы перехватить пакеты через указанный сетевой интерфейс и сохранить результаты, введите:
    tshark -i eth0 -w capture-eth0.pcap
    
  • Цветной вывод текста требуется терминал с поддержкой 24-битного цвета:
    tshark -i any --color
    
  • Показывать только типы файлов, начинающиеся с test:
    shark -Y 'http.content_type[0:4] == "text"'
    
  • Показать только JavaScript:
    tshark -Y tshark -i wlp2s0 -Y 'http.content_type contains "javascript"'
    
  • Показать все http с content-type=“image/(gif|jpeg|png|etc)”:
    tshark -Y 'http.content_type[0:5] == "image"'
    
  • Показать все http с content-type=“image/gif”:
    tshark -Y http.content_type == "image/gif"
    
  • Не показывать контент http, только заголовки:
    tshark -Y http.response !=0 || http.request.method != "TRACE"
    
  • Для сопоставления IP-адресов, заканчивающихся на 255, в блоке подсетей (от 172.16 до 172.31):
    tshark -Y string(ip.dst) matches r"^172\.(1[6-9]|2[0-9]|3[0-1])\.[0-9]{1,3}\.255
    
  • Для сопоставления нечетных номеров кадров:
    tshark -Y string(frame.number) matches "[13579]$"
    
  • Печать http-данных в вик дерева:
    tshark -q -i any -Y http -z http,tree
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие