Фильтрация трафика в Wireshark

WiresharkBeginner
Практиковаться сейчас

Введение

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

Начало работы с Tshark

Прежде чем переходить к графическому интерфейсу, вы начнете работу с tshark — консольной версией Wireshark. Это мощный инструмент для быстрого анализа и автоматизации с помощью скриптов. На этом этапе вы проверите установку и проведете базовый осмотр предоставленного файла захвата пакетов.

  1. Сначала убедитесь, что tshark установлен правильно, проверив его версию.

    tshark --version
    

    Вы должны увидеть вывод с указанием версии Wireshark и tshark, примерно такой:

    TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1)
    ...
    
  2. Образец файла захвата пакетов с именем capture.pcap уже находится в директории вашего проекта. Используйте команду ls, чтобы подтвердить его наличие.

    ls -lh capture.pcap
    

    Вывод покажет сведения о файле, включая его размер и имя.

    -rw-rw-r-- 1 labex labex 9.1M Oct 24  2015 capture.pcap
    
  3. Чтобы получить общую сводку по файлу захвата, воспользуйтесь утилитой capinfos, которая поставляется вместе с Wireshark.

    capinfos capture.pcap
    

    Эта команда предоставляет метаданные о файле, такие как количество пакетов, длительность захвата и средний размер пакета.

    File name:           capture.pcap
    File type:           Wireshark/tcpdump/... - pcap
    File encapsulation:  Ethernet
    File timestamp precision:  microseconds (6)
    Packet size limit:   file hdr: 65535 bytes
    Number of packets:   14 k
    File size:           9444 kB
    Data size:           9216 kB
    Capture duration:    298.505344 seconds
    First packet time:   2011-01-26 02:52:22.484409
    Last packet time:    2011-01-26 02:57:20.989753
    Data byte rate:      30 kBps
    Data bit rate:       247 kbps
    Average packet size: 646.28 bytes
    Average packet rate: 47 packets/s
    SHA256:              77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1
    RIPEMD160:           68e950b2e438c7be011a46646ddfc8105b65b339
    SHA1:                06e502dca8dbfe8e6a9cabc61f722d94756f6db9
    Strict time order:   True
    Number of interfaces in file: 1
    Interface #0 info:
                         Encapsulation = Ethernet (1 - ether)
                         Capture length = 65535
                         Time precision = microseconds (6)
                         Time ticks per second = 1000000
                         Number of stat entries = 0
                         Number of packets = 14261
    
  4. Наконец, используйте tshark, чтобы прочитать первые пять пакетов из файла. Флаг -r указывает входной файл, а -c ограничивает количество выводимых пакетов.

    tshark -r capture.pcap -c 5
    

    Это выведет краткую сводку в одну строку для каждого из первых пяти пакетов, позволяя быстро взглянуть на трафик.

        1   0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1
        2   0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK  (text/javascript)
        3   0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
        4   0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0
        5   0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64
    

Базовая фильтрация в Tshark

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

  1. Фильтры отображения применяются с помощью флага -Y (заглавная Y). Чтобы просмотреть только TCP-пакеты, используйте фильтр tcp. Давайте посмотрим первые пять TCP-пакетов в файле.

    tshark -r capture.pcap -Y "tcp" -c 5
    

    Теперь в выводе будут отображаться только те пакеты, в которых используется протокол TCP.

  2. Вы также можете фильтровать данные на основе IP-адресов. Чтобы увидеть все пакеты, исходящие с IP-адреса источника 192.168.3.131, используйте фильтр ip.src.

    tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5
    

    Обратите внимание на использование == для точного соответствия.

  3. Фильтры можно комбинировать с помощью логических операторов, таких как && (И). Чтобы найти TCP-пакеты с IP-адреса источника 192.168.3.131, объедините два предыдущих фильтра.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"
    
  4. Вы можете сохранить отфильтрованный результат в новый файл захвата для последующего анализа. Флаг -w указывает выходной файл. Давайте сохраним отфильтрованные TCP-пакеты в файл с именем filtered_tcp.pcap.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap
    
  5. Убедитесь, что новый файл был создан.

    ls -lh filtered_tcp.pcap
    

    Вы увидите ваш новый, уменьшенный файл захвата в списке директории.

Изучение трафика в графическом интерфейсе Wireshark

