1. Запустите программу Wireshark.
2. Выполните команду меню Capture -> Options. В открывшемся диалоговом окне устанавливаются следующие параметры захвата кадров (рис. 10).
3. Уберите маркер напротив опции «Capture packets in promiscuous mode» для захвата только «своих» кадров (кадры с широковещательным адресом также будут захватываться). В таком режиме работы число захваченных пакетов будет существенно меньше, что облегчит выполнение заданий.
4. Очистите кэш протокола ARP.
Для этого выполните команду: Пуск → Выполнить. В окне введите команду cmd и нажмите ОК. Далее в командной строке наберите arp – d и нажмитеEnter.
В Wireshark для запуска процесса захвата нажмите кнопку «Start».
В командной строке выполните команду ping ya.ru (в качестве параметра команды можно использовать IP-адрес сервера). По завершении команды ping остановите захват, нажав кнопку «Stop».
Рисунок 10 - Диалоговое окно настройки захвата кадров.
5. Для отображения только ICMP-сообщений в строке ввода
«Filter» наберите «icmp» и нажмите кнопку «Apply».
6. Отобразите все кадры, переданные вашим узлом, исключая сообщения ICMP.
При создании выражения фильтрации имейте в виду, что в буфере могут находиться кадры других узлов.
Укажите результирующее выражение фильтрации с необходимыми пояснениями. После просмотра результата для отображения пакетов без фильтрации нажмите кнопку «Clear» в строке фильтра.
7. Пометьте первый и последний пакеты, относящиеся к функционированию команды Ping.
В списке буфера ключевые или наиболее важные для дальнейшего анализа пакеты можно помечать с помощью команды Edit → Mark Packet (toggle) основного меню или команды Mark Packet (toggle) контекстного меню. Также можно отметить все отображаемые пакеты c помощью команды Edit → Toggle Marking Off All Displayed Packets.
Эта возможность полезна при дальнейшем поиске таких пакетов в большом буфере, так как они выделяются другим цветом, а также при сохранении, экспортировании и печати пакетов.
Информация о маркированных пакетах нигде не сохраняется, поэтому все маркеры будут потеряны при выгрузке файла данных.
8. Сохраните в файле с именем «ping» только трафик команды Ping.
Сохранение данных в файле производится из меню File → Save или File → Save As.
Обратите внимание, что сохранить можно:
- все пакеты (All packets);
- только отображаемые (Displayed);
- выбранный пакет (Selected packet only);
- ранее маркированные с помощью основного или контекстного меню (Marked packet only и From first to last marked packet);
- указанный диапазон пакетов (Specify a packet range).
9. Выберите указателем мыши в списке пакетов первый ICMP-запрос и сохраните в файле «1.txt» информацию о нем с максимально возможной детализацией всех заголовков в декодере протоколов.
10. Сохраните все захваченные пакеты в файле lab1.pcap.
11. Отобразите первый и второй пакеты трафика команды Ping в отдельных окнах, сделайте скриншоты, и приведите обоснованные доводы, доказывающие их взаимосвязь.
При составлении отчетов с использованием «скриншотов», а иногда и при анализе данных для просмотра двух пакетов одновременно удобно использовать возможность отображения пакета в отдельном окне.
Это реализуется с помощью команды «Show Packet in New Window» контекстного или основного меню программы «View».
Приложение.
Окно настройки параметров захвата представлен на рис. 10
− Interface — сетевой адаптер.
- Buffer size — размер буфера захвата (по умолчанию 1 Мб).
− Capture packets in promiscuous mode — использование режима беспорядочного захвата.
− Limit each packet to — запись только нескольких первых байт
(определяется установленным значением параметра) каждого кадра.
− Capture Filter — фильтр захвата.
− Capture File(s) — файл захвата.
− Stop Capture — условия автоматического завершения захвата.
− Display Options — отображение пакетов в реальном времени и автоматический скроллинг окна информации.
− Name Resolution — разрешение имен на физическом, сетевом и транспортном уровнях.
Общий вид окна приложения представлен на рисунке 3.2. Пользовательский интерфейс программы содержит следующие
компоненты:
− меню команд и панель инструментов;
− фильтр отображения пакетов;
− список пакетов в буфере;
− панель отображения декодера протоколов;
− панель отображения пакета в шестнадцатеричном коде и символах ASCII.
Панель со списком пакетов построчно отображает характеристики того или иного пакета (номер по порядку в буфере, время захвата, адреса источника и получателя, тип протокола и общая информация о нем). Перемещение по списку осуществляется с помощью мыши или клавиатуры, причем информация на двух других панелях обновляется автоматически. На панели декодера протоколов, нажимая указателем мыши на символы «+» или «–», можно отображать информацию о полях заголовков протоколов с требуемым уровнем детализации. При выборе того или иного служебного поля в заголовке оно автоматически выделяется на нижней панели, где отображается текущий пакет в шестнадцатеричном виде.
С помощью фильтра отображения можно быстро убрать «мусор». Выражение фильтрации может представлять собой просто название протокола, который присутствует в пакете на том или ином уровне вложенности. Например: arp — для отображения пакетов протокола ARP, tcp — для отображения пакетов, в которых присутствует заголовок протокола TCP.
Более сложные выражения фильтрации строятся с помощью зарезервированных слов, обычно представляющих собой названия полей заголовков того или иного протокола, знака операции сравнения и конкретного значения в шестнадцатеричном или десятичном виде.
Например, выражение с операцией сравнения «Равно» записывается с помощью двойного знака равенства «==» (допустимо использование «eq»). Другие операции сравнения записываются с
помощью следующих операторов:
a.!= (ne)— не равно,
пример: eth.type!= 0x0800;
b. > (gt)— больше,
пример: tcp.srcport > 1023;
c. < (lt)— меньше,
пример: frame.pkt_len lt 60;
d. >= (ge)— больше или равно,
пример: frame.pkt_len ge 60;
e. <= (le)— меньше или равно,
пример: tcp.dstport <=1023.
Значение любого выражения фильтрации возвращает переменную булевского типа. Таким образом, выражение udp означает присутствие в кадре заголовка протокола UDP, по аналогии с этим выражение tcp.flags.syn означает присутствие в заголовке протокола TCP бита синхронизации сессии в установленном состоянии (значение 1). К любому из выражений можно применить операцию логического отрицания, заключив его в скобки и поставив перед ним знак отрицания «NOT» или «!». Например, выражение!(ip.addr == 10.0.0.1) означает, что из буфера отображения необходимо убрать все пакеты, в которых встречается IP-адрес 10.0.0.1.
При необходимости создания сложного выражения фильтрации в меню «Apply as Filter» (рис.11) выбирайте команды, начинающиеся с многоточия, при этом новое выражение будет добавлено к результирующему выражению фильтрации.
Рисунок 11 - Контекстное меню создания фильтра
Поиск кадров в буфере, удовлетворяющих тем или иным критериям, осуществляется с помощью команды меню Edit→FindPacket. Диалоговое окно определения критериев поиска пакетовизображено на рис.12.
Рисунок 12 - Диалоговое окно поиска кадров
Критерии поиска можно определять в виде выражения фильтрации (Display filter), шаблона в шестнадцатеричном виде (Hex value) и текстовой строки (String) в кодировке ASCII и (или) Unicode. В первом случае можно использовать все допустимые выражения фильтрации и их логические комбинации. Во втором случае указывается шаблон для поиска в шестнадцатеричном коде. Поиск в строке может осуществляться в области общей информации о пакете (Packet list), в панели декодера протоколов (Packet details) и непосредственно в самом пакете (Packet bytes). Поиск может производиться вверх или вниз по списку пакетов (Direction).