Отслеживание TCP-потоков в Tshark

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

Введение

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

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

Чтение захвата TCP с помощью -r tcp.pcap

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

Опция -r в tshark позволяет считывать пакеты из ранее сохраненного файла с захваченными пакетами. Представьте это как открытие документа - флаг -r сообщает tshark, какой "документ" (файл с захваченными пакетами) открыть. Мы будем использовать пример файла с именем tcp.pcap, расположенный в каталоге ~/project.

  1. Сначала убедимся, что файл с захваченными пакетами существует в ожидаемой директории. Это хорошая практика перед попыткой анализа любого файла:
ls ~/project/tcp.pcap
  1. Теперь используем tshark для чтения файла с захваченными пакетами. Базовая команда без каких-либо фильтров покажет вам обзор всего сетевого трафика в файле:
tshark -r ~/project/tcp.pcap

Это отображает сводку с важными столбцами:

  • Номер пакета (показывает порядок захваченных пакетов)
  • Метка времени (когда был захвачен каждый пакет)
  • IP-адреса источника и назначения
  • Используемый протокол (TCP, UDP и т.д.)
  • Краткая информация о содержимом пакета
  1. Чтобы более детально изучить содержимое пакетов, мы можем добавить флаг -V (режим подробного вывода). Это покажет полный разбор протокола каждого пакета, слой за слоем:
tshark -r ~/project/tcp.pcap -V

Подробный вывод показывает детали о:

  • Слое Ethernet (MAC-адреса)
  • Слое IP (источник/назначение IP, TTL и т.д.)
  • Слое TCP (порты, номера последовательности, флаги)
  • Данных приложений (если они есть)

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

Определение индекса потока с помощью -z conv,tcp

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

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

Опция -z conv,tcp отображает таблицу всех разговоров по протоколу TCP в захвате, показывая индексы потоков, адреса источника и назначения, порты и количество пакетов. Это дает нам общий обзор всей активности по протоколу TCP в нашем файле с захваченными пакетами.

  1. Сначала выведем все разговоры по протоколу TCP в нашем файле с захваченными пакетами:
tshark -r ~/project/tcp.pcap -z conv,tcp

При выполнении этой команды tshark обработает файл с захваченными пакетами и сгенерирует сводку по всем разговорам по протоколу TCP. Команда считывает (-r) указанный файл pcap и применяет опцию статистики разговоров (-z conv,tcp).

  1. Вывод будет представлять собой таблицу со столбцами:

    • Индекс потока (уникальный идентификатор каждого потока TCP)
    • Адрес источника:порт (показывает, какое устройство инициировало соединение)
    • Адрес назначения:порт (показывает принимающее устройство)
    • Количество пакетов в каждом направлении (помогает определить поток трафика)
    • Общее количество пакетов (дает размер разговора)
  2. Чтобы отфильтровать и увидеть только статистику разговоров (без деталей пакетов), добавьте -q (режим без лишних сообщений):

tshark -r ~/project/tcp.pcap -z conv,tcp -q

Опция -q сообщает tshark выводить только запрошенную статистику, делая вывод более чистым и легким для чтения, когда нас интересует только сводка по разговорам.

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

Отслеживание потока с помощью -z follow,tcp,stream,0

На этом этапе вы научитесь отслеживать и анализировать конкретный поток TCP из файла с захваченными пакетами, используя tshark из пакета Wireshark с опцией -z follow,tcp. Это позволяет вам восстановить фактический поток данных разговора между двумя конечными точками, что упрощает понимание коммуникации на уровне приложения.

Опция -z follow,tcp,stream,0 позволяет вам рассмотреть поток 0 (замените 0 на желаемый индекс потока из предыдущего шага) как непрерывный поток данных, а не отдельные пакеты. Это особенно полезно при анализе протоколов, таких как HTTP, где загрузка одной веб - страницы может потребовать нескольких пакетов.

  1. Сначала отследим поток 0 (первый разговор по TCP) из нашего захвата. Эта команда считывает файл pcap и восстанавливает весь разговор:
tshark -r ~/project/tcp.pcap -z follow,tcp,stream,0
  1. Вывод будет содержать три важных части информации:

    • Полный обмен данными между клиентом и сервером, восстановленный в порядке
    • ASCII - представление данных на уровне приложения (то, что приложения фактически отправили)
    • Индикаторы направления (">" для передачи от клиента к серверу, "<" для передачи от сервера к клиенту), которые помогают отслеживать, кто начал каждую часть разговора
  2. Чтобы отследить другой поток, замените "0" на желаемый индекс потока (из вывода шага 2). Например, чтобы увидеть второй разговор в захвате:

tshark -r ~/project/tcp.pcap -z follow,tcp,stream,1
  1. Для более чистого вывода, показывающего только данные (без заголовков пакетов), добавьте -q (режим без лишних сообщений). Это полезно, когда вас интересуют только данные приложения:
tshark -r ~/project/tcp.pcap -z follow,tcp,stream,0 -q

Сохранение текста потока с использованием перенаправления

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

  1. Сначала сохраним поток 0 в файл с именем stream0.txt. Эта команда считывает файл с захваченными пакетами (tcp.pcap) и извлекает только содержимое из потока TCP с индексом 0, а затем перенаправляет вывод в новый текстовый файл:
tshark -r ~/project/tcp.pcap -z follow,tcp,stream,0 -q > ~/project/stream0.txt
  1. После выполнения команды убедитесь, что файл был успешно создан. Команда ls -l показывает подробную информацию о файле, включая его размер и время создания:
ls -l ~/project/stream0.txt
  1. Чтобы просмотреть фактическое содержимое, которое вы сохранили, используйте команду cat. Это отобразит полный разговор из потока TCP, включая сообщения как клиента, так и сервера:
cat ~/project/stream0.txt
  1. Та же техника работает для любого потока TCP в вашем файле с захваченными пакетами. Вот как сохранить поток 1, просто изменив индекс потока в команде. Обратите внимание, что мы создаем новый файл (stream1.txt), чтобы не перезаписать предыдущий:
tshark -r ~/project/tcp.pcap -z follow,tcp,stream,1 -q > ~/project/stream1.txt
  1. При изучении более длинных потоков добавление номеров строк может упростить анализ. Флаг -n с командой cat отображает каждую строку с соответствующим ей номером, что помогает вам ссылаться на конкретные части разговора:
cat -n ~/project/stream0.txt

Резюме

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

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