Что за программа wireshark

Рассказываем, что такое Wireshark и как правильно с ним работать.

Что такое Wireshark?

Wireshark — инструмент для анализа входящего и исходящего трафика. В частности, это анализатор трафика в сетях Ethernet (ранее он назывался Ethereal). Программа умеет просматривать проходящий через определенное устройство трафик в текстовом виде или в графической среде (на выбор пользователя). При этом в нем есть целый набор механизмов по фильтрации и поиску конкретных пакетов, переданных по сети.

За всем трафиком можно наблюдать в реальном времени. Wireshark хорошо «ознакомлен» с тем, как работают сети. Из-за этого для него не составляет труда перехватывать информацию любого уровня.

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

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

Как пользоваться Wireshark? Анализ трафика и расшифровка пакетов

Как установить Wireshark?

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

  • Открываем терминал.

Панель инструментов в Linux Mint

Обычно терминал закреплен на панели с избранными программами, но его также можно включить, одновременно нажав клавиши Ctrl + Alt + T

Для Debian и ей подобных (Ubuntu, Mint) — sudo apt-get install wireshark

В Red Hat Enterprise Linux и CentOS — sudo yum install wireshark

Для openSUSE — sudo zypper install wireshark

Для новых редакций Fedora — sudo dnf install wireshark

Команда установки wireshark в Linux Mint

В моем примере будет Debian-подобная система с менеджером пакетов apt-get

  • Затем вводим пароль администратора.

Запрос на ввод пароля в терминале Linux Mint

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

  • После этого подтверждаем установку, прописав заглавную букву «Д» (или «Y» в английской версии операционной системы).

Запрос на подтверждение установки

Если ввести строчную букву, то система может воспринять это как отказ

  • В ходе настройки пакета wireshark-common выбираем пункт Yes и нажимаем на клавишу «Ввод» (Enter).

Окно настройки пакета wireshark-common

Основы Wireshark. Настройка, захват и расшифровка трафика

Заключительный этап установки

Особенности приложения

Чем, собственно, хорош Wireshark, и что он умеет?

  • Wireshark захватывает сетевые пакеты на ходу, собирая информацию с беспроводных и проводных интерфейсов или из файла с соответствующими данными. Поддерживаются интерфейсы: Ethernet, IEEE 802.11, PPP и даже виртуальные интерфейсы, существующие только в локальной сети.
  • Полученные сетевые пакеты можно сортировать, используя заданные правила, коих в утилите великое множество.
  • В интерфейсе программы есть четкое разграничение данных по протоколам. Например, FTP, HTTP или DNS. Все протоколы визуально подчеркиваются, чтобы было легче ориентироваться при поиске.
  • Wireshark умеет собирать сетевые пакеты, передаваемые в ходе VoIP-звонков.
  • Также эта программа умеет расшифровывать трафик HTTPS, WEP, WPA, если имеются ключи.
  • Wireshark собирает статистику оказываемой нагрузки на сетевое подключение.
  • А еще можно получить дополнительную информацию о трафике. Это касается содержимого пакетов разных уровней и времени, которое уходит на отправку и получение данных.

Как анализировать трафик?

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

  • Для начала включим только что установленное приложение с помощью команды sudo wireshark.

Команда для запуска программы Wireshark

Я запускаю утилиту через терминал, но вы можете найти значок в списке всех установленных программ

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

Главное окно Wireshark с выбором подключения

По графику напротив названия сети можно понять, насколько она активна

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

Кнопка запуска анализа трафика в Wireshark

Это первое, с чего стоит начинать работу с Wireshark

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

  1. Список сетевых пакетов, которые удалось отследить Wireshark.
  2. Содержимое того пакета, по которому вы кликнули в списке.
  3. Реальное представления пакета, по которому вы кликнули в списке.

Основной интерфейс Wireshark с перехваченным пакетами

Тут все довольно просто. Главное запомнить, за что отвечают все три категории

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

  • Кликаем на «Файл» в верхнем левом углу окна Wireshark.

Меню файл в панели инструментов

У меня тут скриншот из macOS, но в Linux есть такое же меню, просто оно обычно закреплено на самом окне

  • Выбираем пункт Export Objects.

Содержимое контекстного меню «Файл»

