ВЫПОЛНИТЬ!
5. В командной строке сеанса MS-DOS для очистки кэша протокола ARP вы- полните команду arp -d. В Ethereal для запуска процесса захвата нажми- те кнопку «Capture». В командной строке выполните команду ping <имя_сервера> (в качестве параметра команды можно использо- вать IP-адрес сервера). По завершении команды Ping остановите захват, нажав кнопку «Stop».
На экране монитора в программе Ethereal вы увидите несколько панелей с отображением сетевых пакетов, только что записанных в буфер. Общий вид окна приложения представлен на рис. 1.2. Пользовательский интерфейс про- граммы содержит следующие компоненты:
? меню команд и панель инструментов;
? фильтр отображения пакетов;
? список пакетов в буфере;
? панель отображения декодера протоколов;
? панель отображения пакета в шестнадцатеричном коде и символах ASCII.
Панель со списком пакетов построчно отображает характеристики того или иного пакета (номер по порядку в буфере, время захвата, адреса источни-
ка и получателя, тип протокола и общая информация о нем). Перемещение по списку осуществляется с помощью мыши или клавиатуры, причем информа- ция на двух других панелях обновляется автоматически. На панели декодера протоколов, нажимая указателем мыши на символы «+» или «–», можно ото-
бражать информацию о полях заголовков протоколов с требуемым уровнем детализации. При выборе того или иного служебного поля в заголовке оно ав- томатически выделяется на нижней панели, где отображается текущий пакет в
шестнадцатеричном виде.

