Введение
В этом практическом занятии (лабораторной работе) вы научитесь использовать командную строку инструмента Wireshark - tshark для анализа сетевых пакетов, сохраненных в файлах. Вы будете практиковать использование основных команд, таких как -r для чтения файлов с сохраненными пакетами, -V для вывода подробной информации и -c для ограничения количества пакетов при работе с примером файла формата PCAP.
В ходе практических упражнений вы будете изучать заголовки пакетов, определять важные сетевые параметры, включая IP - адреса и протоколы, а также интерпретировать различные форматы вывода. В рамках этого практического занятия вы получите практический опыт работы с основными функциями tshark для эффективного анализа сетевого трафика.
Открытие файла с помощью -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 по умолчанию представляет сетевой трафик в столбцах, каждый из которых сообщает нам что - то важное о сетевом взаимодействии:
- Номер пакета: Последовательный идентификатор каждого пакета в файле с захваченными данными
- Временная метка: Время, когда пакет был захвачен, относительно первого пакета
- Адрес источника: Откуда пришел пакет (IP - адрес)
- Адрес назначения: Куда направлен пакет (IP - адрес)
- Протокол: Используемый сетевой протокол (TCP, UDP и т.д.)
- Длина: Размер пакета в байтах
- Информация: Дополнительные детали, специфичные для протокола
Посмотрим на первые 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 для контроля объема вывода. Эти навыки создают прочную основу для эффективного анализа сетевого трафика и исследования протоколов с использованием сохраненных файлов с захваченными пакетами.