Хотя tshark отлично подходит для автоматизации, графический интерфейс (GUI) Wireshark предоставляет богатую интерактивную среду для глубокого анализа пакетов. На этом этапе вы запустите Wireshark и изучите его основные компоненты.

  1. Запустите приложение Wireshark из терминала. Важно: убедитесь, что вы используете Desktop Interface (Рабочий стол), а не просто терминал, так как Wireshark — это графическое приложение, которому для работы требуется графическая среда. Символ амперсанда & в конце команды запускает приложение в фоновом режиме, освобождая терминал для других команд.

    wireshark &
    

    Примечание: Если вы попытаетесь запустить эту команду в обычном терминале без графической оболочки, Wireshark не запустится. Всегда используйте Desktop Interface для работы с графическими приложениями.

    Интерфейс рабочего стола Wireshark

  2. Появится главное окно Wireshark. Поскольку мы анализируем уже существующий файл, выбирать сетевой интерфейс не нужно. Вместо этого откройте файл capture.pcap.

    • Перейдите в строку меню и выберите File -> Open....
    • В диалоговом окне выбора файла перейдите в /home/labex/project и выберите capture.pcap.
    • Нажмите кнопку Open.
  3. Главное окно заполнится пакетами из файла. Потратьте немного времени, чтобы ознакомиться с тремя основными панелями:

    Главное окно Wireshark

    • Панель списка пакетов (сверху): Список всех пакетов в захвате с колонками для номера пакета, времени, источника, назначения, протокола и другой сводной информации.
    • Панель деталей пакета (посередине): Детальное древовидное представление уровней протоколов для выбранного в данный момент пакета. Вы можете развернуть каждый уровень (например, Ethernet, IP, TCP), чтобы увидеть его поля.
    • Панель байтов пакета (снизу): Необработанные данные выбранного пакета, отображаемые в шестнадцатеричном и ASCII форматах.
  4. Нажимайте на разные пакеты в верхней панели и наблюдайте, как соответствующим образом обновляется информация в панелях деталей и байтов. Такое интерактивное исследование — одна из самых мощных функций Wireshark.

Применение фильтров отображения в GUI

Синтаксис фильтров отображения, который вы изучили в tshark, идентичен синтаксису в графическом интерфейсе Wireshark. GUI обеспечивает мгновенную визуальную обратную связь, что упрощает создание и тестирование сложных фильтров.

  1. Найдите панель фильтра отображения в верхней части окна Wireshark. Это длинное текстовое поле, в котором часто в качестве подсказки написано "Apply a display filter...".

  2. Давайте отфильтруем HTTP-трафик. Введите http в строку фильтра и нажмите Enter или кнопку Apply (стрелка справа от строки).

    http
    

    Фильтр HTTP в Wireshark

    Панель списка пакетов мгновенно обновится, показывая только HTTP-пакеты. Обратите внимание, что строка фильтра стала зеленой — это означает, что синтаксис фильтра корректен. Если вы введете неверный фильтр, строка станет красной.

  3. Теперь найдем весь DNS-трафик. Очистите предыдущий фильтр, введите dns в строку фильтра и нажмите Enter.

    dns
    

    Теперь вы увидите все запросы и ответы системы доменных имен (DNS) в данном захвате.

  4. Вы можете комбинировать фильтры так же, как делали это в tshark. Чтобы найти HTTP-трафик, связанный с IP-адресом 192.168.3.131 (в качестве источника или назначения), используйте фильтр ip.addr в сочетании с фильтром http.

    http && ip.addr == 192.168.3.131
    

    Комбинированный фильтр HTTP в Wireshark

    Эта мощная комбинация позволяет сфокусироваться на конкретных диалогах между узлами. Поэкспериментируйте с другими фильтрами, например, tcp.port == 80 (для трафика на стандартном HTTP-порту) или udp (для UDP-трафика). Чтобы сбросить фильтр и снова увидеть все пакеты, нажмите кнопку X в строке фильтра.

Экспорт отфильтрованных данных

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

  1. Сначала в графическом интерфейсе Wireshark примените фильтр http, как вы делали на предыдущем шаге.

  2. Чтобы сохранить только отображаемые (отфильтрованные) пакеты в новый файл захвата:

    • Перейдите в File -> Export Specified Packets....
    • В диалоговом окне убедитесь, что в разделе "All Packets" выбран переключатель Displayed.
    • Назовите файл http_capture.pcap и сохраните его в директории /home/labex/project.

    Экспорт выбранных пакетов в Wireshark

  3. Вы также можете экспортировать сводку пакетов в виде текстового файла или CSV. Для экспорта в CSV:

    • Перейдите в File -> Export Packet Dissections -> As CSV....
    • Убедитесь, что для "All Packets" выбрано значение Displayed.
    • Назовите файл http_packets.csv и сохраните его в директории проекта.
  4. Те же операции экспорта можно выполнить с помощью tshark в командной строке. Это полезно для автоматизации. Следующая команда читает исходный capture.pcap, фильтрует по протоколу http и экспортирует определенные поля в CSV-файл.

    tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv
    
    • -T fields: задает формат вывода.
    • -e ...: указывает поля (колонки) для экспорта.
    • -E header=y: добавляет строку заголовка.
    • -E separator=,: использует запятую в качестве разделителя.
  5. Проверьте, что экспортированные файлы были созданы.

    ls -lh http_*
    

    Вы должны увидеть файлы http_capture.pcap, http_packets.csv и http_export_cli.csv в вашей директории.

Резюме

В этой лабораторной работе вы изучили основы фильтрации сетевого трафика с помощью Wireshark и его консольного аналога tshark. Вы начали с проверки файла захвата с помощью tshark и capinfos. Затем вы попрактиковались в применении фильтров отображения для изоляции конкретных протоколов и IP-адресов — сначала в командной строке, а затем в интерактивном графическом интерфейсе Wireshark. Наконец, вы научились экспортировать отфильтрованные результаты в новые файлы захвата и удобные для чтения CSV-файлы для отчетности и анализа. Эти базовые навыки являются фундаментом для любой задачи по анализу сетей или поиску неисправностей.