Рис. 1.2. Общий вид приложения Ethereal
1.4. Фильтр отображения пакетов
С помощью фильтра отображения можно быстро убрать «мусор». Вы- ражение фильтрации может представлять собой просто название протокола, который присутствует в пакете на том или ином уровне вложенности. Напри- мер: arp — для отображения пакетов протокола ARP, tcp — для отображения пакетов, в которых присутствует заголовок протокола TCP.
ВЫПОЛНИТЬ!
6. Для отображения только ICMP-сообщений в строке ввода «Filter» (рис. 1.2)
наберите «icmp» и нажмите кнопку «Apply».
Более сложные выражения фильтрации строятся с помощью зарезерви- рованных слов, обычно представляющих собой названия полей заголовков то- го или иного протокола, знака операции сравнения и конкретного значения в шестнадцатеричном или десятичном виде. Наиболее часто используемые вы- ражения фильтрации и их значения приведены в табл. 1.1.
Выражения фильтрации и их значения
Таблица 1.1
|
Выражение Значение выражения и пример записи |
Значение выражения и пример записи |
|
frame.marked |
Маркированный кадр frame.marked == true |
|
frame.number |
Номер кадра frame.number == 150 |
|
frame.time |
Время захвата кадра frame.time == "Feb 1, 2006 09:00:00" |
|
frame.pkt_len |
Длина кадра frame.pkt_len == 48 |
|
eth.dst |
Заголовок Ethernet: MAC-адрес назначения eth.dst == 01:00:5e:00:00:02 |
|
eth.src |
Заголовок Ethernet: MAC-адрес источника eth.src == 00:a0:cc:30:c8:db |
|
eth.type |
Заголовок Ethernet: тип вложенного протокола eth.type == 0x0800 |
|
arp.hw.type |
Заголовок протокола ARP: тип протокола канального уровня arp.hw.type == 0x0001 |
|
arp.proto.type |
Заголовок протокола ARP: тип протокола сетевого уровня arp.proto.type == 0x0800 |
|
arp.opcode |
Заголовок протокола ARP: код операции arp.opcode == 0x0001 |
|
arp.src.hw_mac |
Заголовок протокола ARP: MAC-адрес источника arp.src.hw_mac == 00:10:4b:30:c4:4a |
|
arp.src.proto_ipv 4 |
Заголовок протокола ARP: IP-адрес источника arp.src.proto_ipv4 == 10.1.0.1 |
|
arp.dst.hw_mac |
Заголовок протокола ARP: MAC-адрес назначения arp.dst.hw_mac == 00:00:00:00:00:00 |
|
arp.dst.proto_ipv 4 |
Заголовок протокола ARP: IP-адрес назначения arp.dst.proto_ipv4 == 10.1.0.2 |
|
ip.version |
Заголовок протокола IP: версия протокола IP ip.version == 4 |
|
ip.hdr_len |
Заголовок протокола IP: длина заголовка ip.hdr_len == 24 |
|
ip.flags.df |
Заголовок протокола IP: флаг фрагментации ip.flags.df == 0 |
|
ip.flags.mf |
Заголовок протокола IP: флаг не последнего фрагмента ip.flags.mf == 0 |
|
Выражение |
Значение выражения и пример записи |
|
ip.frag_offset |
Заголовок протокола IP: смещение фрагмента ip.frag_offset == 0 |
|
ip.ttl |
Заголовок протокола IP: время жизни пакета ip.ttl == 1 |
|
ip.proto |
Заголовок протокола IP: протокол вышестоящего уровня ip.proto == 0x01 |
|
ip.src |
Заголовок протокола IP: IP-адрес источника ip.src == 10.0.0.99 |
|
ip.dst |
Заголовок протокола IP: IP-адрес назначения ip.dst == 224.0.0.2 |
|
ip.addr |
Заголовок протокола IP: IP-адрес ip.addr == 10.2.0.0/16 |
|
tcp.srcport |
Заголовок протокола IP: порт источника tcp.srcport == 1054 |
|
tcp.dstport |
Заголовок протокола IP: порт назначения tcp.dstport == 21 |
|
tcp.seq |
Заголовок протокола IP: последовательный номер tcp.seq == 4856133 |
|
tcp.ack |
Заголовок протокола IP: номер подтверждения tcp.ack == 4856134 |
|
tcp.flags.urg |
Заголовок протокола IP: бит присутствия срочных данных tcp.flags.urg == 0 |
|
tcp.flags.ack |
Заголовок протокола IP: бит присутствия подтверждения tcp.flags.ack == 1 |
|
tcp.flags.push |
Заголовок протокола IP: бит выталкивания данных tcp.flags.push == 0 |
|
tcp.flags.reset |
Заголовок протокола IP: бит сброса соединения tcp.flags.reset == 0 |
|
tcp.flags.syn |
Заголовок протокола IP: бит синхронизации сессии tcp.flags.syn == 1 |
|
tcp.flags.fin |
Заголовок протокола IP: бит завершения сессии tcp.flags.fin == 0 |
|
tcp.window_size |
Заголовок протокола IP: размер приемного окна tcp.window_size == 8760 |
|
udp.srcport |
Заголовок протокола UDP: порт источника udp.srcport == 2364 |
|
udp.dstport |
Заголовок протокола UDP: порт назначения udp.dstport == 53 |
|
Выражение Значение выражения и пример записи |
Значение выражения и пример записи |
|
icmp.type |
Заголовок протокола ICMP: тип сообщения icmp.type == 8 |
|
icmp.code |
Заголовок протокола ICMP: уточняющий код сообщения icmp.code == 0x00 |
В примерах записи выражений табл. 1.1 приведены выражения с опера- цией сравнения «Равно», которая записывается с помощью двойного знака ра- венства «==» (допустимо использование «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.
ВЫПОЛНИТЬ!
7. Выясните, что будет отображено в буфере захвата в случае использования фильтра, описанного с помощью выражений, приведенных в качестве вы- шеописанных примеров.
Значение любого выражения фильтрации возвращает переменную бу- левского типа. Таким образом, выражение udp означает присутствие в кадре заголовка протокола UDP, по аналогии с этим выражение tcp.flags.syn означает присутствие в заголовке протокола TCP бита синхронизации сессии в установленном состоянии (значение 1). К любому из выражений можно применить операцию логического отрицания, заключив его в скобки и поста- вив перед ним знак отрицания «NOT» или «!». Например, выражение
!(ip.addr == 10.0.0.1) означает, что из буфера отображения необхо-
димо убрать все пакеты, в которых встречается IP-адрес 10.0.0.1.
ВЫПОЛНИТЬ!
8. Объясните разницу между результатами использования выражений фильт- рации !(ip.addr == X.X.X.X) и ip.addr !== X.X.X.X. Для вы- полнения упражнения в выражениях фильтрации используйте вместо адре- са X.X.X.X реальный IP-адрес вашего узла.
В качестве выражений фильтрации можно использовать и составные выражения, которые образуются с помощью следующих логических операто- ров:
a. && (AND) — логическое И,
пример: (ip.dst==10.0.0.1) AND tcp.flags.syn;
b. || (OR) — логическое ИЛИ,
пример: (ip.addr==10.0.0.1) OR (ip.addr==10.0.0.2).
Другой удобный способ ввода выражения фильтрации состоит в сле- дующем. На панели декодера протоколов отображается требуемое поле, в контекстном меню выбирается пункт «Apply as Filter» и далее исполняется либо команда «Selected», либо «Not Selected» в зависимости от задачи фильт- рации (рис. 1.3).
ВЫПОЛНИТЬ!
9. Отобразите только ICMP-запросы (используйте поле «тип» в заголовке ICMP). Укажите результирующее выражение фильтрации с необходимыми пояснениями. После просмотра результата для отображения пакетов без фильтрации нажмите кнопку «Clear» в строке фильтра.
При необходимости создания сложного выражения фильтрации в меню
«Apply as Filter» (рис. 1.3) выбирайте команды, начинающиеся с многоточия, при этом новое выражение будет добавлено к результирующему выражению фильтрации.
10.Отобразите все кадры, переданные вашим узлом, исключая сообщения
ICMP.
Рис. 1.3. Контекстное меню создания фильтра
Строка, как видно из предыдущего примера, записывается в кавычках. Запись массива байт осуществляется побайтно в шестнадцатеричном виде с разделителем «.» или «:», например 00.45.f5.2d.
Используя символ «,» в указателе диапазона, можно перечислить не-
сколько непересекающихся диапазонов, объединив их в одном операнде. На-
пример, выражение tcp[2,10,13-16] == 00.01.c0.f8.01.66 сравни-
вает в заголовке протокола TCP поле «Тип обслуживания» с «0x00», поле
«Протокол» с «0x01» и поле «IP-адрес источника» с «0xc0f80166».
ВЫПОЛНИТЬ!
11. Отобразите ICMP-ответы, используя в выражении фильтрации операнд
«frame» с указателем диапазона.
При создании выражения фильтрации имейте в виду, что в буфере могут находиться кадры других узлов.
Укажите результирующее выражение фильтрации с необходимыми пояс- нениями. После просмотра результата для отображения пакетов без фильт- рации нажмите кнопку «Clear» в строке фильтра.
Быстро вернуться к тому или иному ранее вводимому выражению фильтрации можно с помощью списка истории ввода, доступ к которому осуществляется нажатием на кнопку с символом «?», расположенную в стро- ке фильтра (не забывайте нажимать кнопку «Apply» для применения того или иного фильтра к буферу кадров).
Источник: Андрончик А. Н., Богданов В. В., Домуховский Н. А., Коллеров А. С., Синадский Н. И., Хорьков Д. А., Щербаков М. Ю., Защита информации в компьютерных сетях. Практический курс

June 8th, 2012
admin
Опубликовано в рубрике