ПК и здоровье

Wireshark: Анализ трафикa в Linux и Windows. Фильтры Wireshark: отделяем зёрна от плевел Wireshark сохранить отфильтрованные пакеты

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

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

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

  • Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
  • Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
  • Пакеты можно отсеивать по множеству параметров с помощью фильтров;
  • Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
  • Поддержка захвата трафика VoIP-звонков;
  • Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
  • Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
  • Отображение статистики нагрузки на сеть;
  • Просмотр содержимого пакетов для всех сетевых уровней;
  • Отображение времени отправки и получения пакетов.

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

Как пользоваться Wireshark

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

sudo apt install wireshark

После установки вы сможете найти программу в главном меню дистрибутива. Запускать Wireshark нужно с правами суперпользователя, потому что иначе она не сможет анализировать сетевые пакеты. Это можно сделать из главного меню или через терминал с помощью команды для KDE:

А для Gnome / Unity:

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

Анализ сетевого трафика

Для начала анализа выберите сетевой интерфейс, например eth0, и нажмите кнопку Start.

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

  • Верхняя часть - это меню и панели с различными кнопками;
  • Список пакетов - дальше отображается поток сетевых пакетов, которые вы будете анализировать;
  • Содержимое пакета - чуть ниже расположено содержимое выбранного пакета, оно разбито по категориям в зависимости от транспортного уровня;
  • Реальное представление - в самом низу отображается содержимое пакета в реальном виде, а также в виде HEX.

Вы можете кликнуть по любому пакету, чтобы проанализировать его содержимое:

Здесь мы видим пакет запроса к DNS, чтобы получить IP-адрес сайта, в самом запросе отправляется домен, а в пакете ответа мы получаем наш вопрос, а также ответ.

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

Фильтры Wireshark

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

  • ip.dst - целевой IP-адрес;
  • ip.src - IP-адрес отправителя;
  • ip.addr - IP отправителя или получателя;
  • ip.proto - протокол;
  • tcp.dstport - порт назначения;
  • tcp.srcport - порт отправителя;
  • ip.ttl - фильтр по ttl, определяет сетевое расстояние;
  • http.request_uri - запрашиваемый адрес сайта.

Для указания отношения между полем и значением в фильтре можно использовать такие операторы:

  • == - равно;
  • != - не равно;
  • < - меньше;
  • > - больше;
  • <= - меньше или равно;
  • >= - больше или равно;
  • matches - регулярное выражение;
  • contains - содержит.

Для объединения нескольких выражений можно применять:

  • && - оба выражения должны быть верными для пакета;
  • || - может быть верным одно из выражений.

Теперь рассмотрим подробнее на примерах несколько фильтров и попытаемся понять все знаки отношений.

Сначала отфильтруем все пакеты, отправленные на 194.67.215.. Наберите строку в поле фильтра и нажмите Apply . Для удобства фильтры Wireshark можно сохранять с помощью кнопки Save :

ip.dst == 194.67.215.125

А чтобы получить не только отправленные пакеты, но и полученные в ответ от этого узла, можно объединить два условия:

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

Также мы можем отобрать переданные большие файлы:

http.content_length > 5000

Отфильтровав Content-Type, мы можем выбрать все картинки, которые были загружены; выполним анализ трафика Wireshark, пакеты, которого содержат слово image:

http.content_type contains image

Чтобы очистить фильтр, вы можете нажать кнопку Clear . Бывает, вы не всегда знаете всю необходимую для фильтрации информацию, а просто хотите изучить сеть. Вы можете добавить любое поле пакета в качестве колонки и посмотреть его содержимое в общем окне для каждого пакета.

Например, я хочу вывести в виде колонки ttl (время жизни) пакета. Для этого откройте информацию о пакете, найдите это поле в разделе IP. Затем вызовите контекстное меню и выберите опцию Apply As Column :

Таким же образом можно создать фильтр на основе любого нужного поля. Выберите его и вызовите контекстное меню, затем нажмите Apply as filter или Prepare as filter , затем выбираем Selected, чтобы вывести только выбранные значения, или Not selected , чтобы их убрать:

Указанное поле и его значение будет применено или во втором случае подставлено в поле фильтра:

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

Еще одна интересная возможность программы - использование Wireshark для отслеживания определённого сеанса между компьютером пользователя и сервером. Для этого откройте контекстное меню для пакета и выберите Follow TCP stream .

