Чтение данных пакетов в Tshark

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь использовать командную строку инструмента Wireshark - tshark для анализа сетевых пакетов, сохраненных в файлах. Вы будете практиковать использование основных команд, таких как -r для чтения файлов с сохраненными пакетами, -V для вывода подробной информации и -c для ограничения количества пакетов при работе с примером файла формата PCAP.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/display_filters -.-> lab-548937{{"Чтение данных пакетов в Tshark"}} wireshark/packet_analysis -.-> lab-548937{{"Чтение данных пакетов в Tshark"}} wireshark/commandline_usage -.-> lab-548937{{"Чтение данных пакетов в Tshark"}} end

Открытие файла с помощью -r capture.pcap

В этом шаге мы рассмотрим, как анализировать предварительно записанный сетевой трафик с помощью мощного инструмента командной строки Wireshark - tshark. При работе с сетевым анализом нам часто необходимо изучать ранее захваченные данные, а не захватывать трафик в реальном времени. Флаг -r (от "read" - читать) позволяет нам сделать именно это, указав файл захвата пакетов для анализа.

Прежде чем мы начнем, давайте убедимся, что мы работаем в правильном месте. При работе в терминале крайне важно находиться в правильном каталоге, где хранятся наши файлы:

cd ~/project

В среде LabEx предустановлен tshark, который является версией Wireshark для командной строки. Чтобы убедиться, что он доступен, и проверить, какую версию мы используем (хорошая практика при работе с любым инструментом), выполните:

tshark --version

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

Для этой демонстрации мы будем работать с образцом файла захвата сетевого трафика. Он уже загружен в /home/labex/project/capture.pcap.

Теперь мы готовы изучить захваченный сетевой трафик. Основная команда для чтения и отображения содержимого нашего файла захвата:

tshark -r capture.pcap

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

  • Packet number (Номер пакета): Последовательный идентификатор каждого пакета
  • Timestamp (Временная метка): Когда пакет был захвачен (относительно начала захвата)
  • Source IP (IP-адрес источника): Откуда пришел пакет
  • Destination IP (IP-адрес назначения): Куда направлялся пакет
  • Protocol (Протокол): Используемый сетевой протокол (TCP, UDP и т. д.)
  • Length (Длина): Размер пакета в байтах
  • Info (Информация): Краткое описание назначения или содержимого пакета

Вот как может выглядеть типичный вывод, показывающий установление TCP-соединения:

1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 66 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

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

Отображение сводки по пакетам с использованием вывода по умолчанию

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

Перед началом убедимся, что мы находимся в правильной рабочей директории, где хранится наш файл с захваченными пакетами:

cd ~/project

Вывод tshark по умолчанию представляет сетевой трафик в столбцах, каждый из которых сообщает нам что - то важное о сетевом взаимодействии:

  1. Номер пакета: Последовательный идентификатор каждого пакета в файле с захваченными данными
  2. Временная метка: Время, когда пакет был захвачен, относительно первого пакета
  3. Адрес источника: Откуда пришел пакет (IP - адрес)
  4. Адрес назначения: Куда направлен пакет (IP - адрес)
  5. Протокол: Используемый сетевой протокол (TCP, UDP и т.д.)
  6. Длина: Размер пакета в байтах
  7. Информация: Дополнительные детали, специфичные для протокола

Посмотрим на первые 5 пакетов, чтобы увидеть это в действии:

tshark -r capture.pcap -c 5

Пример вывода:

    1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
    2 0.000123 192.168.1.2 → 192.168.1.1 TCP 66 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
    3 0.000145 192.168.1.1 → 192.168.1.2 TCP 54 443 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
    4 0.000567 192.168.1.1 → 192.168.1.2 TLSv1 583 Client Hello
    5 0.000789 192.168.1.2 → 192.168.1.1 TCP 54 49234 → 443 [ACK] Seq=1 Ack=530 Win=65535 Len=0

Для более широкого понимания того, что происходит в нашем файле с захваченным сетевым трафиком, мы можем подсчитать, сколько пакетов относится к каждому типу протокола. Это помогает определить, какие протоколы наиболее активны в нашем сетевом трафике:

tshark -r capture.pcap -qz io,phs

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

Отображение детальных полей с использованием флага -V

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

Перед началом убедимся, что мы находимся в правильной рабочей директории, где хранится наш файл с захваченными пакетами:

cd ~/project

Флаг -V показывает полную структуру каждого пакета, отображает все протоколовые слои от физического кадра до данных приложения. Эта иерархическая визуализация помогает понять, как различные протоколы взаимодействуют в сетевом взаимодействии. Посмотрим на первый пакет в нашем файле с захваченными данными:

tshark -r capture.pcap -V -c 1

Вывод будет содержать подробную информацию о каждом протоколовом слое. Вот пример того, что вы можете увидеть (сокращено для наглядности):

Frame 1: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)
    Encapsulation type: Ethernet (1)
    Arrival Time: Jun  8, 2023 10:15:32.000000000 UTC
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1686219332.000000000 seconds
    [Time delta from previous captured frame: 0.000000000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 0.000000000 seconds]
    Frame Number: 1
    Frame Length: 66 bytes (528 bits)
    Capture Length: 66 bytes (528 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:tcp]
Ethernet II, Src: 00:11:22:33:44:55, Dst: aa:bb:cc:dd:ee:ff
    Destination: aa:bb:cc:dd:ee:ff
    Source: 00:11:22:33:44:55
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2
    Version: 4
    Header length: 20 bytes
    ...

Если вы хотите увидеть детали только для пакетов, содержащих определенный протокол (например, TCP), вы можете комбинировать -V с фильтром отображения -Y. Это поможет сосредоточиться на определенном сетевом трафике:

tshark -r capture.pcap -V -Y "tcp" -c 1

Подсчет пакетов с использованием флага -c 100

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

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

cd ~/project

Флаг -c (сокращение от "count" - подсчет) ограничивает количество пакетов, которые Tshark будет обрабатывать и отображать. Например, чтобы рассмотреть только первые 100 пакетов из нашего файла с захваченными данными:

tshark -r capture.pcap -c 100

При анализе определенного типа трафика мы можем комбинировать флаг -c с фильтром отображения с помощью -Y. Эта команда показывает первые 100 HTTP - пакетов:

tshark -r capture.pcap -Y "http" -c 100

Если вам нужно узнать общее количество пакетов в файле (а не только первые 100), этот конвейер команд подсчитывает все строки в выводе:

tshark -r capture.pcap | wc -l

Для более подробного разбора протоколов в вашем файле с захваченными данными эта команда предоставляет сводку по иерархии протоколов, показывающую количество пакетов для каждого типа протокола:

tshark -r capture.pcap -qz io,phs

Резюме

В этом практическом занятии вы научились использовать командную строку Wireshark - инструмент tshark для анализа сетевых пакетов, сохраненных в файлах. В рамках упражнений вы узнали, как открывать файлы формата PCAP с помощью флага -r, проверять версию установленного инструмента с помощью --version и изучать поля по умолчанию вывода, включая метаданные пакетов и информацию о протоколах.

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