Нам нужен выделенный пункт

  • В открывшемся списке находим кнопку Export HTTP и кликаем по ней.
  • Затем нажимаем на кнопку Save All.

Окно сохранения HTTP-запросов в Wireshark

У меня тут пустовато, а у вас данных наверняка будет побольше

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

Как использовать диагностику?

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

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

Кнопка, ведущая в меню анализа ошибок подключения

Как только появятся какие-то ошибки, связанные с сетевыми пакетами, эта иконка поменяет цвет на желтый

Список ошибок в Wireshark

У меня все в порядке и нет никаких проблем. Опять же, у вас в этом списке может быть куча ошибок

Как использовать фильтры?

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

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

  • ip.dst — фильтр по целевому IP-адресу.
  • ip.src — фильтр по IP-адресу того, кто отправил сетевой пакет.
  • ip.addr — IP-адрес того, кто отправил пакет или принял его.
  • ip.proto — протокол, использовавшийся при передаче сетевого пакета.

Более того, при фильтрации данных можно использовать операторы. Например:

ip.dst == IP-адрес — оператор == в этом случае обозначает, что целевой IP-адрес должен равняться указанному. Вместо равенства используются и другие операторы.

ip.src != *IP-адрес — это значит, что IP-адрес отправителя не должен соответствовать указанному.

< — меньше указанного значения. >— больше указанного значения. contains — содержит в себе указанное значение.

Чтобы работать с фильтрами нужно:

  • Открыть меню Expressions в правой части интерфейса Wireshark.

Панель инструментов в приложении Wireshark

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

  • Выбрать тип фильтра в левой панели.
  • Указать оператор в правой панели.
  • Указать значения для сопоставления с фильтром в поле value.
  • Затем нажать на кнопку ОК.

Окно настройки фильтров в Wireshark

Опять же можно все прописать вручную в строке под поиском

  • После этого нужно нажать на белую стрелку в квадрате, которая появится слева от кнопки Expressions.
Читайте также:
Что за программа swf

Главное окно Wireshark с настроенной фильтрацией

Пропускаем все сетевые пакеты через наш новый фильтр

Теперь в списке пакетов будут отображаться только те, что соответствуют критериям фильтрации.

Источник: tehnichka.pro

Wireshark — подробное руководство по началу использования

Логотип программы

Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

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

2. Как установить Wireshark?

Для начала нам необходимо скачать и установить программу Wireshark. Так как программа распространяется под лицензией GNU GPL v2 (т.е. может свободно распространяться), то несложно найти любую версию программы в свободном доступе. В руководстве мы будем использовать функционал более ранней версии программы (1.12.3). Это вызвано тем, что в этой версии сразу встроен протокол SSL, который используется в главе 6. Установка более ранней версии облегчает подготовку к работе с программой, поэтому мы выбрали её. Найти установщик можно на официальном сайте.

Дальнейшая установка программы проста – нажимаем «Next» — «Next» — «Next».

Установка программы

После успешной установки на Вашем рабочем столе появится ярлык Wireshark. Мы можем приступать к рассмотрению функционала!

Ярлык программы на рабочем столе

3. Как пользоваться программой Wireshark?

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

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

Стартовое меню

Из всего этого нам необходимо обратить внимание на эту область программы.

Область захвата трафика сетевого интерфейса

Здесь нужно выбрать тот сетевой интерфейс, через который Вы подключены к Интернету.

Сетевой интерфейс – это программное обеспечение, которое взаимодействует с сетевым драйвером и с уровнем IP. Он обеспечивает уровню IP доступ ко всем имеющимся сетевым адаптерам, трафик которых мы будет перехватывать. Чаще всего в программе Wireshark можно встретить сетевой интерфейс беспроводной (Wi-Fi) и кабельный (Ethernet).

В руководстве используется Wi-Fi, поэтому мы выполняем захват «Беспроводной сети», после чего нажимаем «Start».

Если Вы выбрали правильный интерфейс, то сможете увидеть следующее.

Обзор начала захвата трафика

