Цель работы состоит в том, чтобы познакомиться с ПО для анализа сетевого трафика, а также получить точную картину и вложенность сетевых протоколов в сети Ethernet -TCP/IP, а также при работе ЛВС с использованием других сетевых протоколов.
Анализатор трафика, или сниффер (от англ. to sniff - нюхать) - сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа сетевого трафика для всех узлов сети. Во время работы сниффера сетевой интерфейс переключается в режим прослушивания, что и позволяет ему получать пакеты, адресованные другим интерфейсам в сети.
Перехват трафика может осуществляться:
В начале 1990-х снифферы широко применялись хакерами для захвата пользовательских логинов и паролей, которые в ряде протоколов передаются в незашифрованном или слабо зашифрованном виде, а использование хабов позволяло захватывать трафик в больших сегментах сети практически без риска быть обнаруженным.
В наше время снифферы находят применение в сетевом администрировании. Анализ прошедшего через сниффер трафика позволяет:
Одним из простых и свободно распространяемых программных продуктов этого класса является Wireshark. Программа распространяется под свободной лицензией GNU GPL. Существуют версии для большинства типов UNIX, в том числе GNU/Linux, FreeBSD, OpenBSD, Mac OS X, а также для Windows (http://www.wireshark.org).
Анализатор 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" инициирует выбранный фильтр.
Запуск программы возможен и при установленных по умолчанию параметрах режима захвата пакетов. Однако в ряде случаев это не очень эффективно и удобно. Для изменения и выбора параметров следует в основном меню выбрать Capture -> Options (рис.2) или нажать кнопку "Options" в окне Capture Interfaces (рис.3). При этом на экране появится диалоговое окно для выбора параметров режима захвата пакетов (рис.6).
Рассмотрим некоторые наиболее часто используемые параметры:
Программа позволяет контролировать как любые пакеты, так и пакеты, только конкретного протокола, циркулирующего в сети. Например, пакеты, проходящие, по протоколу НТТР. Рассмотрим пример вычисления имени пользователя и пароля при его входе в электронную почту. Для этого выполним вход в свой почтовый ящик при работающей программе Wireshark в режиме захвата пакетов сообщений.
После этого для удобства проведем сортировку списка пакетов по протоколам, кликнув на заголовок колонки Protocol. Далее, находим пакет протокола НТТР и, нажав правую кнопку мыши, в контекстном меню выбираем Conversation filter>IP, тем самым, выбрав фильтрацию списка пакетов только данного перечня адресов отправителя и получателя (рис.7):
Для фильтрации пакетов по MAC-адресам источника и приемника выберем пакет протокола НТТР для интересующих нас узлов и, нажав правую кнопку мыши, в контекстном меню выберем Conversation filter>Ethernet. После этого в верхнем окне останутся только пакеты протокола НТТР, которыми обменивались интересующие нас узлы сети, а поле фильтра будет иметь вид, аналогичный рис.8.
Для решения поставленной в примере задачи необходимо найти пакет с обращением к почтовому ящику. Для оптимизации поиска нужного пакета, воспользуемся пунктом главного меню Edit -> Find Packet:
В появившемся диалоговом окне выбираем Find by string и указываем название строки с адресом страницы почтового ящика:
С помощью системы поиска можно проверить пакеты, соответствующие адресации, установленной при фильтрации. После того как нужный пакет будет найден в списке захваченных пакетов, в дереве протоколов можно в ветви Line-based text data найти значения полей Login, Domain, Password.
В анализаторе протоколов 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:
Ранее уже говорилось про возможность фильтрации списка захваченных пакетов. При этом фильтр формировался по образцу, когда мы выбирали тот или иной пакет и использовали соответствующую опцию меню.
Но еще более важной функцией Wireshark является возможность фильтрации пакетов в процессе их захвата. Для этих целей необходимо правильно сформировать необходимые логические выражения и использовать его в качестве фильтров.
Для записи фильтра используется последовательность простых выражений (примитивов), соединенных логическими связками and или or, перед которыми может присутствовать отрицание not:
Например, чтобы захватить трафик, адресованный к узлу с IP-адресом 192.168.12.14 или исходящий из него, используется фильтр
Если нужно захватить весь трафик, кроме трафика, адресованного узлу 192.168.12.14 или исходящего из него, используется фильтр
Следует отметить возможность построения и более сложных конструкций логических выражений при вызове окна диалога построения фильтра.
В последних версиях Wireshark для формирования фильтров используется объектная модель примитивов. Это приводит к тому, что, при ручном формировании логических выражений введя тот или иной объект примитива и нажав точку (например, ip.) появляется выпадающий список со свойствами этого примитива. Выбрав в списке нужное свойство, оно автоматически вставляется в логическое выражение фильтра. Например, примитивы ip.src или ip.dst - соответствуют IP-адресу источника и получателя пакетов, соответственно.
Просмотр и анализ сетевых кадров, содержащих пакеты стека TCP/IP.
Захват и анализ сетевых пакетов, циркулирующих в ЛВС.
Анализ сетевого трафика в ЛВС на базе протокола NWLink.
Взаимодействие ПК в ЛВС будет успешным только при соблюдении целого ряда протоколов. Однако стек TCP/IP далеко не единственный набор протоколов, который можно использовать в ЛВС. Для выполнения данного задания:
Затем с помощью программы-анализатора пакетов исследовать взаимодействие ПК в ЛВС по протоколу NWLink и познакомиться со структурой этого протокола. С этой целью:
1. Протокол выполнения работы в виде сохраненных файлов захвата пакетов с текстовым пояснением их содержания.
2. Распечатка текстовых файлов с информацией о пакетах и дереве протоколов для наиболее характерных этапов выполнения работы.
3. Список всех протоколов, которые использовались в лабораторной работе: условное обозначение, наименование, их назначение, уровень сетевого взаимодействия, структура и назначение основных полей.
4. Протокол процедуры захвата пакетов при обращение с домашнего ПК к наиболее популярным ресурсам Интернет.