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

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

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

Введение

В этом практическом занятии вы научитесь фильтровать и экспортировать определенные сетевые пакеты с помощью командной строки tshark в Wireshark. Вы научитесь извлекать UDP-пакеты из образцового файла захвата (capture.pcap) и сохранять их в новый файл (udp.pcap).

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/packet_capture -.-> lab-548924{{"Экспорт отфильтрованных пакетов в Tshark"}} wireshark/display_filters -.-> lab-548924{{"Экспорт отфильтрованных пакетов в Tshark"}} wireshark/export_packets -.-> lab-548924{{"Экспорт отфильтрованных пакетов в Tshark"}} wireshark/packet_analysis -.-> lab-548924{{"Экспорт отфильтрованных пакетов в Tshark"}} wireshark/commandline_usage -.-> lab-548924{{"Экспорт отфильтрованных пакетов в Tshark"}} end

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

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

Опция -r в tshark позволяет считывать пакеты из ранее сохраненного файла захвата. Файл, который мы будем использовать (capture.pcap), содержит образцы сетевого трафика для анализа. Файлы PCAP хранят необработанные данные сетевых пакетов, которые можно изучить позже.

Следуйте этим шагам внимательно:

  1. Сначала убедитесь, что вы находитесь в правильной директории, где расположен файл захвата. Это важно, так как tshark должен найти файл:
cd ~/project
  1. Проверьте, существует ли файл захвата, и проверьте его размер. Это подтвердит, что вы работаете с правильным файлом:
ls -l capture.pcap

Вы должны увидеть вывод, похожий на этот, показывающий права доступа к файлу, размер и время изменения:

-rw-r--r-- 1 labex labex 123456 Jul 1 10:00 capture.pcap
  1. Теперь откройте файл захвата с помощью tshark. Эта базовая команда считывает файл и отображает сводку по каждому пакету:
tshark -r capture.pcap

В терминале отобразится сводка по пакетам. Каждая строка представляет один сетевой пакет с ключевой информацией:

1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 443 → 54321 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 74 54321 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
  1. Чтобы увидеть более подробную информацию о пакетах, включая все уровни протоколов (например, Ethernet, IP, заголовки TCP), вы можете добавить флаг -V для получения подробного вывода:
tshark -r capture.pcap -V

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

Фильтрация UDP с использованием -Y "udp"

На этом этапе вы научитесь фильтровать UDP-пакеты из сетевого захвата, используя синтаксис фильтра отображения Wireshark с опцией -Y в tshark. UDP (User Datagram Protocol, протокол пользовательских датаграмм) является основным сетевым протоколом, который обеспечивает простой способ отправки датаграмм без установления соединения. Этот фильтр особенно полезен, когда вам нужно сосредоточиться только на UDP-трафике из более крупного файла захвата, который может содержать несколько протоколов.

Опция -Y в tshark работает аналогично полю фильтра отображения в Wireshark. Она позволяет указать критерии фильтрации, которые будут отображать только пакеты, соответствующие определенным условиям. Здесь мы будем специально фильтровать пакеты, использующие протокол UDP.

Следуйте этим шагам внимательно:

  1. Сначала убедитесь, что вы по-прежнему находитесь в директории проекта, где расположен ваш файл захвата. Это важно, так как tshark нужен правильный путь для доступа к файлу захвата:
cd ~/project
  1. Теперь примените фильтр UDP для анализа только UDP-пакетов в файле захвата. Базовая структура команды: tshark -r [файл] -Y [фильтр]:
tshark -r capture.pcap -Y "udp"

Эта команда обработает файл capture.pcap и отобразит только UDP-пакеты. Вывод будет показывать отфильтрованные пакеты в таком формате:

5 0.002345 192.168.1.1 → 192.168.1.2 UDP 82 5353 → 5353 Len=40
8 0.004567 192.168.1.2 → 192.168.1.1 UDP 82 5353 → 5353 Len=40

Каждая строка представляет UDP-пакет, показывая его номер в захвате, временную метку, IP-адреса источника и назначения, порты и длину пакета.

  1. Чтобы получить более подробную информацию о каждом UDP-пакете, вы можете добавить флаг -V (подробный вывод). Это отобразит полный разбор протокола для каждого пакета:
tshark -r capture.pcap -Y "udp" -V

Этот подробный вывод покажет все уровни пакета, включая Ethernet, IP и заголовки UDP с соответствующими полями и значениями.

  1. Если вам просто нужно узнать, сколько UDP-пакетов есть в вашем захвате (без просмотра их содержимого), вы можете передать вывод в команду подсчета слов:
tshark -r capture.pcap -Y "udp" | wc -l

Это выведет одно число, представляющее общее количество найденных UDP-пакетов в файле захвата.

Экспорт пакетов с использованием -w udp.pcap

На этом этапе вы научитесь экспортировать отфильтрованные UDP-пакеты в новый файл захвата с использованием опции -w в Wireshark. Это особенно полезно, когда вы хотите выделить определенный сетевой трафик для более детального анализа или для обмена с коллегами.

Опция -w сообщает Tshark записать пакеты в файл в формате pcap, который является стандартным форматом для файлов захвата пакетов. В сочетании с фильтром -Y, который мы использовали ранее, мы можем выборочно сохранить только UDP-пакеты из исходного файла захвата.

Разберем процесс пошагово:

  1. Сначала убедитесь, что вы находитесь в директории проекта, где расположен ваш файл захвата:
cd ~/project
  1. Теперь экспортируем все UDP-пакеты в новый файл с именем udp.pcap:
tshark -r capture.pcap -Y "udp" -w udp.pcap

Эта команда выполняет три важные задачи:

  • -r capture.pcap указывает входной файл для чтения
  • -Y "udp" применяет наш фильтр для выбора только UDP-пакетов
  • -w udp.pcap сообщает Tshark, куда сохранить отфильтрованные пакеты
  1. После выполнения команды проверим, был ли создан наш новый файл:
ls -l udp.pcap

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

-rw-r--r-- 1 labex labex 12345 Jul 1 10:05 udp.pcap
  1. Чтобы проверить, сколько UDP-пакетов было фактически экспортировано в наш новый файл:
tshark -r udp.pcap | wc -l

Эта команда подсчитывает все пакеты в новом файле. Число должно совпадать с количеством UDP-пакетов из исходного захвата.

  1. Наконец, убедимся, что были экспортированы только UDP-пакеты, проверив наличие не-UDP пакетов:
tshark -r udp.pcap -Y "not udp" | wc -l

Это должно вернуть 0, что означает, что наш фильтр сработал правильно и в файл udp.pcap были сохранены только UDP-пакеты.

Проверка с использованием -r udp.pcap -V

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

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

  1. Сначала перейдите в директорию проекта, где хранится ваш файл захвата пакетов:
cd ~/project
  1. Просмотрите первые несколько UDP-пакетов с подробной информацией о протоколе. Команда head -20 ограничивает вывод первыми 20 строками для удобства чтения:
tshark -r udp.pcap -V | head -20

Вывод будет показывать детали пакета, как в этом примере, где вы можете проверить информацию о протоколе UDP:

Frame 1: 82 bytes on wire (656 bits), 82 bytes captured (656 bits)
Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb
Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2
User Datagram Protocol, Src Port: 5353, Dst Port: 5353
  1. Чтобы убедиться, что все пакеты в файле являются UDP-пакетами, мы рассмотрим поля протокола. Эта команда извлекает и подсчитывает уникальные типы протоколов:
tshark -r udp.pcap -T fields -e frame.protocols | sort | uniq -c

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

  1. Для тщательной проверки проверим, нет ли случайно включенных не-UDP пакетов. Эта команда фильтрует не-UDP трафик и должна вернуть пустой результат:
tshark -r udp.pcap -Y "not udp" -V
  1. Наконец, подсчитайте общее количество UDP-пакетов в экспортированном файле, чтобы убедиться, что количество соответствует вашим ожиданиям:
tshark -r udp.pcap | wc -l

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

Резюме

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

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