Рассмотрим подробнее это окно по пунктам, указанным на нём:

  1. Панель фильтров, позволяющая найти необходимую информацию. Подробнее о неё рассказано в пятой главе руководства.
  2. Панель наименований, разделяющая информацию из пункта 3 на номер, временя с начала захвата трафика, источник и адресат, а также используемый протокол, размер пакета и небольшую информацию о сетевом пакете.
  3. Панель пакетов, обновляющаяся в реальном времени. Здесь информация о пакетах разделена по столбцам, определённым на панели наименований.
  4. Панель уровней, описывающая уровни модели OSI выбранного сетевого пакета.
  5. Панель метаданных, представляющая данные в шестнадцатеричном коде и символах.

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

4. Как найти скрытую информацию?

Перед началом анализа трафика необходимо иметь базовые знания о протоколах сетевой модели OSI. Достаточно прочитать статью в Википедии.

Во многих программах для передачи информации используется протокол HTTP, который позволяет получать различные ресурсы из Интернета и обратно. Рассмотрим один из пакетов, переданных по протоколу HTTP.

Обзор пакета HTTP

В протоколе HTTP для передачи данных используются запросы GET (предназначен для получения данных) и POST (предназначен для отправки данных).

На рисунке в поле 1 мы видим IP-адрес адресата (в данном случае, это адрес моего компьютера). В поле 2 мы узнаём, что сервер антивируса послал запрос GET для того, чтобы запросить некоторые данные о моём компьютере. Это необходимо для корректного обновления программы. И в поле 3 мы видим то, как выглядит этот запрос в виде URL (Интернет-ссылки).

Небольшое домашнее задание!

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

5. Как среди всех пакетов найти необходимые?

При выполнении домашнего задания у Вас могла возникнуть проблема нахождения необходимого пакета. Для её решения в программе Wireshark есть решение – фильтрация! В специальном поле «Filter» можно ввести необходимые команды или воспользоваться подсказками.

Обзор поля

Чаще всего используется фильтрация по IP-адресам, по номерам порта и по протоколам. Давайте посмотрим, как это происходит.

Фильтрация по IP-адресу позволяет нам просматривать все пакеты, приходящие от кого-либо или уходящие кому-либо. Например, отберём все пакеты, приходящие от IP-адреса 10.1.30.46 с помощью ввода в фильтре «ip.src == x.x.x.x».

Обзор команды

Также можно отфильтровать трафик сети по IP-адресу получателя пакетов с помощью команды «ip.dst == x.x.x.x».

Обзор команды

Кроме того, можно увидеть пакеты вне зависимости от направления трафика с помощью «ip.addr == x.x.x.x».

Обзор команды

Для фильтрации по номеру порта используется «.port = x» после названия протокола. Например, для просмотра TCP-порта 80, используемого для незашифрованного трафика HTTP, используем команду «tpc.port == 80».

Обзор команды

И, наконец, для фильтрации трафика по используемым пакетами протоколам необходимо просто ввести название протокола.

Обратите внимание, что фильтры можно комбинировать при помощи логических операторов И «and/», ИЛИ «or/||» и НЕ «not/!»

Обзор логических операторов

Снова домашнее задание!

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

6. Как перехватить данные, передающиеся по защищённым каналам связи?

Разобравшись с основным функционалом Wireshark, мы можем приступить к более сложному и полезному.

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

Иногда пользователю или системного администратору необходимо проверить трафик на наличие подозрительной активности или на корректную работу программы. Из-за этого возникает необходимость расшифровывать перехваченный защищённый трафик.

Для начала разберёмся в том, как работает протокол SSL/TLS. Перед обменом шифрованными данными используется процесс установки соединения, также называемый рукопожатием.

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

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

Наиболее распространённым алгоритмом обмена сеансовым ключом является RSA. Рассмотрим инфографику, описывающую механизм работы алгоритма.

Алгоритм обмена сеансовым ключом RSA

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

Теперь попробуем перехватить защищённую информацию в программе Wireshark. Выполним подготовительные действия, а именно проверим используемый для согласования сеансовых ключей алгоритм и настроим браузер. Для начала находим рукопожатие с помощью фильтра, введя «ssl.handshake», и проверяем сообщение сервера.

Обзор команды

В поле «Cipher Suite» мы можем увитель «TLS_RSA». Это значит, что мы можем приступать к дальнейшим действиям.

Настройка браузера в операционной система Windows довольно проста. Открываем свойства компьютера, затем «Дополнительные параметры системы» и выбираем «Переменные среды…».