Затем откроется окно, в котором вы найдете все данные, переданные между сервером и клиентом:

Диагностика проблем Wireshark

Возможно, вам интересно, как пользоваться Wireshark 2.0 для обнаружения проблем в сети. Для этого в левом нижнем углу окна есть круглая кнопка, при нажатии на неё открывается окно Expet Tools . В нём Wireshark собирает все сообщения об ошибках и неполадках в сети:

Окно разделено на такие вкладки, как Errors, Warnings, Notices, Chats. Программа умеет фильтровать и находить множество проблем с сетью, и тут вы можете их очень быстро увидеть. Здесь тоже поддерживаются фильтры Wireshark.

Анализ трафика Wireshark

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

Для этого сначала нужно остановить захват трафика с помощью красного квадрата на панели. Затем откройте меню File -> Export Objects -> HTTP :

Введение

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

Рассматриваемый в данной статье открытый многоплатформенный имеет в своем составе две подсистемы фильтров: времени перехвата трафика (capture filters) и отображения (display filters). Как известно, первая подсистема базируется на языке правил библиотеки Pcap (Packet Capture). «Очистка» трафика во время его сбора, в частности, уменьшает количество перехватываемых пакетов, сохраняя тем самым место в памяти или на жёстком диске. Что же касается фильтров отображения, то они, являясь встроенной функцией Wireshark, предназначены для «кастомизации» в графическом интерфейсе программы уже перехваченного трафика.


Об языках фильтров

Возможность перехвата трафика для целей мониторинга и отладки присутствует в сетевом стеке любой операционной системы. Осуществляется она с помощью так называемого пакетного фильтра (Packet Filter), входящего в состав ядра системы и получающего принятые/отправленные пакеты от драйвера сетевой карты. Самыми известными пакетными фильтрами для Unix-подобных ОС являются BPF (Berkeley Packet Filter) и LSF (Linux Socket Filter).

Так, выборка трафика по заданным критериям в BPF реализована в виде специального регистро-ориентированного примитивного машинного языка, интерпретатором для которого собственно и выступает пакетный фильтр. Программы на этом языке могут извлекать фрагменты из пакетов, сравнивать полученные данные с заданными значениями, проверять отдельные биты, выполнять арифметические операции, а затем принимать или отбрасывать пакеты в зависимости от результатов всех этих тестов. «Низкоуровневый» подход полезен для программистов, разрабатывающих библиотеки сетевых функций и различные утилиты.

Простые пользователи обычно пользуются «высокоуровневыми» языками фильтров. Типичный прикладной язык, используемый в сниффере для описаний правил трафика, позволяет конструировать примитивы выражений на основе отдельных полей сообщений различных протоколов. При этом, в качестве критерия могут выступать соотношение значения поля к определённой величине (равно, больше, меньше), совпадение значения с шаблоном, или просто наличие поля в сообщении. Примитивы могут быть объединены в сложное выражение с помощью логических функций («и», «или», «не» и т. п.).

В мире открытого программного обеспечения фактически стандартом языка фильтров является синтаксис, используемый в библиотеке Pcap. Он является основой не только для Wireshark, но и для других утилит с открытым исходным кодом, таких как, например, общеизвестный в мире Unix консольный сниффер tcpdump. Собственно, Pcap и tcpdump - это совместный проект. В популярной системе обнаружения вторжений Snort в режиме перехвата пакетов также используется формат Pcap для определения правил фильтрации трафика.


Основы фильтров Pcap

Итак, фильтр включает один или несколько примитивов . Примитив обычно состоит из объекта (номера или имени) и одного или нескольких спецификаторов, определяющих протокол (ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp), направление (src, dst, any и т.д.) и тип объекта (host, net, port и т. д.). Например, для перехвата пакетов, в которых исходящий IP-адрес равен 192.168.56.102 следует использовать фильтр вида:

Ip src host 192.168.56.102

Или для записи трафика протокола ARP, в котором участвуют узлы сети 192.168.56.0:

Arp net 192.168.56

Часто используемые спецификаторы сведены в таблицу (необязательные компоненты обозначены - , альтернативные - |, объекты - < >). Полный список можно найти в документации к Pcap (в Linux доступно в руководстве пользователя с помощью команды man pcap-filter).

Для того чтобы объединить несколько примитивов в одно выражения используются логические функции: «и» (обозначается ключевым словом and или &&), «или» (or или ||), «не» (not или!). Например для перехвата трафика протокола SSH для узла 192.168.56.102 подойдет такая конструкция:

Tcp port 22 and host 192.168.56.102

Для совсем сложных выражений следует использовать скобки. Например:

Net 192.168.56.0/24 and (tcp port 21 or tcp port 22)

Фильтры Pcap без ограничений

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

Proto [ exp: size]

где, параметр proto — один из протоколов, поддерживаемых Wireshark; exp - смещение в байтах, относительно начала слоя, заданного в proto, a size — количество байт для извлечения.

Учитывая то, что в примитивах можно применять операции сравнения в нотации языка программирования C (>, =,

Пример, впрочем, имеет только методический смысл, так как данный протокол легко фильтруется стандартным правилом icmp.

А вот выбрать на лету из трафика сделанные методом GET HTTP-запросы - не такая простая задача для Pcap. И предложенное в документации решение претендует на оригинальность:

Port 80 and tcp[((tcp & 0xf0) >> 2):4] = 0x47455420

Этот фильтр проверяет наличие байт "G", "E", "T" и "" (шестнадцатиричные значения 47, 45, 54 и 20) сразу после TCP-заголовка, длина которого вычисляется выражением "tcp & 0xf0) >> 2".

Как видно из последнего примера, кроме операций сравнения, пользователю непосредственно в примитивах также доступны бинарные операторы C (+, -, *, /, &, |, >).


О фильтрах отображения

Если говорить об отличиях фильтров отображения от Pcap-фильтров, то кроме формата записи спецификаторов (поля протоколов выглядят как. , например ip.len), можно также назвать дополнительную поддержку английской нотации в операциях сравнения (eq - равно, gt - больше, lt — меньше, ge — больше или равно, le — меньше или равно) и бинарных операторах (and, or, xor, not), а также поддержку подстрок.

Выборка подстрок в полях похожа на извлечение произвольных байт из пакета в Pcap-фильтрах, однако имеет более гибкий синтаксис. Например, такое выражение будет проверять первых 4 байта поле исходного MAC-адреса кадра Ethernet (эквивалентно ):

Eth.src[:4] == 00:1d:72:01

Разумеется, отличием фильтров будет то, что правила Pcap используются при перехвате трафика; в графическом интерфейсе настраиваются в диалоговом окне «Capture options» (кстати, есть возможность запоминать часто используемые выражения). А фильтры отображения работают с пакетами, размещёнными в списке главного окна программы:

Функционально встроенная подсистема фильтрации Wireshark гораздо дружелюбнее к пользователю. В частности, нет необходимости помнить подробности формата сообщения (смещения, размеры полей и т. д.). Необходимое поле сообщения данного протокола можно легко найти в окне настройки правил отображения (Filter Expression), а также выбрать условие и предопределённое значение из списка для данного поля или указать своё собственное. Для любого из множества протоколов, поддерживаемых Wireshark, таким простым способом можно настроить фильтр отображения.

Весьма показательным будет почти академический пример определения момента переполнения буфера TCP-сегментов при помощи нижеприведенного правила отображения:

Tcp.window_size == 0 && tcp.flags.reset != 1

Заключение

Анализатор протоколов Wireshark обладает мощной системой фильтрации пакетов, дает возможность создавать сложные правила с использованием логических функций и бинарных операторов. Фильтры времени перехвата стандартны и будут знакомы пользователям, использовавшим сетевые утилиты на основе библиотеки Pcap, например tcpdump. Правила отображения пакетов просты в освоении и использовании, благодаря возможностям графического интерфейса рассматриваемой программы. В целом, функциональность системы фильтрации Wireshark позволяет использовать преимущества низкоуровнего пакетного фильтра достаточно эффективно.

Больше всего вопросов при работе с программой WireShark у пользователей вызывают фильтры для захвата трафика. Сегодня мы рассмотри их основные примеры, и покажем, как их правильно настраивать!

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

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

    скачать и установить на ноутбук один из лучших бесплатных анализаторов протоколов WireShark (http://www.wireshark.org/download.html);

    освоиться с его интерфейсом;

    изучить стек протоколов и их структуру;

    научиться работать с фильтрами для захвата трафика;

    научится работать с фильтрами для анализа трафика.

В рамках этой статьи мы остановимся на предпоследнем пункте - как настроить фильтры для захвата трафика в WireShark.

Примеры настройки фильтров WireShark для захвата трафика

После выбора интерфейса мы можем приступить или к захвату трафика в режиме — всё подряд, но делать это не рекомендуется, так как, например, при 50% загрузке гигабитного интерфейса для передачи 100 000 пакетов требуется всего несколько миллисекунд. Поэтому важно понимать, какую проблему мы решаем. Тогда у нас как минимум будет уже или адрес (IP или MAC) пользователя или приложение, на которое он жалуется или сервер, к которому он обращается.

Таким образом, самый простой фильтр в Wireshark - это IP адрес устройства (хоста, host) и выглядит этот фильтр следующим образом:

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

    net 192.168.0.0/24 или net 192.168.0.0 mask 255.255.255.0

При захвате трафика от подсети фильтр будет выглядеть вот так:

    src net 192.168.0.0/24 или src net 192.168.0.0 mask 255.255.255.0

А если надо увидеть для анализа только приходящий трафик в нашу подсеть, то любой из фильтров:

    dst net 192.168.0.0/24

    dst net 192.168.0.0 mask 255.255.255.0

Если пользователь жалуется, что у него не открываются странице в браузере, проблема может быть с DNS сервером (порт 53) или с протоколом HTTP (порт 80), тогда захватываем трафик с использованием фильтра «порт»:

Если мы решили захватить весь трафик для конкретного сервера без учета HTTP и FTP, то фильтр настраивается по любому из этих двух примеров:

    host 192.168.0.1 and not (port 21 or port 80)

    host 192.168.0.1 and not port 21 and not port 80

Если мы хотим видеть весь трафик на порту, кроме трафика DNS, FTP, ARP, то логика будет аналогичной:

    port not dns and not 21 and not arp

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

    (tcp > 1500 and tcp < 1550) or (tcp > 1500 and tcp < 1550)

если версии более поздние, то фильтр будет менее угрожающим и понятным:

    tcp portrange 1501-1549

Для захвата кадров Ethernet типа EAPOL (Протокол передачи EAP-сообщений в стандарте 802.1x называется EAPOL (EAP encapsulation over LAN)):

    ether proto 0x888e

Для справки приведу список типов Ethernet кадров специфичных протоколов:

Ethertype (Hexadecimal)

Протокол

0x0000 — 0x05DC

IEEE 802.3 length

0x0101 — 0x01FF

IP, Internet Protocol

ARP, Address Resolution Protocol.

Frame Relay ARP

Raw Frame Relay

DRARP, Dynamic RARP. RARP, Reverse Address Resolution Protocol.

Novell Netware IPX

EtherTalk (AppleTalk over Ethernet)

IBM SNA Services over Ethernet

AARP, AppleTalk Address Resolution Protocol.

EAPS, Ethernet Automatic Protection Switching.

IPX, Internet Packet Exchange.

SNMP, Simple Network Management Protocol.

IPv6, Internet Protocol version 6.

PPP, Point-to-Point Protocol.

GSMP, General Switch Management Protocol.

MPLS, Multi-Protocol Label Switching (unicast).

MPLS, Multi-Protocol Label Switching (multicast).

PPPoE, PPP Over Ethernet (Discovery Stage).

PPPoE, PPP Over Ethernet (PPP Session Stage).

LWAPP, Light Weight Access Point Protocol.

LLDP, Link Layer Discovery Protocol.

EAPOL, EAP over LAN.

Loopback (Configuration Test Protocol)

VLAN Tag Protocol Identifier

VLAN Tag Protocol Identifier

Если необходимо захватить трафик определенного IP протокола, то можно использовать фильтр:

    ip proto tcp - захват TCP трафика

    ip proto udp - захват UDP трафика

Для захвата IP трафика применяется самый короткий фильтр:

Для захвата только unicast трафика при анализе трафика исходящего и приходящего к сетевому устройству используется фильтр в таком формате:

    not broadcast and not multicast

Простые фильтры, о которых мы поговорили, можно объединять с помощью не сложных символов:

    Отрицание: ! Или not

    Объединение: && или and

    Чередование: II или or

Пример: для захвата трафика от или к устройству с адресом 10.10.10.10, но не из сети 192.168.0.0 фильтр получится объединением с отрицанием:

    host 10.10.10.10 && !net 192.168

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

Смещаемся на восемь байт в IP пакете и захватываем трафик со значением TTL =1

Захватываем все пакеты TCP с адресом порта отправителя 80. Это эквивалент фильтру src port 80.

Для справки приведем байт смещения до наиболее интересных полей в пакете:

Поле в пакете

Длина в байтах

Фильтр

IP Header Length

IP Packet Length

IP Address Source

IP Address Destination

IP Fragmentation

flag = 3 and Offset = 13

ip & 0x2000 = 0x2000 or ip & 0x1fff !=0x0000

TCP Destination Port

TCP Header Length

Для закрепления полученной информации построим фильтр для захвата трафика с запросом HTTP GET. Протокол HTTP использует порт 80, транспортный протокол TCP. Значения в шестнадцатеричной системе исчисления слова GET будет выглядеть 0x47455420. Пример фильтра, который получится у нас:

    port 80 and tcp[((tcp & 0xf0 >>2):4]=0x47455420

В рамках данного материала мы разобрали, как настроить и использовать наиболее простые базовые фильтры для захвата трафика с помощью анализатора протоколов Wireshark.

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

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

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

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

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

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

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

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

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

arp || http || icmp

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

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

ip.src==10.0.10.163

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

ip.addr==50.116.24.50

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

ip.src!=80.68.246.17

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

eth.addr == AA:BB:CC:DD:EE:FF

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

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

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

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

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

Фильтр для отображения

Описание

Пример написания

MAC адрес отправителя или получателя

eth.addr == 00:1a:6b:ce:fc:bb

MAC-адрес оправителя

eth.src == 00:1a:6b:ce:fc:bb

MAC-адрес получателя

eth.dst == 00:1a:6b:ce:fc:bb

Протокол ARP - MAC адрес получателя

arp.dst.hw_mac == 00:1a:6b:ce:fc:bb

arp.dst.proto_ipv4

Протокол ARP - IP адрес версии 4 получателя

arp.dst.proto_ipv4 == 10.10.10.10

Протокол ARP - MAC адрес отправителя

arp.src.hw_mac == 00:1a:6b:ce:fc:bb

arp.src.proto_ipv4

Протокол ARP - IP адрес версии 4 отправителя

arp.src.proto_ipv4 == 10.10.10.10

Идентификатор VLAN

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

ip.addr == 10.10.10.10

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

ip.addr == 10.10.10.10

IP адрес версии 4 отправителя

ip.src == 10.10.10.10

IP protocol (decimal)

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

ipv6.addr == 2001::5

IP адрес версии 6 отправителя

ipv6.addr == 2001::5

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

ipv6.dst == 2001::5

TCP порт получателя или отправителя

TCP порт получателя

tcp.dstport == 80

TCP порт отправителя

tcp.srcport == 60234

UDP порт получателя или отправителя

UDP порт получателя

udp.dstport == 513

UDP порт отправителя

udp.srcport == 40000

vtp.vlan_info.vlan_name

vtp.vlan_info.vlan_name == TEST

bgp.originator_id

Идентификатор BGP (Адрес IPv4)

bgp.originator_id == 192.168.10.15

Следующий хоп BGP (Адрес IPv4)

bgp.next_hop == 192.168.10.15

RIP IPv4 address

rip.ip == 200.0.2.0

Идентификатор маршрутизатора по протоколу OSPF

ospf.advrouter == 192.168.170.8

Номер автономной системы EIGRP

Виртуальный IP адрес по протоколу HSRP

hsrp.virt_ip == 192.168.23.250

Виртуальный IP адрес по протоколу VRRP

vrrp.ip_addr == 192.168.23.250

MAC адрес отправителя или получателя Wi-Fi

wlan.addr == 00:1a:6b:ce:fc:bb

MAC-адрес оправителя Wi-Fi

wlan.sa == 00:1a:6b:ce:fc:bb

MAC-адрес получателя Wi-Fi

wlan.da == 00:1a:6b:ce:fc:bb

А какие фильтры чаще всего используете в своей работе вы?

Wireshark: как пользоваться?

Здравствуйте друзья! В этой статье я попытаюсь объяснить и рассказать о самом необходим, что нужно знать при использовании Wireshark на Linux , и покажу анализ трёх типов сетевого трафика. Данный мануал применим и для работы Wireshark под Windows.

Если вы новичок в информационной безопасности, и совсем хорошо понимаете что такое сниффер (анализатор трафика), советую почитать статью , и только потом читать эту статью о том как пользоваться Wireshark.

Очень популярный и чрезвычайно умелый анализатор сетевого протокола , который разработал Джеральд Комбс , Wireshark появился в июне 2006 г., когда Комбс переименовал сетевой инструмент Ethereal, также созданный им, поскольку сменил работу и не мог больше использовать старое название. Сегодня большинство используют Wireshark, a Ethereal сделался историей.

Wireshark: лучший сниффер

Вы, возможно, спросите, чем Wireshark отличается от других сетевых анализаторов - кроме того, что он свободный - и почему бы нам просто не начать пропагандировать применение tcpdump для захвата пакетов?

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

Как пользоваться Wireshark?

Чтобы новичок смог разобраться с Wireshark, ему нужно понять сетевой трафик. В таком случае цель этой статьи состоит в разъяснении вам основ TCP/IP, чтобы вы смогли сделать нужные выводы по сетевому трафику, который анализируете.


Формат пакета TCP и пакета IP.

Если вы запускаете Wireshark от имени обычного пользователя, вы не сможете использовать сетевые интерфейсы для сбора данных из-за имеющихся в сетевых интерфейсах разрешений файла Unix по умолчанию. Удобнее запускать Wireshark от имени root (sudo wireshark) при сборе данных и от имени обычного пользователя-для анализа данных.

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

Захват сетевых данных с помощью Wireshark

Простейший способ приступить к захвату данных сетевых пакетов - выбрать после запуска Wireshark нужный вам интерфейс и нажать на Start . Wireshark покажет данные о сети на вашем экране в зависимости от трафика вашей сети. Обратите внимание: можно выбрать более одного интерфейса. Если вы ничего не знаете о TCP, IP или других протоколах, результат может показаться вам сложным для чтения и понимания.

Чтобы прекратить процесс захвата данных, выберите в меню Capture > Stop . В качестве альтернативы, можете нажать на четвертый значок слева, с красным квадратиком (это сокращение от «Прекратить захват данных live») в панели инструментов Main (учтите, его точное расположение зависит от имеющейся у вас версии Wireshark). На эту кнопку можно нажимать только в процессе сбора сетевых данных.

При использовании описанного метода захвата данных вы не можете изменить настроенные в Wireshark по умолчанию Capture Options [Опции захвата]. Вы можете увидеть и изменить Capture Options, выбрав в меню Capture > Options . Здесь можно выбрать интерфейс(ы) сети, посмотреть свой IP-адрес, применить фильтры сбора данных, перевести свою сетевую карту в режим приема всех сетевых пакетов и сохранить собранные данные в один или несколько файлов. Вы даже можете велеть прекращать захват пакетов по достижении определенного числа сетевых пакетов, или определенного времени, или определенного объема данных (в байтах).

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

Wireshark позволяет читать и анализировать уже собранные сетевые данные из большого числа файловых форматов, в том числе tcpdump, libpcap, snoop от Sun, nettl от HP, текстовых файлов К12, и т.д. Короче, с помощью Wireshark можно читать практически любой формат собранных сетевых данных. Подобным же образом Wireshark позволяет сохранять собранные данные в разных форматах. Можно даже использовать Wireshark для конверсии файла из одного формата в другой.

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

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

Фильтры отображения Wireshark

Если во время захвата сетевых данных применяются фильтры захвата, то Wireshark не учитывает сетевой трафик, не соответствующий фильтру; тогда как фильтры отображения применяются после захвата данных и «прячут» сетевой трафик, не удаляя его. Вы всегда можете отключить Display filter и вернуть свои скрытые данные.

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

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

Фильтры отображения поддерживают операторы сравнения и логические операторы. Фильтр отображения http.response.code


Три пакета (SYN, SYN+ACK и АСК) трехзтапной установки соединения TCP

404 && ip.addr == 192.168.1.1 показывает трафик, который либо идет с IP-адреса 192.168.1.1, либо идет на IP-адрес 192.168.1.1, который также имеет в себе код отклика 404 (Not Found) HTTP. Фильтр!Ьоо1р &&!ip &&!агр исключает из результата трафик BOOTP, IP и ARP. Фильтр eth.addr == 01:23:45:67:89:ab && tcp.port == 25 отображает трафик идущий от или к сетевому устройству с MAC-адресом 01:23:45:67:89:аЬ, которое использует во входящих и исходящих соединениях порт TCP за номером 25.

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

Продолжение статьи на следующей странице. Для перехода на следующую страницу нажмите на кнопку 2 которая находится под кнопками социальных сетей.