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

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


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

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

Включите воображение!

Даю пример:

допустим вы подключились к чужой сети и вам нужно узнать чем они пользуются что и как проходит через сеть? Wireshark идеальное решение. Изучив пакеты вы с легкостью узнаете все нужные данные. Но это был всего лишь пример каждый волен его использовать по своей нужде!

Applications >>Internet >>Wireshark

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

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

Для того чтобы остановить захват трафика нажимаем на кнопку «Stop the running live capture «

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.


Как вы уже заметили цвета трафика разные и это весьма интересно что они обозначают. Wireshark использует разные цвета чтобы помочь нам узнать разные виды трафика.

Мы можем вписать нужный нам трафик для фильтровки в разделе «Filter : » и Wireshark сам будет давать нам подсказки или можем выбрать нажав на «Expression «

Мы также можем создать свой собственный фильтр нажав на Analyze >>Display filters

Если вы увидели нужный пакет вы можете посмотреть его содержимое.




А также можно посмотреть все содержимое пакета, а также все данные о нем.

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

Это всего лишь начало, следите за обновлениями статей так как мы полностью объясним и разберем по кускам этот атрибут.

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

Введение

Из всех методов изучения компьютерных сетей анализ трафика, пожалуй, самый кропотливый и трудоемкий. Интенсивные потоки современных сетей порождают очень много «сырого» материала, отыскать в котором крупицы полезной информации далеко не просто. За время своего существования стек TCP/IP оброс многочисленными приложениями и дополнениями, счет которым идет на сотни и тысячи. Это прикладные и служебные протоколы, протоколы аутентификации, туннелирования, доступа к сети и так далее. Кроме знания азов сетевых взаимодействий, исследователю трафика (то есть тебе) нужно свободно ориентироваться во всем этом протокольном многообразии и уметь работать со специфичными программными инструментами - снифферами, или, по-научному, анализаторами трафика (протоколов).

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

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

Знакомимся с фильтрами

Wireshark поддерживает два вида фильтров:

  • перехвата трафика (capture filters);
  • отображения (display filters).

Первая подсистема досталась Wireshark в наследство от библиотеки Pcap, обеспечивающей низкоуровневый API для работы с сетевыми интерфейсами. Выборка трафика на лету во время перехвата позволяет экономить оперативную память и место на жестком диске. Фильтр представляет собой выражение, состоящее из группы примитивов, при необходимости объединенных логическими функциями (and, or, not). Записывается это выражение в поле «Capture Filter» диалогового окна «Capture options». Наиболее употребляемые фильтры можно сохранять в профиле для повторного использования (рис. 1).

Рис. 1. Профиль фильтров перехвата

Язык фильтров перехвата стандартный для мира Open Source и используется многими Pcap-основанными продуктами (например, утилитой tcpdump или системой обнаружения/предотвращения вторжений Snort). Поэтому описывать синтаксис здесь нет особого смысла, так как он тебе, скорее всего, знаком. А детали можно посмотреть в документации, например в Linux на странице справочного руководства pcap-filter(7).

Фильтры отображения работают с уже перехваченным трафиком и являются «родными» для Wireshark. Отличия от Pcap - в формате записи (в частности, в качестве разделителя полей используется точка); также добавлены английская нотация в операциях сравнения и поддержка подстрок.

Вписать фильтр отображения можно прямо в соответствующее поле (внимание, работает выпадающий список-подсказка) главного окна программы после кнопки «Filter» (кстати, под этой кнопкой скрывается профиль для часто используемых выражений). А если кликнуть расположенную неподалеку кнопку «Expression…», то откроется многофункциональный конструктор выражений (рис. 2).


Слева (Field Name) представлено упорядоченное по алфавиту дерево полей сообщений протоколов, которые известны Wireshark. Для данного поля можно указать логический оператор (Relation), вписать значение (Value), указать диапазон (Range) или выбрать значение из списка (Predefined Value). В общем, полная сетевая энциклопедия в одном окошке.

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

  • and (&&) - «И»;
  • or (||) - «ИЛИ»;
  • xor (^^) - исключающее «ИЛИ»;
  • not (!) - отрицание;
  • […] - выборка подстроки. # Фильтруя по MAC-адресу своего сетевого адаптера, исключаем весь локальный трафик not (eth.addr eq aa:bb:cc:22:33:44) # Отметаем весь «служебный шум», чтобы сконцентрироваться на интересующем нас трафике!(arp or icmp or dns)