Настройка браузера в Windows 10

Добавляем новую пользовательскую переменную «SSKEYLOGFILE» и указываем путь до файла, куда мы ходим его сохранять.

Рассмотрим ответное сообщение клиента: оно содержит зашифрованное значение предварительного секрета текущей сессии.

Ответное сообщение клиента

Далее переходим к настройке программы Wireshark. Комбинацией клавиш «Ctrl+Shift+P» открываем меню «Preferences», затем раскрываем ветку «Protocols» и выбираем «SSL».

Настройка Wireshark

Проверяем установку необходимых полей, показанных на картинке, и жмём кнопку «Edit». В появившемся окне нажимаем на кнопку «New» и заполняем следующие поля: IP Address (IP-адрес SSL-сервера), Port (порт SSL-сервера), Protocol (протокол, использующий шифрацию SSL. При неизвестном указывать data), Key File (путь к файлу с секретным ключом сервера, который мы указывали в Переменных средах) и Password (если секретный ключ защищён паролем).

Читайте также:
Mf toolbox что за программа

Настройка SSL в Wireshark

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

Закрепление пройденного материала!

Попробуйте самостоятельно подключиться к серверу какого-либо сайта и посмотреть, какими пакетами обменивается Вам компьютер с ним.

7. Какие возможности даёт захват защищённого трафика?

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

Для начала повторяем действия из предыдущего пункта, но в качестве IP-адреса SSL-сервера указываем адрес необходимого сайта. Для передачи паролей зачастую используется протокол передачи данных HTTP. О используемых в нём методах мы уже говорили в главе 4. Чтобы использовать фильтрацию HTTP-трафика по методам, можно использовать команду «http.request.method == “название метода”». Так как мы хотим перехватить данные, отправленные клиентом на сервер, то будем рассматривать POST-запросы. Для этого применим фильтр «http.request.method == “POST”».

Захват защищённого трафика

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

Небольшая практика!

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

Скорее всего, важные данные будут зашифрованы. Таким способом почтовый сервис защищает Ваши данные, но риск взлома всё равно остаётся.

8. Как можно соотнести модель OSI и программу Wireshark?

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

OSI – это набор сетевых протоколов, посредством которого различные сетевые устройства взаимодействуют друг с другом. Модель определяет семь уровней взаимодействия систем. Рассмотрим таблицу уровней модели OSI.

Источник: habr.com

Начинаем плаванье

Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.

После чего и начнется процесс захвата, причем прилетевшие пакеты будут появляться в реальном времени.
В процессе рассмотрения и изучения пакетов бывают ситуации, когда нужно вернуться предыдущему пакету. Для этого есть две кнопки (см скриншот).
А следующая за ними кнопка позволяет сделать быстрый переход к пакету, указав его номер.
В случае если колонки перекрываются и наползают друг на друга, можно кликнуть по такой колонке правой кнопкой мыши и выбрать “Resize Column”.
Произойдет автоматическая подгонка размеров под текущую ситуацию.
И кроме того, есть кнопка “Resize all Columns”, которая приведет в порядок все колонки.
Используя меню View – Time Display Format, можно, например, настроить, чтобы отсчет времени шел не с начала захвата, а с момента получения предыдущего пакета (Since Previous Captured Packet).
Самое важное в каждой программе (Help – About Wireshark) покажет не только версию и список авторов, но и содержит закладку Folders, которая покажет пути размещения каталогов с конфигурациями.
Изучая интерфейс, можно выбрать, например, пакет http, и увидеть, что HTTP инкапсулируется в TCP (транспортный уровень), TCP инкапсулируется в IP (сетевой уровень), а IP в свою очередь инкапсулируется в Ethernet (перед этим даже мелькает 802.1Q).
И на самом верху идет нечто вроде небольшого обзора собранной информации о кадре.
Про фильтры мы поговорим дальше, а на данном этапе, если нужно быстро отфильтровать лишние пакеты, достаточно сделать правый клик на пакете, выбрать меню Apply as Filter – Not selected и изменения сразу же вступят в силу.
Если нужно еще что-то убрать, то в следующий раз выбирать “and not Selected”, и новое правило просто добавится к фильтру.

Убираем заусенцы

