Wireshark фильтр по адресу

Wireshark – это одна из наиболее известных и лучших в мире программа-анализатор (сниффер) для захвата и декодирования сетевого трафика. Она предоставляет возможность декодировать более 500 различных протоколов сетей передачи данных и телекоммуникационных протоколов, включая протоколы сотовой связи. Она является де-факто (и часто де-юре) стандартом во многих отраслях промышленности и образовательных учреждениях во всем мире. Многие производители коммерческих продуктов используют его в своих решениях как декодировщик.

Любой анализатор протоколов должен иметь возможность не только захватить трафик, но и помочь эффективно его проанализировать. В сетях передачи данных на скоростях 1 Гбит/сек и выше буфер захвата трафика заполняется мгновенно и на выходе получается достаточно большой массив данных. Для анализа, этот массив данных можно отфильтровать по разным параметрам, что в Wireshark реализовано следующим функционалом:

  • Цветовая кодировка ошибочных пакетов — можно настроить под себя. Пакеты, которые несут в себе ошибку, будут выделены в буфере специальным цветом.
  • Фильтр через строку фильтрации. Вы имеете большой опыт в работе с Wireshark и протоколами и можете ввести фильтр самостоятельно. Большой выбор фильтров можно найти здесь.
  • Выделение любой области в пакете, правый клик мыши и «Применить как фильтр».

Wireshark — фильтрация по протоколу

Достаточно в строке фильтра ввести название протокола и нажать ввод. На экране останутся пакеты, которые относятся к искомому протоколу. Таким образом, фильтр выглядит:

Результат применения фильтра:

Если буфер захвата необходимо отфильтровать по нескольким протоколам, то необходимо перечислить все желаемые протоколы и разделить их знаком ||. Например:

Результат применения фильтра:

Wireshark — фильтрация по IP адресу и MAC адресу

В зависимости от направления трафика фильтр будет немного отличаться. Например, мы хотим отфильтровать по IP адресу отправителя 10.0.10.163:

Результат применения фильтра:

По получателю фильтр будет выглядеть ip.dst == x.x.x.x, а если хотим увидеть пакеты в независимости от направления трафика, то достаточно ввести:

В случае если нам необходимо исключить какой то адрес из поля отбора, то необходимо добавить != . Пример:

Результат применения фильтра:

Если мы анализируем трафик внутри локальной сети и знаем MAC адрес пользователя, то можно указать в качестве фильтра Wireshark его MAC адрес, например:

Wireshark — фильтрация по номеру порта

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

Так же как и с адресами IP и MAС мы можем отдельно фильтровать по портам получения или отправления tcp.srcport и tcp.dstport. Кроме указания номеров портов Wireshark дает отличную возможность отфильтровать буфер по флагам в TCP протоколе. Например, если мы хотим увидеть TCP пакеты с флагом SYN (установление соединения между устройствами), то вводим в строке поиска:

Результат применения фильтра:

Популярные фильтры

В таблице ниже приведены наиболее популярные фильтры для отображения содержимого буфера захвата:

Любой анализатор протоколов должен иметь возможность не только захватить трафик, но и помочь эффективно его проанализировать. Основное отличие коммерческого анализатора протоколов от бесплатного – наличие встроенной экспертной системы, которая позволит быстро разобрать буфер по сервисам или типам ошибок. Что позволит существенно ускорить время локализации проблемы и работать с уже отсортированной и предварительно оцененной для вас информацией. Тут можно обратить внимание на решения от VIAVI Solutions под названием Observer или на ClearSight Analyzer от компании Netscout.

В случае если не выделяют бюджет, а проблемы есть, то остается запастись терпением и кофе и установить себе Wireshark. В сетях передачи данный на скоростях 1 Гбит/сек и выше буфер захвата трафика заполняется мгновенно и на выходе получается достаточно большой массив данных. Этот массив данных, понимая взаимодействие между различными устройствами в сети можно отфильтровать по разным параметрам. Для этого Wireshark имеет несколько возможностей:

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

Фильтр через строку фильтрации. Вы имеете большой опыт в работе с Wireshark и протоколами и можете ввести фильтр самостоятельно. Большой выбор фильтров можно найти здесь.

Выделение любой области в пакете, правый клик мыши и «Применить как фильтр». Метод для начинающих: очень удобно, так как не надо ломать голову.

Какие основные фильтры существуют для отображения трафика?

Wireshark фильтр по протоколу

Достаточно в строке фильтра ввести название протокола и нажать ввод. На экране останутся пакеты, которые относятся к искомому протоколу. Таким образом, фильтр выглядит:

Если буфер захвата необходимо отфильтровать по нескольким протоколам, то необходимо перечислить все желаемые протоколы и разделить их знаком ||. Например:

arp || http || icmp

Wireshark фильтр по IP адресу и фильтр по MAC

В зависимости от направления трафика фильтр будет немного отличаться. Например, мы хотим отфильтровать по IP адресу отправителя 50.116.24.50:

По получателю фильтр будет выглядеть ip.dst == x.x.x.x, а если хотим увидеть пакеты в независимости от направления трафика, то достаточно ввести:

В случае если нам необходимо исключить какой то адрес из поля отбора, то необходимо добавить != . Пример:

Если мы анализируем трафик внутри локальной сети и знаем MAC адрес пользователя, то можно указать в качестве фильтра Wireshark его MAC адрес, например:

Wireshark фильтр по номеру порта

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

Так же как и с адресами IP и MAС мы можем отдельно фильтровать по портам получения или отправления tcp.srcport и tcp.dstport. Кроме указания номеров портов Wireshark дает отличную возможность отфильтровать буфер по флагам в TCP протоколе. Например, если мы хотим увидеть TCP пакеты с флагом SYN (установление соединения между устройствами), то вводим в строке поиска:

Популярные фильтры

В таблице ниже приведены наиболее популярные фильтры для отображения содержимого буфера захвата:

Пожалуй начну серию статей по Wireshark с настройки фильтров. Их у Wireshark целых 2 типа: capture и display — для захвата уже конкретных сетевых пакетов и для отображения определенных пакетов из захваченной разнородной массы пакетов соответственно.

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

Плюсы: Экономия места на диске, если приходится сохранять большой сетевой дамп.

Минусы: Нагружает процессор. Используется только для живого сниффинга трафика.

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

Плюсы: Можно фильтровать онлайн трафик и оффлайн файлы.

Минусы: При онлайн захвате на компьютере сохраняется большое количество ненужных пакетов.

Итак приступим к настройке фильтров захвата.

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

Перед нами откроется окно с уже установленными фильтрами

Добавим новый фильтр. В качестве фильтрующего выражения используется фильтры Беркли. Когда вы вводите выражение фильтра следите за тем, чтобы строка стала зеленой. Это говорит о том, что выражение правильное. Например, мы хотим фильтровать пакеты с адресом 2.252.255.95, отправленные на порт 53. Фильтр будет выглядеть так : host 2.252.255.95 and dst port 53. Ниже я приведу краткое объяснение выражениям Беркли и опишу как их использовать

Итак, фильтр мы создали. Теперь применим его.

Выбираем Capture → Options

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

Если фильтр написан правильно, то строка фильтра “позеленеет”.

В любом случае рекомендуется проверить правильность фильтра кнопкой Compile BPFs. Если все правильно то появится примерно такое окно

Если есть ошибка, то программа сообщит об этом.

Нажимаем на кнопку Start и “ловим” трафик. Если все сделано правильно, то в левом верхнем углу появится выбранный фильтр

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

host — IP адрес получателя или отправителя

portrange — диапазон портов

and или && — конъюнкция (должны соблюдаться все условия)

or или || — дизъюнкция (должно выполняться хотя бы условие)

not или ! — негация

Попробуем составить выражения, используя данные атрибуты.

host 192.168.1.1 — здесь фильтруются пакеты с адресом получателя или отправителя 192.168.1.1.

src mail.ru — здесь указывается, что мы хотим видеть пакеты, отправителем которых является mail.ru.

port 53 — TCP/UDP пакеты с портом 53.

src port 53 — TCP/UDP пакеты, отправитель которых использует порт 53.

src mail.ru and dst 192.168.1.1 — фильтруются пакеты, отправленные mail.ru на хост с адресом 192.168.1.1. Это более сложная конструкция, состоящая из 2-х простых выражений и объединенная инструкцией and (&&). Она означает, что должны соблюдаться оба условия.

tcp and port 80 — фильтруется только TCP трафик, отправленный или направленный на порт 80. proto (protocol) означает протокол.

(tcp or udp) and dst port 53 — TCP или UDP пакеты, отправленные на порт 53. Здесь использовалась конструкция or (||), которая означает, что должно соблюдаться хотя бы одно условие. Выражение tcp or udp я специально заключил в скобки, чтобы условие dst port 53 относилось к пакетам UDP и TCP.

tcp or udp dst port 53 — в данном выражении мы фильтруем любые TCP пакеты отправленные или полученные на любом порту либо UDP пакеты, отправленные только на порт 53.

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

Теперь представим, что мы хотим фильтровать трафик по следующим параметрам:

адрес отправителя — 165.72.12.88

адрес получателя — 2.252.255.95

Для этого кликаем на кнопку Expression и перед нами откроется окно с фильтрами. Справа от фильтра даются очень краткие описания

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

Нажимаем на OK и выражение добавляется в строку фильтра

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

Теперь нам нужно, чтобы в выражении присутствовал сам протокол DNS без каких-либо параметров. Для этого просто выбираем протокол в списке и в качестве инструкции используем “is present”. Нажимаем на OK.

Наш фильтр готов. Осталось нажать Enter или кнопку Apply в строке фильтра.

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

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

Выбираем любой пакет протокола DNS и раскрываем параметры протоколов. Для начала раскроем уровень IP и выделим адрес отправителя

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

При желании можно ввести вручную данное выражение либо открыть контекстное меню и выбрать Apply as filter → Selected

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

То же самое проделываем и для адреса получателя, однако для объединения с первым выражением выбираем Apply as Filter → . and Selected. Программа автоматически добавит конъюнкцию.

DNS можно добавить вручную либо воспользоваться вышеприведенным методом. Для этого достаточно выбрать только сам протокол (то есть не надо его раскрывать). В итоге получим вот такое выражение

Хочу отметить, что опция Apply as Filter сразу применяет выбранный фильтр, то есть не нужно потом нажимать на Enter. Если вы хотите сначала построить фильтр, возможно отредактировать, то используйте опцию Prepare as Filter. После нее необходимо нажать на Enter.

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

Конечно же, можно. Существуют 2 способа.

У нас уже составлен фильтр, сохраним его. Для этого нажимаем на голубой маркер в строке фильтра и выбираем Save filter

Перед нами открывается уже знакомое окно. Меняем название и сохраняем

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


Чтобы снова открыть менеджер фильтров отображения достаточно кликнуть на известный нам маркер и выбрать Manage Display Filter либо в верхнем меню программы выбрать опцию Analyze → Display filters.

Снова кликаем на маркер и выбираем опцию Manage filter expressions. Откроется такое окно

Его можно открыть и другим способом

Затем добавляем новое выражение, указываем название или просто букву (лучше использовать очень короткие названия) и записываем выражение фильтра

Сохраняем и справа от строки фильтра появляется наше буквенное обозначение фильтра

Если нажать на него, то программа сразу применит выбранный фильтр.

Я описал несколько способов работы с фильтрами. Надеюсь данная информация будет для вас полезной и работа с Wireshark станет более приятной.

Оцените статью
Ремонт оргтехники
Добавить комментарий