Что касается выборки подстроки, то это не совсем логическая операция, но весьма полезная опция. Она позволяет получить определенную часть последовательности. Например, так можно использовать в выражении первые (первое число в квадратных скобках - смещение) три байта (число после двоеточия - длина подпоследовательности) поля MAC-адреса источника:

Eth.src == 00:19:5b

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

К слову, выборку подстроки удобно использовать для выявления малвари в случае, если известна последовательность байт, идущая после заголовка (например, «0x90, 0x90, 0x90, 0x04» в UDP-пакете):

Udp == 90:90:90:04

Операции сравнения, используемые в логических выражениях:

  • eq (==) - равно;
  • ne (!=) - не равно;
  • gt (>) - больше;
  • lt (<) - меньше;
  • ge (>=) - больше или равно;
  • le (<=) - меньше или равно.tcp.dstport ne 8080 && tcp.len gt 0 && data eq A0

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

Pcap-фильтр для выявления сканирования Netbios-портов

dst port 135 or dst port 445 or dst port 1433 and tcp & (tcp-syn) != 0 and tcp & (tcp-ack) = 0 and src net 192.168.56.0/24

Ищем угонщика IP-адреса

В сегменте локальной сети случаются (по тем или иным причинам) совпадения IP-адресов у двух и более узлов. Методика «отлова» (определения MAC-адресов) конфликтующих систем общеизвестна: запускаем на третьем компьютере сниффер, чистим ARP-кеш и стимулируем запрос на разрешение MAC’а искомого IP, например пропинговав его:

# arp -d 192.168.56.5 # ping -n -c 1 192.168.56.5

А потом ищем в перехваченном трафике, с каких MAC’ов пришли ответы. Если Wireshark наловил слишком много пакетов, создаем фильтр отображения с помощью конструктора. В первой части выражения выбираем ARP-ответы, во второй - те сообщения, в которых исходный IP-адрес равен искомому. Примитивы объединяем оператором &&, так как нужно, чтобы оба условия выполнялись одновременно:

(arp.opcode == reply) && (arp.src.proto_ipv4 == 192.168.56.5)

Кстати, при выполнении этого сценария ни одна компьютерная сеть не пострадала, потому что были использованы две виртуальные машины Oracle VirtualBox и сетевое подключение типа «Виртуальный адаптер хоста».

Инспектируем сетевой и транспортный уровни

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

Как ты уже догадался, отфильтровать ICMP в Wireshark очень просто. Достаточно в строке фильтрации в главном окне программы написать: icmp. Кроме icmp, работают и многие другие ключевые слова, являющиеся именами протоколов, например arp, ip, tcp, udp, snmp, smb, http, ftp, ssh и другие.

Если ICMP-трафика много, то отображение можно детализировать, исключив, например, эхо-запросы (тип 0) и эхо-ответы (тип 8):

Icmp and ((icmp.type ne 0) and (icmp.type ne 8))

На рис. 4 показан пример небольшой выборки ICMP-сообщений, созданных тестовым Linux-маршрутизатором. Сообщение «Port Unreachable» обычно используется по умолчанию. Оно же генерируется сетевым стеком при получении UDP-датаграммы на неиспользуемый порт. Чтобы виртуальный роутер на основе Debian начал отдавать сообщения «Host unreachable» и «Communication administratively filtered», пришлось с ним повозиться. Cisco же информирует об административной фильтрации обычно по умолчанию. Сообщение «Time-to-live exceeded» говорит о наличии петли на каком-то участке сети (ну и при трассировке маршрута такие пакеты также могут появляться).

Кстати, о межсетевых экранах. Создавать правила для популярных файеров можно прямо в Wireshark, используя пункт «Firewall ACL Rules» меню «Tools». Предварительно нужно выбрать в списке пакет, информация которого будет использована. Доступны стандартные и расширенные ACL Cisco, правила UNIX-like продуктов IP Filter, IPFirewall (ipfw), Netfilter (iptables), Packet Filter (pf), а также Windows Firewall (netsh).

И теперь кратко об азах фильтрации на сетевом уровне, основу которой составляют поля заголовка IP-пакета - адрес отправителя (ip.src) и адрес получателя (ip.dst):

(ip.src == 192.168.56.6) || (ip.dst == 192.168.56.6)

Так мы увидим все пакеты, которые получил или отправил данный IP-адрес. Фильтровать целые подсети можно, используя CIDR-нотацию записи маски. Для примера выявим инфицированный хост, осуществляющий спам-рассылку (здесь 192.168.56.251 - это IP-адрес нашего SMTP-сервера):

Ip.src == 192.168.56.0/24 and tcp.dstport == 25 and !(ip.dst == 192.168.56.251)

К слову, для выборки по MAC-адресам следует использовать примитивы eth.src, eth.dst и eth.addr. Порой проблемы сетевого уровня куда теснее связаны с Ethernet-уровнем, чем об этом повествует теория. В частности, при настройке маршрутизации очень полезно бывает посмотреть, на MAC-адрес какого роутера упрямый узел отправляет пакеты. Впрочем, для такой простой задачи за глаза хватит утилиты tcpdump, практически штатной для UNIX-подобных систем.

С фильтрацией портов у Wireshark тоже никаких вопросов нет. Для TCP к твоим услугам ключевые слова tcp.srcport, tcp.dstport и tcp.port, для UDP - udp.srcport, udp.dstport и udp.port. Правда, у встроенного языка фильтров Wireshark не нашлось аналога примитива port в Pcap, обозначающего как порт UDP, так и TCP. Но это легко исправить с помощью логического выражения, например:

Tcp.port == 53 || udp.port == 53

Импровизируем с HTTP-трафиком

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

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

Tcp contains "сайт"

Оператор contains проверяет наличие подстроки в данном поле. Есть еще оператор matches, в нем можно использовать Perl-совместимые регулярные выражения.

Окошко «Filter Expressions», конечно, хороший помощник, но порой перелистывать длинный список в поисках нужного поля весьма утомительно. Есть более простой способ создания/модификации фильтров отображения: с помощью контекстного меню при просмотре пакетов. Для этого нужно просто кликнуть правой клавишей мыши по интересующему полю и выбрать один из подпунктов пункта «Apply As Filter» или пункта «Prepare a Filter». В первом случае изменения тут же вступят в силу, а во втором - можно будет подкорректировать выражение. «Selected» означает, что значение поля станет новым фильтром, «Not Selected» - то же самое, только с отрицанием. Пункты, начинающиеся с «…», добавляют значение поля к существующему выражению с учетом логических операторов.

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

Например, чтобы посмотреть, какие изображения браузер запрашивал у веб-сервера при формировании страницы, сгодится фильтр, анализирующий содержимое передаваемого серверу URI:

(http.host eq "www..request.uri contains ".jpg#26759185") or (http.request.uri contains ".png#26759185"))

То же самое, но с использованием matches:

(http.host eq "www..request.uri matches ".jpg|.png#26759185")

Разумеется, поля сообщений протоколов разных уровней можно смело смешивать в одном выражении. Например, чтобы узнать, какие картинки данный сервер передал клиенту, используем исходный адрес из IP-пакета и поле «Content-Type» HTTP-ответа:

(ip.src eq 178.248.232.27) and (http.content_type contains "image")

А с помощью поля HTTP-запроса «Referer» ты сможешь узнать, с каких еще серверов браузер берет контент при формировании страницы любимого сайта:

(http.referer eq "http://www..dst eq 178.248.232.27))

Рассмотрим еще несколько фильтров-полезняшек. Для выборки из трафика HTTP-запросов, сделанных методом GET, можно использовать следующее выражение:

Http.request.method == GET

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

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

Чтобы выяснить, какие www-подключения совершал пользователь хоста 192.168.56.8 в определенный интервал времени (скажем, в обеденный перерыв), задействуем примитив frame.time:

Tcp.dstport == 80 && frame.time >= "Yan 9, 2013 13:00:00" && frame.time < "Yan 9, 2013 14:00:00" && ip.src == 192.168.56.8

Ну и отображение URI запросов, содержащих слова «login» и «user», плюс «напоминалка» паролей:

Http.request.uri matches "login.*=user" (http contains "password") || (pop contains "PASS")

Перехват SSL-контента

Настоящий бич исследователя сетевого трафика - шифрование. Но если у тебя есть заветный файл с сертификатом (кстати, беречь его нужно как зеницу ока), то ты легко сможешь узнать, что прячут пользователи данного ресурса в SSL-сессиях. Для этого нужно указать параметры сервера и файл сертификата в настройках протокола SSL (пункт «Preferences» меню «Edit», слева в списке протоколов выбрать SSL). Поддерживаются форматы PKCS12 и PEM. В последнем случае нужно убрать пароль с файла командами:

Openssl pkcs12 -export -in server.pem -out aa.pfx openssl pkcs12 -in aa.pfx -out serverNoPass.pem –nodes

INFO

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

Примерами пакетных фильтров для UNIX-like ОС являются BPF (Berkeley Packet Filter) и LSF (Linux Socket Filter). В BPF фильтрация реализована на основе регистро-ориентированного примитивного машинного языка, интерпретатором которого и является BPF.

Анализируем трафик с удаленных хостов

Пользователи Windows могут работать не только с интерфейсами того компьютера, на котором запущен Wireshark, но и снимать трафик с удаленных машин. Для этого существует специальная служба (Remote Packet Capture Protocol) в поставке библиотеки WinPcap. Ее нужно предварительно включить в оснастке управления службами (services.msc). Теперь, запустив Wireshark на удаленном компьютере, можно подключиться к тому узлу, на котором работает сервис удаленного перехвата трафика (по умолчанию использует порт 2002), и данные по протоколу RPCAP потекут к тебе рекой.

Также приведу варианты подключения к домашнему *nix-роутеру «извне» для удаленного анализа трафика:

$ ssh [email protected] "tshark -f "port !22" -i any -w -" | wireshark -k -i - $ ssh [email protected] tcpdump -U -s0 -w - "not port 22" | wireshark -k -i -

Инструмент из разряда must have

Wireshark - широко известный инструмент перехвата и интерактивного анализа сетевого трафика, фактически стандарт для промышленности и образования. Распространяется под лицензией GNU GPLv2. Wireshark работает с большинством известных протоколов, имеет графический интерфейс пользователя на основе GTK+, мощную систему фильтров трафика и встроенный интерпретатор языка программирования Lua для создания декодеров и обработчиков событий.

Извлечь полезный груз

В определенных кругах широко известны специализированные инструменты, позволяющие «вытаскивать» из трафика конечные информационные объекты: файлы, изображения, видео- и аудиоконтент и прочее. Благодаря мощной аналитической подсистеме, Wireshark эту функциональность с лихвой покрывает, поэтому ищи в соответствующих окнах анализа кнопку «Save Payload…».

Заключение

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

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

Введение

В работе компьютерной сети и сетевого стека узлов иногда возникают проблемы, причины которых трудно обнаружить общеизвестными утилитами сбора статистики (такими например, как netstat) и стандартными приложениями на основе протокола ICMP (ping, traceroute/tracert и т.п.). В подобных случаях для диагностики неполадок часто приходится использовать более специфичные средства, которые позволяют отобразить (прослушать) сетевой трафик и проанализировать его на уровне единиц передачи отдельных протоколов («сниффинг», sniffing ).

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

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

Рассматриваемый в данной статье продукт Wireshark является широко известным инструментом перехвата и интерактивного анализа сетевого трафика, фактически, стандартом в промышленности и образовании. К ключевыми особенностям Wireshark можно отнести: многоплатформенность (Windows, Linux, Mac OS, FreeBSD, Solaris и др.); возможности анализа сотен различных протоколов; поддержку как графического режима работы, так и интерфейса командной строки (утилита tshark); мощную систему фильтров трафика; экспорт результатов работы в форматы XML, PostScript, CSV и т. д.

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

Установка Wireshark

Последнюю версию Wireshark для операционных систем Windows и OS X, а также исходный код можно скачать с сайта проекта . Для дистрибутивов Linux и BSD-систем, данный продукт обычно доступен в стандартных или дополнительных репозиториях. Опубликованные в данной статье снимки экранов сделаны с версии 1.6.2 Wireshark для Windows. Более ранние версии программы, которые можно найти в репозиториях Unix-подобных операционных систем, также можно успешно использовать, так как Wireshark давно уже стабильный и функциональный продукт.

Работа Wireshark базируется на библиотеке Pcap (Packet Capture) , предоставляющей собой прикладной интерфейс программирования для реализации низкоуровневых функций взаимодействия с сетевыми интерфейсами (в частности перехвата и генерации произвольных единиц передачи сетевых протоколов и протоколов локальных сетей) . Библиотека Pcap является также основой таких известных сетевых средств, как tcpdump, snort, nmap, kismet и т. д. Для Unix-подобных систем Pcap обычно присутствует в стандартных репозиториях программного обеспечения. Для семейства операционных систем Windows существует версия Pcap, которая называется Winpcap. Ее можно скачать с сайта проекта . Впрочем, обычно в этом нет необходимости, так как библиотека Winpcap включена в пакет установки Wireshark для Windows.

Процесс установки программы не сложен для любой операционной системы, с поправкой, разумеется, на специфику используемой Вами платформы. Например, Wireshark в Debian/Ubuntu устанавливается так, что непривилегированные пользователи по умолчанию не имеют права перехватывать пакеты, поэтому программу нужно запускать с использованием механизма смены идентификатора пользователя sudo (или же произвести необходимые манипуляции согласно документации стандартного DEB-пакета).

Азы работы c Wireshark

Пользовательский интерфейс Wireshark построен на основе библиотеки GTK+ (GIMP Toolkit). Главное окно программы включает следующие элементы: меню, панели инструментов и фильтров просмотра, список пакетов, детальное описание выбранного пакета, отображение байтов пакета (в шестнадцатеричной форме и в виде текста) и строку состояния:

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

Итак, эргономика Wireshark отражает многоуровневый подход к обеспечению сетевых взаимодействий. Все сделано таким образом, что, выбрав сетевой пакет из списка, пользователь получает возможность просмотреть все заголовки (слои), а также значения полей каждого слоя сетевого пакета, начиная от обертки — кадра Ethernet, непосредственно IP-заголовка, заголовка транспортного уровня и данных прикладного протокола, содержащихся в пакете.

Исходные данные для обработки могут быть получены Wireshark в режиме реального времени или импортированы из файла дампа сетевого трафика , причем несколько дампов для задач анализа можно «на лету» объединить в один.

Проблема поиска необходимых пакетов в больших объемах перехваченного трафика решается двумя типами фильтров : сбора трафика (capture filters) и его отображения (display filters) . Фильтры сбора Wireshark основаны на языке фильтров библиотеки Pcap, т.е. синтаксис в данном случае аналогичен синтаксису утилиты tcpdump . Фильтр представляет собой серию примитивов, объединенных, если это необходимо, логическими функциями (and, or, not). Часто используемые фильтры можно сохранять в профиле для повторного использования .

На рисунке показан профиль фильтров сбора Wireshark:

Анализатор сетевых пакетов Wireshark также имеет свой простой, но многофункциональный язык фильтров отображения . Значение каждого поля в заголовке пакета может быть использовано как критерий фильтрации (например, ip.src — IP-адрес источника в сетевом пакете, frame.len — длина Ethernet-фрейма и т.д.). С помощью операций сравнения значения полей можно сопоставлять заданным величинам (например, frame.len а несколько выражений объединять логическими операторами (например: ip.src==10.0.0.5 and tcp.flags.fin). Хорошим помощником в процессе конструирования выражений является окно настройки правил отображения (Filter Expression) :

Средства анализа сетевых пакетов

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

Одной из полезных функций Wireshark является пункт «Follow TCP Stream» (буквально, «Следовать за TCP-потоком») подменю анализа «Analyze», позволяющий извлечь данные прикладного протокола из TCP-сегментов потока, которому принадлежит выбранный пакет:

Еще один интересный пункт подменю анализа - «Expert Info Composite» , вызывающий окно встроенной экспертной системы Wireshark, которая попытается обнаружить ошибки и замечания в пакетах, автоматически выделить из дампа отдельные соединения и охарактеризовать их. Данный модуль находится в процессе разработки и совершенствуется от версии к версии программы.

В подменю статистики «Statistics» собраны опции, позволяющие рассчитать всевозможные статистические характеристики изучаемого трафика, построить графики интенсивности сетевых потоков, проанализировать время отклика сервисов и т.д. Так, пункт «Protocol Hierarchy» отображает статистику в виде иерархического списка протоколов с указанием процентного отношения к общему трафику, количества пакетов и байт, переданных данным протоколом.

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

Пункт «Flow Graph...» представляет потоки пакетов в графическом виде. При этом, при выборе элемента на графике становится активным соответствующий пакет в списке в главном окне программы:

Отдельное подменю в последних версиях Wireshark отведено IP-телефонии. В подменю «Tools» есть пункт «Firewall ACL Rules» , для выбранного пакета попытается создать правило межсетевого экрана (в версии 1.6.х поддерживаются форматы Cisco IOS, IP Filter, IPFirewall, Netfilter, Packet Filter и Windows Firewall).

Программа также имеет встроенный интерпретатор легковесного языка программирования Lua . Используя Lua, Вы можете создавать собственные «декодеры» протоколов и обработчики событий в Wireshark.

Вместо заключения

Анализатор сетевых пакетов Wireshark является примером Opensource-продукта, успешного как в рамках платформы Unix/Linux, так популярного среди пользователей Windows и Mac OS X. Конечно, кроме Wireshark, существуют тяжеловесные комплексные интеллектуальные решения в области исследования сетевого трафика, функционал которых гораздо шире. Но они, во-первых, стоят больших денег, во-вторых, сложны в освоении и эксплуатации; в-третьих, нужно понимать, что не все можно автоматизировать и никакая экспертная система не заменит хорошего специалиста. Так что, если перед Вами стоят задачи, требующие анализа сетевого трафика, то Wireshark — это инструмент для Вас. А поклонники командной строки могут пользоваться утилитой tshark — консольной версией Wireshark .

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

Где и как скачать Wireshark

Wireshark является свободным софтом и распространяется абсолютно бесплатно. На официальном сайте разработчика https://www.wireshark.org вы можете не только скачать утилиту, но и пожертвовать добровольно средства на развитие проекта.

  • Интерфейс сайта довольно прост: нажмите сначала на кнопку “Download”.
  • Затем выберете тип вашей системы: Windows или MacOS, 32-битная или 64. Скачивание именно вашей версии начнется незамедлительно. Если вы не уверены в своей системе, посмотрите точнее в параметрах “Система” в панели управления.


  • Установка программы происходит легко, вам достаточно кликать на клавишу “Next” и порой выполнять инструкции с экрана, однако, некоторые моменты требуют разъяснения.
  • Когда вам предложат выбрать набор установки утилиты, отмечайте галочками все поля. Так вы сможете пользоваться полным набором инструментов Wireshark.


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


Как включить мониторинг трафика в Wireshark

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

  • В центре окна вы увидите кнопку “Refresh interfaces” или “No interfaces found”. Нажмите на нее, чтобы загрузить интерфейсы. У вас может быть подключение через маршрутизатор, напрямую к кабелю, по сетям Wi Fi или через модем LTE.
  • Если же у вас беспроводное подключение Wi Fi, зайдите во вкладку “Wireless”.


  • Нажмите “WLAN Truffic”.


  • Если же подключение происходит через модем, обратите внимание на вкладку “Telephony”, нажмите строку “LTE”.


  • Что бы вы ни выбрали, трафик предстанет перед вами примерно в таком виде. Сверху в строке “Filter” вы можете ввести фильтр, чтобы отсеять ненужную вам информацию и видеть сетевые протоколы только по определенному критерию.
  • Нажав мышкой на один из них, в нижнем окне вы увидите больше информации. Главным критерием может стать строка с хостом: сайт, который принял или отдал запрос. Такие данные указаны после слов “Host”, а также “Accept”.
  • Как говорилось ранее, работать с протоколами без малейшего понимания их работы практически невозможно. Вы не поймете, какой именно пакет когда и куда ушел. Тем не менее, если эта тема вам хоть каплю знакома, всё становится интуитивно понятно.


Как включить интерфейсы Wireshark, если они недоступны

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

Первое, что нужно сделать – перезагрузить компьютер. Программа начинает функционировать только после перезапуска.
Вторая возможная и самая распространенная причина – у вас не скачан WinPcap. Это бесплатные библиотеки от Windows, которые нужны программе Wireshark. Скачайте их в сети интернет, перезагрузите компьютер и попробуйте снова.

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


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

Программа одинаково корректно работает в среде многих операционных систем, включая Windows, UNIX, Linux, Mac OS, Free BSD, Solaris, Open BSD, Net BSD и т. д. Сами по себе приложения такого типа иногда называют снифферами.

Данная программа позволяет достаточно легко отследить трафик с использованием множества сетевых протоколов типа DNS, FDDI, FTP, HTTP, ICQ, IPV6, IPX, IRC, MAPI, MOUNT, NETBIOS, NFS, NNTP, POP, PPP, TCP, TELNET, X25 и т. п.

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

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

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

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

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

После этого можно запускать основное приложение.

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

Сам процесс работы с программой довольно прост

Для запуска перехвата сетевых пакетов нужно просто зайти в главное меню, а именно Menu/Capture Options, а затем в поле Interface выбрать необходимый интерфейс и нажать кнопку Start.

Вот собственно и все.

Естественно, можно воспользоваться и дополнительными настройками, представленными в этом окне.

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

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

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

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

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

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