Довольно часто при работе с Wireshark возникает ошибка IP checksum offload – ошибка контрольной суммы заголовка IP пакета.
Современные сетевые карты насколько умные, что сами считают контрольную сумму, зачем это делать на уровне стека TCP/IP программно, если можно делать хардварно.
А Wireshark натурально перехватывает пакеты, до того как они попадают в сеть.
И до того как эта сумма была просчитана и была добавлена в заголовок пакета.
Соответственно есть два пути решения этой проблемы — выключать функцию offload в настройках сетевой карты или в настройках сниффера указать, чтобы он не обращал внимание на это значение.
Хардваные функции зачастую лучше софтварных, в основном из-за скорости обработки (в железе обычно выше) поэтому лучше изменить настройки самого сниффера.
Для этого нужно зайти в настройки (Edit — Preferences), затем Protocols – IPv4 – и снять флаг с “Validate IPv4 checksum if possible”.
Перед тем как захватывать трафик нужно определиться с тем, что, собственно, нужно захватывать.
Разместить анализатор трафика можно в нескольких местах:

  • Локально на своем хосте;
  • Организовать зеркалирование трафика на коммутаторе;
  • Подключаться непосредственно в интересующие места;
  • или же отравление протокола ARP (еще более незаконно, чем пассивное прослушивание трафика)

Фильтруем поток

Wireshark содержит два вида фильтров – захвата (Capture Filters) и отображения (Display Filters).
Вначале рассмотрим Capture Filters.
Как можно догадаться по названию, они служат для фильтрации еще на этапе захвата трафика.
Но в таком случае, безусловно, можно безвозвратно потерять часть нужного трафика.
Фильтр представляет собой выражение, состоящее из встроенных значений, которые при необходимости могут объединяться логическими функциями (and, or, not).
Для того, чтобы его задействовать, нужно зайти в меню Сapture, затем Options, и в поле Capture Filter набрать, например, host 8.8.8.8 (или, например, net 192.168.0.0./24)
Так же, конечно, можно выбрать и заранее созданный фильтр (за это отвечает кнопка Capture Filter).
В любом из вариантов фильтр появится возле интерфейса, можно жать Start.
Теперь перейдем к Display Filters.
Они фильтруют исключительно уже захваченный трафик.
Что можно фильтровать?
— Практически все — протоколы, адреса, специфические поля в протоколах.
Операции, которые можно использовать при построении фильтров:

Команда Значение Пример использования
== равенство ip.dst == 193.168.3.10
!= Не равно udp.dst != 53
меньше чем ip.ttl < 24
> больше чем frame.len > 10
меньше или равно frame.len
>= больше или равно tcp.analysis.bytes_in_flight >= 1000
matches регулярные выражения frame matches «[Pp][Aa][Ss][Ss]»
contains содержит dns.resp.name contains google

Как вы, наверное, заметили, в таблице в качестве примеров были разнообразные выражения, достаточно понятные и зачастую говорящие сами за себя.
Например, ip.dst – это поле протокола IP.
Чтобы увидеть это поле, можно просто посмотреть на пакет, и в нижней части окна можно увидеть его значение, которое потом можно применять в любом фильтре.
Например, нас интересует, как создать фильтр, где будет проверяться значение TTL.
Для этого раскрываем L3 часть и становимся на соответствующее поле:
И видим, что для построения фильтра, нужно использовать выражение ip.ttl.
Если начать набирать фильтр, то после точки автоматически появится список возможных значений:
Чтобы применить фильтр, достаточно нажать enter или кнопку Apply.
Само поле для ввода фильтра может менять цвет в зависимости от того, что было набрано.
Зеленый цвет означает, что все в порядке. Красный — допущена ошибка, желтый — получен неожиданный результат, потому что существуют другие варианты написания фильтра (например можно написать ip.dst != 8.8.8.8 или же !ip.dst == 8.8.8.8, именно второй вариант более предпочтительный).
Фильтры можно сохранять для дальнейшего использования, нажав кнопку Save, затем ввести произвольное название
и после нажатия на кнопку ОК фильтр появится как кнопка на панели.
А если кликнуть на расположенную неподалеку кнопку «Expression…», то откроется достаточно мощный конструктор выражений, по которому можно чуть ли не изучать сетевые протоколы. Количество поддерживаемых протоколов постоянно увеличивается.
Как уже упоминалось ранее, можно выделить любой пакет и в контекстном меню выбрать Apply as Filter и в подменю выбрать режим — selected или not selected и соответственно сразу же появится фильтр, который будет показывать только выбранное или наоборот уберет выбранное с экрана.
Таким образом можно гибко выбирать, что видеть на экране, а что — нет.
Это может быть определенный ip-адрес, ttl, порт, dns ответ и многое другое.
Кроме того, есть два варианта для таких быстрых фильтров — Prepare as Filter и Apply as Filter.
Как можно догадаться по названию — разница заключается в том, что в первом случае только появится в поле для ввода Display Filter, но не применится (удобно, если например, добавлять таким способом несколько фильтров, а затем сразу применить готовый результат), а во втором — сразу же и применится.
Фильтры можно объединять, используя знакомые по булевой алгебре логические операции:

Читайте также:
Metro программа что это

(dns) (http)
(dns) || (http)

это логическое или
Таким образом можно строить большие и сложные фильтры вроде:

(tcp.flags.syn==1) (ip.src == 172.16.10.2) (ip.dst == 172.16.10.1)

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

Ныряем глубже

Достаточно частая ситуация, когда возникают жалобы на медленную работу сети, причин этого может быть множество.
Попробуем разобраться, в чем может быть причина, и рассмотрим два способа.
Первый состоит в добавлении колонки TCP delta.
Открываем пакет, находим поле Time since previous frame in this TCP frame, правый клик и выбираем Apply as Column. Появится новая колонка.
На ней можно кликнуть правой кнопкой мыши и выбрать режим сортировки, например, Sort Descending.
И сразу же рассмотрим второй способ.
Относительно недавно (в версии 1.10.0) появился фильтр tcp.time_delta, который, собственно, учитывает время с момента последнего запроса.
Если клиент делает запрос и получает ответ через 10 миллисекунд, и клиент говорит, что у него все медленно работает, то, возможно, проблема у самого клиента.
Если же клиент делает запрос и получает ответ через 2-3 секунды, тут уже, возможно, проблема кроется в сети.

Еще глубже

Если посмотреть в TCP пакет (или сегмент если быть точным), то можно увидеть там Stream index, который начинается обычно с нуля.
Само поле будет называться tcp.stream.
По нему можно сделать правый клик и создать фильтр.
Таким образом можно фильтровать нужные соединения.
Еще один способ – сделать правый клик на самом пакете, выбрать Conversation Filter и создать фильтр для l2 l3 l4 уровня соответственно.
В итоге мы опять увидим взаимодействие двух хостов.
И третий вариант — это одна из самых интересных фич — Follow TCP Stream.
Для того чтобы его задействовать, нужно опять таки кликнуть правой кнопкой мыши на пакете и выбрать “Follow TCP Stream”. Появится окно, где будет наглядно продемонстрирован весь обмен между двумя узлами.
Если же зайти в меню Statistics – Conversations, то, выбирая закладки, можно увидеть статистику по таким “разговорам” и различные сессии, при этом можно отсортировать их по различным колонкам, например, по количеству переданных данных.
И прямо в этом окне можно правой кнопкой взывать контекстное меню и опять же применить как фильтр.

Со временем приходит опыт

После некоторого времени, проведенного за захватом разнообразного трафика, можно заметить какую-то шарообразную кнопку в нижнем левом углу, которая еще иногда меняет цвет.
Нажатие на эту кнопку приведет к открытию окна Expert Infos.
Того же результата можно добиться, пройдя в меню Analyze – Expert Info.
В этом окне будет содержаться информация по найденным пакетам, разбитая на группы Errors, Warnings, Notes и Chats.
Цветовая раскраска для этих групп выглядит следующим образом:
Ошибки — красный цвет
Предупреждения — желтый
Примечания — сине-зелёный (cyan)
Чат — серый
Wireshark содержит в себе мощный анализатор и умеет автоматически обнаруживать большое количество проблем, возникающих в сети.
Как вы уже могли заметить, буквально везде можно использовать фильтры и Expert Info не является исключением.
Для того чтобы создать такой фильтр, нужно использовать конструкцию expert.severity.
Например, expert.severity==error.

Грабим трафик!

