Лабораторная работа №2. Анализ сетевого трафика и вложенности протоколов с использованием сниффера Wireshark."
  1.  Цель лабораторной работы
  2.  Общие сведения об анализаторах трафика
  3.  Анализатор трафика Wireshark
  4.  Настройка параметров процедуры захвата
  5.  Возможности программы Wireshark
  6.  Сервисные возможности программы Wireshark
  7.  Фильтрация пакетов в процессе захвата
  8.  Задание на лабораторную работу
(начало)
1. Цель лабораторной работы

Цель работы состоит в том, чтобы познакомиться с ПО для анализа сетевого трафика, а также получить точную картину и вложенность сетевых протоколов в сети Ethernet -TCP/IP, а также при работе ЛВС с использованием других сетевых протоколов.

(начало)
2. Общие сведения об анализаторах трафика

Анализатор трафика, или сниффер (от англ. to sniff - нюхать) - сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа сетевого трафика для всех узлов сети. Во время работы сниффера сетевой интерфейс переключается в режим прослушивания, что и позволяет ему получать пакеты, адресованные другим интерфейсам в сети.

Перехват трафика может осуществляться:

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

В наше время снифферы находят применение в сетевом администрировании. Анализ прошедшего через сниффер трафика позволяет:

Одним из простых и свободно распространяемых программных продуктов этого класса является Wireshark. Программа распространяется под свободной лицензией GNU GPL. Существуют версии для большинства типов UNIX, в том числе GNU/Linux, FreeBSD, OpenBSD, Mac OS X, а также для Windows (http://www.wireshark.org).

(начало)
3. Анализатор трафика Wireshark

Анализатор Wireshark (ранее - Ethereal) - это программа-анализатор трафика для компьютерных сетей Ethernet и некоторых других. В июне 2006 года проект Ethereal был переименован в Wireshark из-за проблем с торговой маркой. Программа позволяет пользователю просматривать весь проходящий по сети трафик в режиме реального времени, переводя сетевую карту в неразборчивый режим (англ. promiscuous mode).

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

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

Для активизации режима перехвата сетевых пакетов, надо выбрать пункт главного меню Capture -> Interfaces или нажать на панели инструментов кнопку "List the available capture interfaces" (рис.2.)

После этого на экране дисплея появится диалоговое окно (рис.3):

С помощью кнопки "Options" возможна установка нужных пользователю параметров работы программы. Для запуска процедуры захвата, надо нажать кнопку "Start", после чего интерфейс программы будет иметь вид (рис.4.):

Основное окно Wireshark содержит три окна просмотра с различными уровнями детализации:

В верхнем окне по умолчанию 6 колонок: номера пакета в списке, временная метка, адреса и номера портов отправителя и получателя, тип протокола и краткое описание пакета. Выбрав в списке верхнего окна пакет, его содержимое можно просмотреть в среднем окне (рис.5.).

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

Если в среднем окне кликнуть мышкой на пиктограмме со знаком плюс у заголовка какого-либо протокола, то можно просмотреть состав и содержимое этого протокола. При этом выбранная область протокола выделяется подсветкой в дампе пакета нижнего окна.

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

Кнопка "Filter" позволяет инициировать диалог построения фильтра. Справа от этой кнопки - поле для ввода и редактирования фильтра. Оно служит для отображения текущего фильтра и просмотра в режиме прокрутки списка ранее использованных фильтров. Кнопка "Clear" очищает окно ввода фильтра, а кнопка "Apply" инициирует выбранный фильтр.

(начало)
4. Настройка параметров процедуры захвата

Запуск программы возможен и при установленных по умолчанию параметрах режима захвата пакетов. Однако в ряде случаев это не очень эффективно и удобно. Для изменения и выбора параметров следует в основном меню выбрать Capture -> Options (рис.2) или нажать кнопку "Options" в окне Capture Interfaces (рис.3). При этом на экране появится диалоговое окно для выбора параметров режима захвата пакетов (рис.6).

Рассмотрим некоторые наиболее часто используемые параметры:

(начало)
5. Возможности программы Wireshark.

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

После этого для удобства проведем сортировку списка пакетов по протоколам, кликнув на заголовок колонки Protocol. Далее, находим пакет протокола НТТР и, нажав правую кнопку мыши, в контекстном меню выбираем Conversation filter>IP, тем самым, выбрав фильтрацию списка пакетов только данного перечня адресов отправителя и получателя (рис.7):

Для фильтрации пакетов по MAC-адресам источника и приемника выберем пакет протокола НТТР для интересующих нас узлов и, нажав правую кнопку мыши, в контекстном меню выберем Conversation filter>Ethernet. После этого в верхнем окне останутся только пакеты протокола НТТР, которыми обменивались интересующие нас узлы сети, а поле фильтра будет иметь вид, аналогичный рис.8.

Для решения поставленной в примере задачи необходимо найти пакет с обращением к почтовому ящику. Для оптимизации поиска нужного пакета, воспользуемся пунктом главного меню Edit -> Find Packet:

В появившемся диалоговом окне выбираем Find by string и указываем название строки с адресом страницы почтового ящика:

С помощью системы поиска можно проверить пакеты, соответствующие адресации, установленной при фильтрации. После того как нужный пакет будет найден в списке захваченных пакетов, в дереве протоколов можно в ветви Line-based text data найти значения полей Login, Domain, Password.

(начало)
6. Сервисные возможности программы Wireshark

В анализаторе протоколов Wireshark предусмотрена возможность маркировки пакета при помощи установки курсора на нужный пакет и выбора в контекстном меню после нажатия правой кнопки мыши Mark Packet. Далее возможен быстрый поиск маркированного пакета при помощи главного меню Edit -> Find Next Mark.

Практически важной представляется предусмотренная в программе возможность экспорта суммарной информации о пакетах и дереве протоколов в файл формата *.txt при помощи главного меню File -> Export -> File. Пример сохраненного текстового файла, приведен на рис.11.

Кроме этого, Wireshark предоставляет возможность пользователю сохранять файлы данных (изображения, CSS и др.) на жесткий диск из просмотренных ранее страниц в Интернете. Для этого необходимо в главном меню программы выбрать File -> Export -> Objects -> HTTP.

В появившемся объектов списке НТТР (object list) выбираем необходимый файл и нажимаем кнопку Save As. Далее программа предложит выбрать путь для сохранения файла на диск.

Программа обладает большим набором вывода статистических данных о захваченных пакетах сообщений. Так, можно вывести общую таблицу иерархии протоколов при помощи пункта главного меню Statistics -> Protocol Hierarchy:

Для наглядного представления результатов выполнения захвата пакетов и сборки кадров в программе имеется возможность отображения данной информации в виде графика передачи пакетов в единицу времени. Для отображения данного графика необходимо воспользоваться пунктом главного меню Statistics ->IO Graphs:

(начало)
7. Фильтрация пакетов в процессе захвата.

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

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

Для записи фильтра используется последовательность простых выражений (примитивов), соединенных логическими связками and или or, перед которыми может присутствовать отрицание not:

[not] <примитив> [and | or [not] <примитив> ...]

Например, чтобы захватить трафик, адресованный к узлу с IP-адресом 192.168.12.14 или исходящий из него, используется фильтр

tcp port 23 and host 192.168.12.14

Если нужно захватить весь трафик, кроме трафика, адресованного узлу 192.168.12.14 или исходящего из него, используется фильтр

tcp port 23 and not host 192.168.12.14

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

В последних версиях Wireshark для формирования фильтров используется объектная модель примитивов. Это приводит к тому, что, при ручном формировании логических выражений введя тот или иной объект примитива и нажав точку (например, ip.) появляется выпадающий список со свойствами этого примитива. Выбрав в списке нужное свойство, оно автоматически вставляется в логическое выражение фильтра. Например, примитивы ip.src или ip.dst - соответствуют IP-адресу источника и получателя пакетов, соответственно.

(начало)
8. Задание на лабораторную работу
Задание 1

Просмотр и анализ сетевых кадров, содержащих пакеты стека TCP/IP.

  1. Запустите программу Wireshark, затем, используя File -> Open найдите и загрузите с диска файл ToMS, который содержит первые 50 кадров, захваченных и сохраненных при обращении к сайту www.microsoft.com с помощью Internet Explorer.
  2. В основном окне программы Wireshark (рис 15) обратите внимание на три области: Рис. 15. Окно программы Wireshark с открытым файлом захвата.
  3. Щелкните мышью на значке "+" рядом с надписью Frame 1 в средней части окна, чтобы раскрыть подробную информацию о кадре номер 1. Обратите внимание, что в данном кадре содержатся пакеты протоколов Ethernet, IP, UDP и DNS (это видно в поле Protocols in frame).
  4. Закройте раздел Frame 1 и откройте раздел Ethernet II. Здесь в заголовке Ethernet содержится информация о MAC-адресах источника и получателя, а также о типе вложенного протокола (в данном случае - протокола IP).
  5. Закройте раздел Ethernet II и откройте раздел Internet Protocol. Обратите внимание на такие важнейшие данные в IP-заголовке, как IP адреса источника и получателя.
  6. Закройте раздел Internet Protocol и откройте раздел User Datagram Protocol. Отметьте содержащуюся здесь информацию о номерах портов, использованных протоколом UDP при обмене информацией между компьютерами.
  7. Закройте раздел User Datagram Protocol и откройте раздел Domain Name System (query). Обратите особое внимание на подраздел Queries (Запросы), где содержится имя веб-узла, которое нужно преобразовать в IP-адрес.
  8. Проанализируйте аналогичным способом второй кадр.
  9. Ответьте на вопрос: "Какой IP-адрес имеет DNS-сервер, и какой ответ был возвращен DNS-сервером на запрос DNS-клиента, что он обозначает и как используется?"
  10. Просмотрите содержимое пакетов 3-6 и ответьте на вопрос: "Как вы думаете, каково их назначение?"

Задание 2

Захват и анализ сетевых пакетов, циркулирующих в ЛВС.

  1. Произвести захват и анализ пакетов, передающихся через сеть при авторизации компьютера в сети Microsoft Windows.
  2. Произвести эхо запрос (ping) конкретного ПК и зафиксировать трафик, возникающий при этом в сети. Провести его анализ.
  3. Скопировать с удаленного ПК (сервера) на свой ПК файл. Зафиксировать, используя фильтрацию сетевой трафик только этого обмена и проанализировать затем трафик сети, захваченный в это время.
  4. Обратиться к какому-либо узлу Интернет при помощи браузера. Зафиксировать трафик в сети и проанализировать его.

Задание 3

Анализ сетевого трафика в ЛВС на базе протокола NWLink.

Взаимодействие ПК в ЛВС будет успешным только при соблюдении целого ряда протоколов. Однако стек TCP/IP далеко не единственный набор протоколов, который можно использовать в ЛВС. Для выполнения данного задания:

Затем с помощью программы-анализатора пакетов исследовать взаимодействие ПК в ЛВС по протоколу NWLink и познакомиться со структурой этого протокола. С этой целью:

  1. Запустите Wireshark и установите режим захвата пакетов.
  2. В командной строке Windows нажмите Пуск -> Выполнить. В поле "Открыть" окна "Запуск программы" введите строку
    \\WorkStation_X
    где WorkStation_X - имя какого-либо ПК в ЛВС. Щелкните мышью на кнопке ОК.
  3. Когда появится окно со списком общих ресурсов компьютера WorkStation_X , закройте это окно и остановите режим захвата пакетов в Wireshark. В окне программы должен отобразиться список захваченных кадров, подобный приведенному на рис. 16.
  4. Установите, если это нужно, фильтр по MAC-адресам Вашего ПК и WorkStation_X.
  5. Щелкните в среднем окне мышью на значке "+" рядом с надписью Frame, чтобы увидеть подробную информацию о кадре. Проанализируйте поле Protocols in frame. Обратите внимание, что, в отличие от кадров, которые вы просматривали в задании 1, здесь содержатся пакеты совсем других протоколов.
  6. Ответьте на вопрос: "Какие из протоколов, указанных в поле Protocols in frame, вам знакомы и каково их назначение?".
  7. Закройте щелчком мыши на значке "-" раздел Frame и откройте раздел IEEE 802.3Ethernet. Обратите внимание, что в заголовке Ethernet, как и в пакетах TCP/IP, содержится информация о MAC-адресах источника и получателя, однако вместо данных о типе протокола приведена длина вложенного пакета.
  8. Закройте раздел IEEE 802.3Ethernet и откройте раздел Logical Link Control. Отметьте, что в пакетах протокола TCP/IP поля уровня Управления логической связью (LLC) просто отсутствовали.
  9. Просмотрите в кадре содержимое пакетов протоколов IPX и NetBIOS поверх IPX, чтобы еще раз убедиться в том, что кадры протоколов TCP/IP и NWLink существенно отличаются друг от друга.
  10. Закройте программу Wireshark.
  11. Удалите из сетевой конфигурации протокол NWLink, включите протокол TCP/IP.
  12. Проверьте сетевое взаимодействие Вашего ПК со всеми остальными ПК в ЛВС лаборатории.

Содержание отчета по лабораторной работе

1. Протокол выполнения работы в виде сохраненных файлов захвата пакетов с текстовым пояснением их содержания.

2. Распечатка текстовых файлов с информацией о пакетах и дереве протоколов для наиболее характерных этапов выполнения работы.

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

4. Протокол процедуры захвата пакетов при обращение с домашнего ПК к наиболее популярным ресурсам Интернет.