Глава 6. Импорт и экспорт данных

Материал из wireshark.wiki

6.1. Введение

В этой главе описаны возможности по импорту и экспорту данных в Wireshark:

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


Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

6.2. Открытие файла с захваченными данными

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

  • выбрать в меню ФайлОткрыть;
  • выбрать в главной панели инструментов пиктограмму Пиктограмма, обозначающая открытие файла, на главной панели инструментов Wireshark;
  • перетащить файл в главное окно (drag & drop);
  • использовать комбинацию клавиш CTRL + O.

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

Wireshark способна открывать файлы захвата не только в тех форматах, которыми пользуется сама, но и в других форматах (их список приведен далее в этой главе).

6.2.1. Диалоговое окно «Открытие файла захвата»

Диалоговое окно «Открытие файла захвата»

Диалоговое окно «Открытие файла захвата» в Wireshark

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

В диалоговом окне имеются следующие элементы:

  • Кнопка Открыть используется для подтверждения выбора файла и его дальнейшего открытия.
  • Кнопка Отмена используется для закрытия диалогового окна без открытия файла захвата.
  • Кнопка Справка используется для перехода в раздел «Руководство пользователя».
  • Поле Фильтр чтения (Read filter) используется для указания фильтра, который может быть применен, если необходимо отобразить только часть из всего множества пактов, сохраненных в файле пакетов. Синтаксис этого фильтра полностью совпадает с синтаксисом экранного фильтра, который описан в разделе 6.3 «Фильтрация пакетов при просмотре».
  • Поле Тип файлов используется для ограничения отображения файлов, которые могут быть выбраны для открытия, основываясь на расширении этих файлов.
  • Выпадающее меню без названия используется для принудительного указания формата, в котором сохранен файл. Оно может быть полезно, если надо открыть файл в формате, отличном от значения по умолчанию, или Wireshark некорректно распознает формат файла.
  • Поля Format, Size, Start / elapsed используются для отображения информации о файле (формат, размер, дата, время и продолжительность захвата). Они заполняются при выборе файла до нажатия на кнопку Открыть.

6.2.2. Поддерживаемые форматы файлов для импорта

Исходными форматами файлов захвата в Wireshark являются:

  • pcap – это исходный формат, который использовался в Wireshark 1.7 и более ранних версиях. Этот формат также применяется в утилитах tcpdump, Snort, Nmap, Ntop и др.;
  • pcapng – преемник формата pcap, который предоставляет больший функционал. Формат по умолчанию используется в Wireshark начиная с версии 1.8.

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

  • Oracle (ранее Sun) snoop и atmsnoop;
  • Finisar (ранее Shomiti) Surveyor;
  • Microsoft Network Monitor;
  • Novell LANalyzer;
  • AIX iptrace;
  • Cinco Networks NetXray;
  • NETSCOUT (ранее Network Associates/Network General) Windows-based Sniffer и Sniffer Pro;
  • Network General/Network Associates DOS-based Sniffer;
  • LiveAction Peek/EtherHelp/PacketGrabber;
  • RADCOM’s WAN/LAN Analyzer;
  • Viavi Observer;
  • ОС маршрутизаторов Lucent/Ascend;
  • ОС маршрутизаторов Toshiba’s ISDN;
  • HP-UX nettl;
  • EyeSDN USB S0;
  • Cisco Secure Intrusion Detection System;
  • VMS’s TCPIPtrace/TCPtrace/UCX$TRACE;
  • DBS Etherwatch VMS;
  • Visual Networks’ Visual UpTime;
  • CoSine L2 debug;
  • InfoVista (ранее Accellent) 5Views LAN agents;
  • ERF от Endace Measurement Systems;
  • Juniper Netscreen snoop;
  • Symbian OS btsnoop;
  • Tamosoft CommView;
  • Tektronix K12xx 32bit .rf5;
  • Apple PacketLogger;
  • Aethra Telecommunications’ PC108;
  • Citrix NetScaler;
  • Colasoft Capsa и PacketBuilder;
  • Unigraf DPA-400 DisplayPort AUX channel monitor;
  • 802.15.4 от Daintree’s Sensor Network Analyzer;
  • candump;
  • BUSMASTER;
  • НIxia IxVeriWave;
  • Rabbit Labs CAM Inspector;
  • systemd;
  • 3GPP TS 32.423;
  • многие другие программы.

Этот список периодически расширяется.

Чтение в Wireshark ethernet-кадров из файлов захвата, сохраненных в форматах, отличных от pcap и pcapng, возможно почти для всех форматов, которые поддерживаются перечисленными выше программами. А чтение кадров других форматов, таких как PPP или IEEE 802.11, может быть невозможно для некоторых форматов, которые поддерживаются перечисленными выше программами.

6.3. Сохранение в файл захваченных данных

В Wireshark можно сохранить захваченные данные одним из следующих способов:

  • выбрать в меню ФайлСохранить или ФайлСохранить как;
  • выбрать в главной панели инструментов пиктограмму Пиктограмма, обозначающая сохранение файла, на главной панели инструментов Wireshark (аналог «Сохранить как»);
  • использовать комбинацию клавиш CTRL + S (аналог «Сохранить») или CTRL + Shift + S (аналог «Сохранить как»).

Можно выбрать формат, в котором должно быть выполнено сохранение. Разные форматы поддерживают разный объем сохраняемой информации. Например, при сохранении в большинство форматов файлов не фиксируется количество утерянных пакетов. Для получения дополнительной информации можно обратиться к разделу B.1, посвященному файлам захвата.

6.3.1. Диалоговое окно «Сохранение файла захвата в выбранном формате»

Диалоговое окно «Сохранение файла захвата в выбранном формате»

Диалоговое окно «Сохранение файла захвата в выбранном формате» в Wireshark

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

В диалоговом окне имеются следующие элементы:

  • Кнопка Сохранить используется для подтверждения сохранения.
  • Кнопка Отмена используется для закрытия диалогового окна без открытия файла захвата.
  • Кнопка Справка используется для перехода в раздел «Руководство пользователя».
  • Поле Имя файла (Read filter) используется для указания имени сохраняемого файла.
  • Выпадающее меню Тип файла используется для указания формата, в котором должен быть сохранен файл.
  • Чек-бокс Сжать с помощью gzip (Compress with gzip) используется при необходимости сжатия файла в формате gzip.

Если не указать расширение файла, Wireshark добавит стандартное для этого формата расширение файла.


Конвертация формата файла

Можно открыть файл захвата в одном формате и выполнить его сохранение в другом.


Возможна потеря информации

Сохранение файла в другом формате может привести к потере информации, которая не поддерживается новым форматом.


Выборочное сохранение пакетов

С помощью Wireshark можно совершать выборочное сохранение отдельных пакетов. Как это делать, описано в разделе 5.7.1 «Диалоговое окно "Экспортировать указанные пакеты"».

6.3.2. Поддерживаемые форматы файлов для экспорта

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

Wireshark может сохранить файлы захвата в следующих форматах (в скобках приведены расширения файлов):

  • Wireshark pcapng (*.pcap и *.pcapng);
  • Accellent 5Views (*.5vw);
  • HP-UX nettl (*.trc0, *.trc1);
  • Microsoft Network Monitor - NetMon (*.cap);
  • Network Associates Sniffer - DOS (*.cap, *.enc, *.trc, *.fdc, *.syc);
  • Cinco Networks NetXray (*.cap);
  • Network Associates Sniffer - Windows (*.cap);
  • Network Instruments/Viavi Observer (*.bfr);
  • Novell LANalyzer (*.tr1);
  • Oracle (ранее Sun) snoop (*.snoop, *.cap);
  • Visual Networks Visual UpTime traffic (.);
  • Symbian OS btsnoop (*.log);
  • Tamosoft CommView (*.ncf);
  • Catapult (ныне Ixia/Keysight) DCT2000 (*.out);
  • Endace Measurement Systems' (*.erf);
  • EyeSDN USB S0 (*.trc);
  • Текстовые файлы захвата Tektronix K12 (*.txt);
  • Tektronix K12xx 32bit .rf5 (*.rf5);
  • бинарные логи Android Logcat (*.logcat);
  • текстовые логи Android Logcat (.);
  • файлы трассировки Citrix NetScaler (*.cap).

Этот список периодически расширяется.


Определение типа файла разными программами

Wireshark определяет тип файла по его содержимому, а не по расширению. В то время как некоторые другие анализаторы протоколов могут полагаться исключительно на расширение файла. Например, для того чтобы открыть файл в утилите Sniffer в ОС Windows, его обязательно необходимо сохранить с расширением .cap.

6.4. Объединение файлов с захваченными данными

С помощью Wireshark можно объединить несколько файлов захвата в один. Это может быть полезно, например, если был выполнен одновременный захват с нескольких интерфейсов. Объединение можно осуществить одним из следующих способов:

  • в меню выбрать ФайлОбъединить. После этого откроется диалоговое окно «Объединение файла захвата». Пункт меню будет активным, только если уже открыт какой-либо файл захвата;
  • выполнить одновременное перетаскивание нескольких файлов в главное окно. Wireshark попытается разместить пакеты в хронологическом порядке;
  • • использовать инструмент командной строки mergecap. У этого способа более широкий функционал, чем у двух других. С более подробной информацией можно ознакомиться в разделе D.8 «mergecap: Объединение нескольких файлов захвата в один».

6.4.1. Диалоговое окно «Объединение файла захвата»

Диалоговое окно «Объединение файла захвата»

Диалоговое окно «Объединение файла захвата» в Wireshark


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

Большинство элементов управления этого диалогового окна совпадают с элементами диалогового окна «Открыть файл захвата», которое описано в разделе 5.2.1 «Диалоговое окно "Открытие файла захвата"». К специфическим элементам данного диалогового окна относятся следующие:

  • Добавление пакетов в начало (Prepend packets to existing file) – добавление пакетов из выбранного файла перед пакетами уже загруженного файла.
  • Хронологическое объединение (Merge packets chronologically) – объединение пакетов из обоих файлов в хронологическом порядке.
  • Добавление пакетов в конец (Append packets to existing file) – добавление пакетов из выбранного файла после пакетов уже загруженного файла.

6.5. Импорт шестнадцатеричного дампа

Wireshark может считывать шестнадцатеричные дампы и записывать описанные в них данные в файл захвата. Дампы могут содержать информацию как об одном пакете, так и о множестве различных пакетов. Кроме того, Wireshark может генерировать фиктивные заголовки Ethernet, IP, UDP, TCP или SCTP, что позволяет создавать файлы захвата на основе шестнадцатеричных дампов, содержащих информацию только о протоколах уровня приложений.

Поддерживаются два формата входных данных:

  • стандартные шестнадцатеричные дампы ASCII,
  • обычные текстовые дампы.

6.5.1. Стандартные шестнадцатеричные дампы ASCII

Wireshark понимает шестнадцатеричные дампы в формате, который генерируется командой od -Ax -tx1 -v. Другими словами, каждый байт отображается индивидуально, пробелы отделяют байты друг от друга. Шестнадцатеричные символы могут быть как в верхнем, так и в нижнем регистре.

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

Пакетам может предшествовать указатель направления (I – input, вход или O – output, выход) и (или) указатель времени, если это предусмотрено. Если присутствуют оба информационных поля, то указатель направления предшествует указателю времени. Формат указания времени должен быть описан отдельно. Если указатель времени не анализируется, то для первого пакета используется текущее системное время, а все следующие пакеты записываются как созданные на одну микросекунду позже предыдущего пакета.

Будут игнорироваться:

  • текст после байтов данных;
  • строки, начинающиеся со знака решетки («#»), т.к. использование этого знака означает, что после него будет приведен комментарий;
  • строки в которых отсутствует информация о смещении;
  • текстовые строки между строками байтов, т.к. они будут считаться преамбулой, в которой приводятся указатели направления и времени;
  • строки, начинающиеся с #TEXT2PCAP, т.к. они будут считаться зарезервированными для еще нереализованного функционала директив, с помощью которого могут быть указаны параметры для обработки Wireshark.

Вот пример дампа, который можно импортировать, включая необязательные указатели направления и временную метку:

0000 18 fd 74 b4 a0 ed 3c 7c 3f f5 7f 6e 08 00 45 00
0010 00 3c 90 c8 00 00 80 01 00 00 0a 0b 0c 8b 4d 58
0020 08 08 08 00 4d 44 00 01 00 17 61 62 63 64 65 66
0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
0040 77 61 62 63 64 65 66 67 68 69

6.5.2. Обычные текстовые дампы

Wireshark умеет проверять данные, используя специальное правило поиска, созданное на языке Perl. Это правило определяется через систему GLib’s GRegex. Если в файле есть пакет данных, соответствующий этому правилу, Wireshark найдет его. Поиск ведется от начала файла до предпоследнего символа (последним символом должен быть \n, и он не учитывается). Wireshark ищет участки текста, которые в точности соответствуют заданному условию. После нахождения таких участков Wireshark определяет, какие части данных нужно импортировать, исходя из специальных меток в правиле. Затем эти данные преобразуются и записываются в стандартный формат файла libpcap, сохраняя тот порядок пакетов данных, в котором они шли в исходном файле.

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

Например, такой дамп, как:

> 0:00:00.265620 a130368b000000080060
> 0:00:00.280836 a1216c8b00000000000089086b0b82020407
< 0:00:00.295459 a2010800000000000000000800000000
> 0:00:00.296982 a1303c8b00000008007088286b0bc1ffcbf0f9ff
> 0:00:00.305644 a121718b0000000000008ba86a0b8008
< 0:00:00.319061 a2010900000000000000001000600000
> 0:00:00.330937 a130428b00000008007589186b0bb9ffd9f0fdfa3eb4295e99f3aaffd2f005
> 0:00:00.356037 a121788b0000000000008a18

может быть импортирован с помощью следующего правила:

regex: ^(?<dir>[<>])\s(?

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

Правила могут быть написаны для следующих полей:

data (обязательное поле) – поле, обозначающее фактически захваченные данные пакета;

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

dir – поле, обозначающее направление, в котором пакет был отправлен по сети. Ожидается, что захваченное поле будет иметь длину в один символ, остальные символы игнорируются (например, для «Input» учитывается только «I»). Этот символ ищется в списке символов, а затем пакету присваивается надлежащее направление. Если ни один из списков не дает совпадения, направление устанавливается как неизвестное. Если это поле не указано, то у файла будет отсутствовать информация о направлении;

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

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

6.5.3. Диалоговое окно «Импорт из шестнадцатеричного дампа»

Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Шестнадцатеричный дамп»

Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Шестнадцатеричный дамп» в Wireshark


Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Регулярное выражение»

Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Регулярное выражение» в Wireshark


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

Блок «Файл»

Раздел «Файл» используется для выбора файла, из которого будет выполнен импорт данных. В разделе есть только одно одноименное поле.

Блок «Режим импорта»

В блоке «Режим импорта» определяется, как следует интерпретировать входной файл. В блоке имеются две вкладки: «Шестнадцатеричный дамп» и «Регулярное выражение». Режим импорта задается тем, какая из двух вкладок является активной. Также в этом разделе имеется строка с параметром «Формат метки времени».

Вкладка «Шестнадцатеричный дамп»

На вкладке «Шестнадцатеричный дамп» можно указать формат смещения, включить или выключить отображение направления передачи данных и использование кодировки ASCII.

В поле «Смещение» задается формат, в котором во входном файле указано значение смещения. Возможные форматы: шестнадцатеричный, десятичный, восьмеричный и «не используется». Чаще всего смещение указывается в шестнадцатеричном формате. Если выбрать тип смещения «не используется», то все входные данные будут считаться данными, относящимися к одному пакету.

При активации параметра «Направление пакета» программа будет искать в файле указатели направления. Эти индикаторы размещаются на отдельной строке перед каждым пакетом и начинаются с буквы I или i (для входящих данных, input) и O или o (для исходящих данных, output). Информация о направлении может быть полезной, например, при диагностике сетевых проблем, поскольку направление трафика часто имеет ключевое значение для понимания природы проблемы.

При активации параметра «Идентификация ASCII» программа будет преобразовывать полученные данные с помощью кодировки ASCII.

Вкладка «Регулярное выражение»

На вкладке «Регулярное выражение» можно указать регулярное выражение, которое будет применяться при импорте. Также на этой вкладке можно выбрать тип кодирования данных.

В поле «Регулярное выражение для описания формата пакета» можно указать само выражение. Якоря ^ и $ устанавливаются непосредственно перед символами новой строки \n или \r\n и после них. С полной англоязычной документацией по регулярным выражениям можно ознакомиться здесь.

В выпадающем меню «Кодирование данных» задается система счисления, которая будет использована при интерпретации знаков, используемых в выражении. Можно выбрать систему счисления по основанию шестьдесят четыре, шестнадцатеричную, восьмеричную и двоичную системы счисления. По умолчанию используется шестнадцатеричная система счисления.

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

Игнорируемые обозначения пробелов для шестнадцатеричной и шестидесятеричной систем счисления: \r, \n, \t, \v.

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

В поле «Направление пакета» имеются два поля в которых отображаются символы, используемые для указания направления движения пакетов (входящие или исходящие). Эти два поля доступны, только если в регулярном выражении присутствует группа (?<dir>…​).

Параметр «Формат временной метки»

В параметре «Формат временной метки» можно указать, как должна интерпретироваться информация о времени. В данном случае следует ориентироваться на формат функции strptime(3), которая используется во многих языках программирования. В строке можно указать %Y для обозначения года, %m для месяца, %d для дня, %H для часов, %M для минут, %S для секунд и %f для обозначения долей секунды с точностью до микросекунд (шесть знаков после запятой).

В режиме анализа шестнадцатеричных дампов (использование вкладки «Шестнадцатеричный дамп») при отсутствии временных меток в импортируемом текстовом файле следует оставить это поле незаполненным, тогда временные метки будут сформированы на основе времени импорта файла.

В режиме использования регулярных выражений (использование вкладки «Регулярное выражение») поле «Формат временной метки» станет активным только при наличии группы (?<time>

Раздел «Инкапсуляция»

Раздел «Инкапсуляция» используется для указания того, как данные должны быть интерпретированы при импорте (ethernet, IEEE 802.11 и др.). Также в разделе можно указать, надо ли добавлять какой-либо фиктивный заголовок и если надо, то какие значения должны быть указаны для него.

В этом разделе имеется несколько подразделов, которые описаны далее.

Выпадающее меню «Тип инкапсуляции»

В выпадающем меню «Тип инкапсуляции» можно указать тип пакетов, которые будут импортированы (ethernet, IEEE 802.11 и др.). Корректный выбор требуется для того, чтобы Wireshark направила содержимое файла захвата к соответствующему диссектору. В этом выпадающем меню представлены все типы пакетов, которые понимает Wireshark.

Меню «Фиктивный заголовок»

Меню «Фиктивный заголовок» активно, только если в качестве типа инкапсуляции выбран протокол Ethernet. В этом меню можно указать, что фиктивный заголовок отсутствует либо что к импортируемым пакетам необходимо добавить фиктивные заголовки Ethernet, IP, UDP, TCP, SCTP или блоки данных SCTP. При выборе типа фиктивного заголовка активируются соответствующие поля.

При выборе типа инкапсуляции «Экспорт верхнего уровня PDU в Wireshark» (Wireshark Upper PDU export) становится доступной опция «Экспорт PDU», с помощью которой можно указать диссектор, к которому будут направлены пакеты.

Поле «Имя интерфейса»

В поле «Имя интерфейса» можно указать имя интерфейса с которого были импортированы данные.

Поле «Максимальная длина кадра»

В поле «Максимальная длина кадра» можно указать максимальный размер импортируемого пакета. Если размер пакета на входе будет превышать значение, указанное в этом поле, то импортируется только та часть пакета, которая соответствует заданному размеру. Остальное будет отброшено. Такое ограничение может быть использовано, например, если для работы с пакетами требуются только их заголовки. Если оставить это поле пустым, устанавливается максимальный размер пакета, равный 256 Кбайт.

Запуск процесса импорта

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

Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

6.6. Наборы файлов

Выполнение захвата возможно во взаимосвязанное множество файлов (см. раздел 4.8 «Файлы захвата и режимы файлов»). В Wireshark имеются функции для повышения удобства работы с такими наборами файлов.

Имя файла в наборе имеет следующий формат: ОбщееИмя_ПорядковыйНомер_ДатаВремя (например, test_00001_20230714183910.pcapng). Все файлы набора имеют одинаковое значение части ОбщееИмя (например, «test») и переменную остальную часть имени файла.

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

Этот простой механизм обычно работает хорошо, но все-таки имеет ряд недостатков:

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

В меню ФайлНабор файлов имеются следующие подразделы:

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

6.7. Экспорт данных

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

6.7.1. Раздел «Экспортировать указанные пакеты»

Диалоговое окно «Экспорт указанных пакетов» можно открыть, выбрав в главном меню ФайлЭкспортировать указанные пакеты.

Диалоговое окно «Экспорт указанных пакетов»

Диалоговое окно «Экспорт указанных пакетов» в Wireshark

Диалоговое окно «Экспорт указанных пакетов» во многом похоже на окно «Сохранение файла захвата в выбранном формате». Ключевое отличие заключается в том, что с помощью этого окна можно осуществить выборочное сохранение отдельных пакетов. С более подробной информацией о частичном сохранении можно ознакомиться в разделе 5.9 «Блок "Диапазон пакетов"».

6.7.2. Раздел «Экспорт результатов разбора пакетов»

Диалоговое окно «Экспорт результатов разбора пакетов» можно открыть, выбрав в главном меню ФайлЭкспорт результатов разбора пакетов и далеевы любой из подпунктов.

Диалоговое окно «Экспорт результатов разбора пакетов»

Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Шестнадцатеричный дамп» в Wireshark


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

  • простой текст (*.txt);
  • Post Script (*.ps);
  • значения, разделенные запятыми (*.csv);
  • PSML (сводный XML) (*.psml);
  • PDML (подробный XML) (*.pdml);
  • массивы байтов, совместимые с C (*.c);
  • JavaScript Object Notation (*.json).

Кроме того, возможно выборочное сохранение отдельных пакетов. С более подробной информацией о частичном сохранении можно ознакомиться в разделе 5.9. «Блок "Диапазон пакетов"».

Формат, в котором будет выполнен экспорт, выбирается в выпадающем списке «Тип файла». Некоторые элементы управления недоступны для определенных форматов, особенно для CSV и JSON.

Пример выгрузки в файл с расширением txt

No.     Time           Source                Destination           Protocol      Length      SSID       Info
 1    0.000000      200.121.1.131            172.16.0.122             TCP         1454                  10554 → 80 [ACK] Seq=1 Ack=1 Win=65535 Len=1400 [TCP segment of a reassembled PDU]
Frame 1: 1454 bytes on wire (11632 bits), 1454 bytes captured (11632 bits)
Ethernet II, Src: 00:50:56:c0:00:01, Dst: 00:0c:29:42:12:13
Internet Protocol Version 4, Src: 200.121.1.131 (200.121.1.131), Dst: 172.16.0.122 (172.16.0.122)
   0100 .... = Version: 4
   .... 0101 = Header Length: 20 bytes (5)
   Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
   Total Length: 1440
   Identification: 0x0141 (321)
   Flags: 0x0000
   ...0 0000 0000 0000 = Fragment offset: 0
   Time to live: 106
   Protocol: TCP (6)
   Header checksum: 0xd390 [validation disabled]
   [Header checksum status: Unverified]
   Source: 200.121.1.131 (200.121.1.131)
   Destination: 172.16.0.122 (172.16.0.122)
   [Source GeoIP: PE, ASN 6147, Telefonica del Peru S.A.A.]
Transmission Control Protocol, Src Port: 10554, Dst Port: 80, Seq: 1, Ack: 1, Len: 1400

Пример выгрузки в файл с расширением csv

"No.","Time","Source","Destination","Protocol","Length","SSID","Info","Win Size"
"1","0.000000","200.121.1.131","172.16.0.122","TCP","1454","","10554 > 80 [ACK] Seq=1 Ack=1 Win=65535 Len=1400 [TCP segment of a reassembled PDU]","65535"
"2","0.000011","172.16.0.122","200.121.1.131","TCP","54","","[TCP ACKed unseen segment] 80 > 10554 [ACK] Seq=1 Ack=11201 Win=53200 Len=0","53200"
"3","0.025738","200.121.1.131","172.16.0.122","TCP","1454","","[TCP Spurious Retransmission] 10554 > 80 [ACK] Seq=1401 Ack=1 Win=65535 Len=1400 [TCP segment of a reassembled PDU]","65535"
"4","0.025749","172.16.0.122","200.121.1.131","TCP","54","","[TCP Window Update] [TCP ACKed unseen segment] 80 > 10554 [ACK] Seq=1 Ack=11201 Win=63000 Len=0","63000"
"5","0.076967","200.121.1.131","172.16.0.122","TCP","1454","","[TCP Previous segment not captured] [TCP Spurious Retransmission] 10554 > 80 [ACK] Seq=4201 Ack=1 Win=65535 Len=1400 [TCP segment of a reassembled PDU]","65535"

Пример выгрузки в файл с расширением json

{
    "_index": "packets-2014-06-22",
    "_type": "doc",
    "_score": null,
    "_source": {
      "layers": {
        "frame": {
          "frame.encap_type": "1",
          "frame.time": "Jun 22, 2014 13:29:41.834477000 PDT",
          "frame.offset_shift": "0.000000000",
          "frame.time_epoch": "1403468981.834477000",
          "frame.time_delta": "0.450535000",
          "frame.time_delta_displayed": "0.450535000",
          "frame.time_relative": "0.450535000",
          "frame.number": "2",
          "frame.len": "86",
          "frame.cap_len": "86",
          "frame.marked": "0",
          "frame.ignored": "0",
          "frame.protocols": "eth:ethertype:ipv6:icmpv6",
          "frame.coloring_rule.name": "ICMP",
          "frame.coloring_rule.string": "icmp || icmpv6"
        },
        "eth": {
          "eth.dst": "33:33:ff:9e:e3:8e",
          "eth.dst_tree": {
            "eth.dst_resolved": "33:33:ff:9e:e3:8e",
            "eth.dst.oui": "3355647",
            "eth.addr": "33:33:ff:9e:e3:8e",
            "eth.addr_resolved": "33:33:ff:9e:e3:8e",
            "eth.addr.oui": "3355647",
            "eth.dst.lg": "1",
            "eth.lg": "1",
            "eth.dst.ig": "1",
            "eth.ig": "1"
          },
          "eth.src": "00:01:5c:62:8c:46",
          "eth.src_tree": {
            "eth.src_resolved": "00:01:5c:62:8c:46",
            "eth.src.oui": "348",
            "eth.src.oui_resolved": "Cadant Inc.",
            "eth.addr": "00:01:5c:62:8c:46",
            "eth.addr_resolved": "00:01:5c:62:8c:46",
            "eth.addr.oui": "348",
            "eth.addr.oui_resolved": "Cadant Inc.",
            "eth.src.lg": "0",
            "eth.lg": "0",
            "eth.src.ig": "0",
            "eth.ig": "0"
          },
          "eth.type": "0x000086dd"
        },
        "ipv6": {
          "ipv6.version": "6",
          "ip.version": "6",
          "ipv6.tclass": "0x00000000",
          "ipv6.tclass_tree": {
            "ipv6.tclass.dscp": "0",
            "ipv6.tclass.ecn": "0"
          },
          "ipv6.flow": "0x00000000",
          "ipv6.plen": "32",
          "ipv6.nxt": "58",
          "ipv6.hlim": "255",
          "ipv6.src": "2001:558:4080:16::1",
          "ipv6.addr": "2001:558:4080:16::1",
          "ipv6.src_host": "2001:558:4080:16::1",
          "ipv6.host": "2001:558:4080:16::1",
          "ipv6.dst": "ff02::1:ff9e:e38e",
          "ipv6.addr": "ff02::1:ff9e:e38e",
          "ipv6.dst_host": "ff02::1:ff9e:e38e",
          "ipv6.host": "ff02::1:ff9e:e38e",
          "ipv6.geoip.src_summary": "US, ASN 7922, Comcast Cable Communications, LLC",
          "ipv6.geoip.src_summary_tree": {
            "ipv6.geoip.src_country": "United States",
            "ipv6.geoip.country": "United States",
            "ipv6.geoip.src_country_iso": "US",
            "ipv6.geoip.country_iso": "US",
            "ipv6.geoip.src_asnum": "7922",
            "ipv6.geoip.asnum": "7922",
            "ipv6.geoip.src_org": "Comcast Cable Communications, LLC",
            "ipv6.geoip.org": "Comcast Cable Communications, LLC",
            "ipv6.geoip.src_lat": "37.751",
            "ipv6.geoip.lat": "37.751",
            "ipv6.geoip.src_lon": "-97.822",
            "ipv6.geoip.lon": "-97.822"
          }
        },
        "icmpv6": {
          "icmpv6.type": "135",
          "icmpv6.code": "0",
          "icmpv6.checksum": "0x00005b84",
          "icmpv6.checksum.status": "1",
          "icmpv6.reserved": "00:00:00:00",
          "icmpv6.nd.ns.target_address": "2001:558:4080:16:be36:e4ff:fe9e:e38e",
          "icmpv6.opt": {
            "icmpv6.opt.type": "1",
            "icmpv6.opt.length": "1",
            "icmpv6.opt.linkaddr": "00:01:5c:62:8c:46",
            "icmpv6.opt.src_linkaddr": "00:01:5c:62:8c:46"
          }
        }
      }
    }
  }
]

6.7.3. Раздел «Экспортировать байты пакета»

Диалоговое окно «Экспорт выбранных байтов пакета» можно открыть, выбрав в меню ФайлЭкспортировать байты пакета. Раздел будет активен, только если байты для экспорта уже выбраны.

Диалоговое окно «Экспорт выбранных байтов пакета»

Диалоговое окно «Импорт из шестнадцатеричного дампа», вкладка «Шестнадцатеричный дамп» в Wireshark

С помощью этого диалогового окна можно экспортировать отдельные выбранные байты.

6.7.4. Раздел «Экспортировать PDU в файл»

Диалоговое окно «Экспортировать PDU в файл» можно открыть, выбрав в меню ФайлЭкспортировать PDU в файл. В настоящий момент данное диалоговое окно отображается со странным названием «Диалоговое окно».

Диалоговое окно «Экспортировать PDU в файл»

Диалоговое окно ««Экспортировать PDU в файл» в Wireshark

С помощью этого диалогового окна можно удалить часть заголовков. Например, оставить HTTP-заголовок, но исключить TLS- и TCP-заголовки.

Если необходимо отобрать какие-то отдельные пакеты, то в поле «Фильтр отображения» указывают фильтр, синтаксис которого полностью соответствует экранному фильтру. С более подробной информацией об экранных фильтрах можно ознакомиться на странице руководства по фильтрам Wireshark.

В выпадающем меню выбирают уровень, с которого необходимо экспортировать PDUs. Существует семь уровней:

  • DLT User;
  • DVB-CI (протокол цифрового видеовещания DVB);
  • Logcat и Logcat Text (для экспорта журналов Android);
  • OSI layer 3 (можно использовать для экспорта PDUs, инкапсулированных в протоколы IPSec или SCTP);
  • OSI layer 4 (можно использовать для экспорта PDUs, инкапсулированных в протоколы TCP или UDP);
  • OSI layer 7 (можно использовать для экспорта протоколов: CredSSP через * TLS, Diameter, протоколов, инкапсулированных в TLS и DTLS, H.248, Megaco, RELOAD framing, SIP, SMPP).

6.7.5. Раздел «Удалить заголовки»

Диалоговое окно «Удалить заголовки» можно открыть, выбрав в меню ФайлУдалить заголовки. В настоящий момент данное диалоговое окно отображается со странным названием «Диалоговое окно».

Диалоговое окно «Удалить заголовки»

Диалоговое окно «Удалить заголовки» в Wireshark


С помощью этого диалогового окна можно удалить заголовки, расположенные между началом пакета и ethernet- или IP-заголовком (MPLS, PPP и др). Если Wireshark уже выполнила расшифровку, то можно экспортировать уже расшифрованный пакет из протоколов типа IEEE 802.11 или IPSec, не сохраняя ключи шифрования.

Если необходимо отобрать какие-то отдельные пакеты, то в поле «Фильтр отображения» указывают фильтр, синтаксис которого полностью соответствует экранному фильтру. С более подробной информацией об экранных фильтрах можно ознакомиться на странице руководства по фильтрам Wireshark.

В выпадающем меню выбирают один из двух протоколов – Ethernet или IP. Любые заголовки, расположенные между выбранным заголовком и началом пакета, будут удалены.

6.7.6. Раздел «Экспортировать ключи сеансов TLS»

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

Протокол TLS (Transport Layer Security) используется для шифрования передаваемых данных. Например, с помощью TLS шифруются HTTP-данные в протоколе HTTPS. Для расшифровки трафика, зашифрованного с помощью TLS, требуется ключ (секрет) TLS. Получить его можно либо в виде сохраненного сессионного ключа в «файле журнала ключей», либо используя файл приватного ключа RSA. Сессионный ключ способен расшифровать только ту сессию, к которой относится. А с помощью приватного ключа RSA можно расшифровать множество различных TLS-сессий, к которым относится этот ключ. Поэтому использовать ключ RSA надо с осторожностью.

6.7.7. Раздел «Экспортировать объекты»

При выборе в главном меню ФайлЭкспортировать объекты можно выполнить сканирование потоков данных, связанных с выбранным протоколом. Сканирование возможно как во время процесса захвата, так и из открытого файла захвата. Поддерживаются протоколы DICOM, FTP-DATA, HTTP, IMF, SMB, TFTP. Например, выбрав HTTP, можно экспортировать на диск HTML-документы, изображения, исполнительные файлы и другие файлы, передаваемые через HTTP. Если захват данных активен, то список будет автоматически обновляться. Сохраненные объекты впоследствии могут быть открыты или проанализированы отдельно от Wireshark.

Назначение столбцов таблицы и кнопок не будет отдельно разбираться, т.к. оно интуитивно понятно.

6.8. Печать пакетов

Диалоговое окно «Печать» можно открыть, выбрав в меню ФайлПечать. С помощью этого окна содержимое пакетов (заголовки и полезные данные) может быть распечатано на принтере.

Большой объем печати

На печать может быть отправлен очень большой объем текста, не только заголовки пакетов, но и их содержимое.

6.8.1. Диалоговое окно «Печать»

Диалоговое окно «Печать»

Диалоговое окно «Печать» в Wireshark

Диалоговое окно «Печать» делится на четыре части:

  • предпросмотр печати,
  • формат пакета,
  • диапазон пакетов,
  • кнопки.

В блоке «Предпросмотр печати» можно увидеть, как будет выглядеть первая страница с данными, отправляемыми на печать. Эти данные могут отображаться по-разному. Все зависит от настроек, которые будут заданы в других частях диалогового окна. С помощью клавиши + можно увеличить масштаб предпросмотра, с помощью клавиши - – уменьшить его, а с помощью клавиши 0 – вернуть масштаб в исходное значение.

В блоке «Формат пакета» предоставляется возможность выбора формата отображения пакетов. С более подробной информацией об этом блоке можно ознакомиться в разделе 5.10 «Формат пакета». Помимо стандартных настроек доступны следующие::

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

В блоке «Диапазон пакетов» предоставляется возможность выбора пакетов, которые должны быть отправлены на печать. С более подробной информацией по этой теме можно ознакомиться в разделе 5.9 «Диапазон пакетов».

В блоке «Кнопки» доступны кнопки Параметры страницы, Печать, Отмена и Справка. Их функции стандартны и не требуют дополнительных пояснений.

6.9. Блок «Диапазон пакетов»

Блок «Диапазон пакетов»

Блок «Диапазон пакетов» в Wireshark

Блок «Диапазон пакетов» присутствует в диалоговых окнах «Экспорт указанных пакетов», «Экспорт результатов разбора пакетов» и «Печать». С помощью настроек, доступных в этом блоке, можно выбрать отдельные пакеты, с которыми должны выполняться действия, предусмотренные соответствующим диалоговым окном.

Блок делится на три столбца.

В первом столбце можно выбрать, какие именно пакеты должны быть отправлены на печать. Вариантов несколько:

  • Все пакеты – действие должно быть выполнено для всех пакетов, которые приведены в области списка пакетов.
  • Только выбранные пакеты – действие должно быть выполнено только для пакетов, которые были выбраны в области списка пакетов.
  • Только отмеченные пакеты – действие должно быть выполнено только для помеченных пакетов (см. раздел 6.10 «Маркировка пакетов»).
  • От первого к последнему отмеченному – действие должно быть выполнено для всех пакетов, находящихся между первым и последним помеченным пакетом.
  • Диапазон – действие должно быть выполнено только для пакетов, чьи номера попадают в указанный диапазон, который задается в находящемся рядом поле.


Также можно активировать следующие опции:

  • Удалять проигнорированные пакеты – включить/выключить удаление проигнорированных пакетов (см. раздел 6.11 «Игнорирование пакетов»).
  • Include depended upon packets – включить/выключить ?????

6.10. Блок «Формат пакета»

Блок «Формат пакета»

Блок «Формат пакета» в Wireshark

Блок «Формат пакета» присутствует в диалоговых окнах «Экспорт результатов разбора пакетов» и «Печать».

Здесь доступны следующие настройки:

  • Итоговая строка – включить/выключить отображение суммарной информации о пакете на основе данных, приведенных в главном окне.
  • Добавлять заголовки столбцов – включить/выключить отображение заголовков столбцов для отображаемой суммарной информации. Это поле активно, только если активно поле «Итоговая строка».
  • Подробная информация – включить/выключить отображение подробной информации о пакете. При активации настройки становится доступным выбор одного из следующих значений:
    • Все свернуто – заголовки отображаются в свернутом виде.
    • Согласно отображению – заголовки отображаются в виде, аналогичном тому, который используется в Wireshark на момент отправки на печать.
    • Все развернуто – заголовки отображаются в полностью развернутом виде.
  • Байты – включить/выключить отображение данных пакетов в виде шестнадцатеричного кода.
  • Включать вторичные источники данных – включить/выключить отображение данных, которые берутся не напрямую из пакета, а из некоторых вторичных источников данных. Например, это может быть информация о производителе сетевой карты.


Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.