Можно ли с помощью Wireshark узнать, что было скачано?
Да, можно. И сейчас это увидим.
Вначале возьмем HTTP трафик.
Сделаем правый клик по HTTP пакету — Protocol Preferences – и видим тут массу опций, которые непосредственно влияют на извлечение файлов из веб трафика.
Для того чтобы увидеть, что можно извлечь из текущего дампа нужно перейти в меню File – Export Objects – HTTP.
Появится окно, которое покажет все захваченные http объекты — текстовые файлы, картинки и т.д. Для того чтобы вытащить любой файл из этого списка, достаточно просто выделить его и нажать Save As.
Как можно заметить, рисунок был извлечен без каких-либо проблем.
Таким же способом, можно извлекать и потоковое видео/аудио.
Но на этом возможности Wireshark не заканчиваются!
Он умеет вытаскивать файлы и с протокола FTP.
Для этого можно использовать знакомый уже Follow TCP Stream.
В итоге отобразится только обмен по протоколу FTP, в котором нужно будет найти строку RETR, что собственно и будет означать передачу файла.
Затем опускаемся дальше, находим пакеты уже непосредственно с файлом (FTP-DATA) и опять выбираем Follow TCP Stream, видим содержимое файла, жмем Save As и сохраняем.

VoIP

Wireshark имеет несколько встроенных функций для работы с этой технологией.
Он поддерживает массу голосовых протоколов — SIP, SDP, RTSP, H.323, RTCP, SRTP и другие.
И, конечно же, умеет перехватывать и сохранять голосовой трафик для дальнейшего прослушивания.
Этот функционал как нельзя лучше подойдет для траблшутинга в сетях Voice over IP.
Меню Statistics — Flow Graph покажет наглядную картину, как происходил весь обмен пакетами.
А вообще целое меню Telephony отведено для работы с голосовым трафиком.
Например, Telephony – RTP – Show All Streams покажет подробно, что происходило с RTP, в частности jitter (параметр, который, вероятно, самый важный в голосе), что иногда сразу скажет о наличии проблем.
Нажав на кнопку “Analyze”, можно открыть окно RTP stream Analysis – и, выбрав там поток, можно его даже проиграть, используя кнопку player.
Сначала отроется окно проигрывателя, в котором вначале нужно установить подходящее значение jitter и использовать кнопку decode.
Появится нечто похожее на анализатор спектра, в котором можно отметить требуемый разговор, и после этого кнопка Play станет активной.
Так же существует еще один способ прослушивания голосовых звонков — можно зайти в меню Telephony – VoIP Calls.
Откроется окно со списком совершенных звонков, где опять же можно нажать кнопку player, отменить нужные разговоры флажками и нажать play.
Для того чтобы добиться приемлемого качества звучания, потребуется проиграться со значением поля jitter buffer, меняя его значение.

Небольшое отступление

Некоторое время назад появился сайт CloudShark.org.
Это тот самый сниффер Wireshark, но реализованный в виде онлайн-сервиса. Очевидно, что с его помощью не удастся захватывать сетевой трафик, но выполнять анализ дампа трафика – вполне. Загрузив туда через форму PCAP-файл на анализ, можно будет получить четкую последовательность пакетов, в которой всё данные будут разбиты на понятные поля в зависимости от протокола. В общем, тот же Wireshark, но немного облегченный и доступный из любого браузера.

Финальная битва

Напоследок рассмотрим как выглядит сканирование портов (sinister не был бы самим собой, если бы не коснулся темы ИБ).
Смотрим на дамп и видим, что вначале происходит ARP запрос и затем непосредственно начинается сканирование. Адрес нашего маршрутизатора 192.168.10.11, сканирование идет с адреса 192.168.10.101
Это, так называемое, SYN сканирование, когда идут SYN-пакеты на указанный диапазон портов. Так как большинство портов закрыто, маршрутизатор отвечает пакетами RST, ACK.
Пролистав чуть ниже видим, что открыт telnet (tcp 23).
На это указывает то, что маршрутизатор ответил пакетом SYN, ACK.
К слову, для фильтрации портов в сниффере можно использовать конструкции вида: tcp.srcport, tcp.dstport и tcp.port. Для протокола UDP всё аналогично — udp.srcport, udp.dstport, udp.port.

Итоги

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru