Основные возможности Wireshark
Перед тем, как переходить к рассмотрению способов анализа трафика, нужно рассмотреть, какие возможности поддерживает программа более подробно, с какими протоколами она может работать и что делать. Вот основные возможности программы:
- Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
- Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
- Пакеты можно отсеивать по множеству параметров с помощью фильтров;
- Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
- Поддержка захвата трафика VoIP-звонков;
- Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
- Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
- Отображение статистики нагрузки на сеть;
- Просмотр содержимого пакетов для всех сетевых уровней;
- Отображение времени отправки и получения пакетов.
Программа имеет множество других функций, но это были те основные, которые могут вас заинтересовать.
5 / 5 ( 1 голос )
Ofitsialnaya-versiya.org
Вот и обновился Wireshark для компьютера — бесплатная программа для анализа трафика компьютерных сетей (Ethernet, FDDI, PPP, Token-Ring и других). От других подобных приложений программа Вайршарк отличается наличием графического пользовательского интерфейса и большими возможностями по сортировке и фильтрации информации.
Официальный Wireshark умеет работать со множеством форматов входных данных, и умеет открывать файлы данных, захваченных другими программами, что расширяет его возможности. Программа поддерживает различные сетевые протоколы, как например DNS, FDDI, ftp, HTTP, ICQ, IPV6, IPX, IRC, MAPI, MOUNT, NETBIOS, NFS, NNTP, POP, PPP, TCP, TELNET, X25 и позволяет досконально анализировать сетевые пакеты, отображая значение каждого поля протокола любого уровня.
Основные возможности бесплатного Wireshark 2020 года: |
|
|
|
|
|
|
|
|
Подробно:
Программа дает возможность пользователю просматривать весь сетевой трафик в режиме реального времени, используя сетевую карту в «неразборчивом» режиме. Русский Wireshark для Windows понимает структуру многих сетевых протоколов, и поэтому позволяет разобрать сетевой пакет, отображая значение каждого поля протокола любого уровня.
Кроме того, благодаря возможности работы с различными форматами входных данных, приложение Wireshark на русском языке умеет открывать файлы данных, захваченных другими программами, что расширяет его функционал.
По ссылкам ниже можно скачать программу Wireshark бесплатно. Будем рады если оцените программу звёздами вверху страницы, напишите комментарий или поделитесь с друзьями публикацией через социальные сети. Надеемся видеть Вас в числе постоянных посетителей нашего сайта бесплатных программ. |
[свернуть]
Изменения последней версии Wireshark 3.3.0:
Обновлено: |
|
|
|
Исправлено: |
|
[свернуть]
Версия | Wireshark 3.3.0 |
Статус | Бесплатно |
Операционная система | Windows 10, 8.1, 8, 7, Vista, XP |
Интерфейс | Русский |
Разработчик | Wiresharк Foundation |
Обновлено | 16.09.2020 |
Категория | Сеть |
Безопасность | Проверен Virus Total |
скачать Верешарк
с официального сайта скачать Wireshark 32 bit
с официального сайта скачать Wireshark 64 bit
с официального сайта скачать Wireshark Portable
[свернуть]
- VNC Connect 6.7.2
- Самоучитель Linux для пользователя
- Adobe Photoshop CC 2020
- Linux Mint 19 Rus
Как пользоваться Wireshark
Я предполагаю, что программа у вас уже установлена, но если нет, то вы можете ее установить из официальных репозиториев. Для этого наберите команду в Ubuntu:
sudo apt install wireshark
После установки вы сможете найти программу в главном меню дистрибутива. Запускать Wireshark нужно с правами суперпользователя, потому что иначе она не сможет анализировать сетевые пакеты. Это можно сделать из главного меню или через терминал с помощью команды для KDE:
kdesu wireshark
А для Gnome / Unity:
gksu wireshark
Главное окно программы разделено на три части: первая колонка содержит список доступных для анализа сетевых интерфейсов, вторая — опции для открытия файлов, а третья — помощь.
Анализ сетевого трафика
Для начала анализа выберите сетевой интерфейс, например 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.125 (losst.ru). Наберите строку в поле фильтра и нажмите Apply. Для удобства фильтры Wireshark можно сохранять с помощью кнопки Save:
ip.dst == 194.67.215.125
А чтобы получить не только отправленные пакеты, но и полученные в ответ от этого узла, можно объединить два условия:
ip.dst == 194.67.215.125 || ip.src == 194.67.215.125
Дальше отберём пакеты с ttl меньше 10:
ip.ttl < 10
Также мы можем отобрать переданные большие файлы:
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:
http || dns
Еще одна интересная возможность программы — использование Wireshark для отслеживания определённого сеанса между компьютером пользователя и сервером. Для этого откройте контекстное меню для пакета и выберите Follow TCP stream.
Затем откроется окно, в котором вы найдете все данные, переданные между сервером и клиентом:
Диагностика проблем Wireshark
Возможно, вам интересно, как пользоваться Wireshark 2.0 для обнаружения проблем в сети. Для этого в левом нижнем углу окна есть круглая кнопка, при нажатии на неё открывается окно Expet Tools. В нём Wireshark собирает все сообщения об ошибках и неполадках в сети:
Окно разделено на такие вкладки, как Errors, Warnings, Notices, Chats. Программа умеет фильтровать и находить множество проблем с сетью, и тут вы можете их очень быстро увидеть. Здесь тоже поддерживаются фильтры Wireshark.
Анализ трафика Wireshark
Вы можете очень просто понять, что именно скачивали пользователи и какие файлы они смотрели, если соединение не было зашифровано. Программа очень хорошо справляется с извлечением контента.
Для этого сначала нужно остановить захват трафика с помощью красного квадрата на панели. Затем откройте меню File -> Export Objects -> HTTP:
Далее в открывшемся окне вы увидите все доступные перехваченные объекты. Вам достаточно экспортировать их в файловую систему. Вы можете сохранять как картинки, так и музыку.
Дальше вы можете выполнить анализ сетевого трафика Wireshark или сразу открыть полученный файл другой программой, например плеером.
Wireshark — приручение акулы
Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга. Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров. Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org. Установка в системе Windows тривиальна — next, next, next. Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.
Зачем вообще нужны анализаторы пакетов? Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем. Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов. Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.
Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать 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 <= 0x20 |
>= | больше или равно | 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, но не применится (удобно, если например, добавлять таким способом несколько фильтров, а затем сразу применить готовый результат), а во втором — сразу же и применится.
Фильтры можно объединять, используя знакомые по булевой алгебре логические операции: (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 и сохраняем.
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, но немного облегченный и доступный из любого браузера.
Напоследок рассмотрим как выглядит сканирование портов. Смотрим на дамп и видим, что вначале происходит 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.
Мы пробежались по самым основным частям функционала лучшего анализатора пакетов. Получилось несколько сумбурно, вероятно, потому что хотелось затронуть как можно больше его возможностей и не упустить ничего важного. Оказалось, что анализатор пакетов, как отладчик и дизассемблер, демонстрирует мельчайшие подробности работы сети и сетевых протоколов. Используя Wireshark и обладая необходимыми знаниями (которые можно почерпнуть изучив серию Сетей для Самых Маленьких на сайте linkmeup.ru) можно достаточно эффективно находить и диагностировать разнообразные проблемы, возникающие в сети.
В процессе написания использовались материалы сайта wiki.wireshark.org Дампы с трафиком брались из разных источников, больше всего с сайта packetlife.net
Выводы
В этой статье мы рассмотрели, как пользоваться Wireshark 2 для анализа сетевого трафика, а также примеры решения проблем с сетью. Это очень мощная утилита, которая имеет очень много функций. Всю её функциональность невозможно охватить в одной статье, но приведенной здесь базовой информации будет вполне достаточно, чтобы вы могли сами освоить всё необходимое.
Похожие записи:
- Как установить Tor Browser на Ubuntu
29 октября, 2016
- Песочница программ Linux
18 ноября, 2016
- Как установить ClamAV в Ubuntu
10 января, 2017
- Шифрование usb флешки
5 августа, 2017
Перехват трафика
Что касается перехвата трафика, то он может быть осуществлен различными способами. К примеру, как уже упоминалось, при помощи прослушивания сетевого интерфейса, также одним из способов может быть атака на сетевом уровне либо на канальном, которая перенаправляет трафик на сниффер с дальнейшим возвращением его в необходимый адрес. Подключение определенного сниффера в разрыв канала, например Wireshark. Что нам дает анализ трафика, прошедший через сниффер? Первым делом его задачей стоит получить необходимую, закрытую информацию, путем перехвата незашифрованного, а изредка и зашифрованного пользовательского трафика. Также, при помощи специально разработанных снифферов можно выявить вредоносное ПО и «зараженный» трафик, который является причиной торможения каналов связи. Еще одной задачей можно назвать уточнение причины неисправности сети.
Руководство и шпаргалка по Wireshark
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:
Устранение неполадок сетевого подключения
- Визуальное отображение потери пакетов
- Анализ ретрансляции TCP
- График по пакетам с большой задержкой ответа
Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)
- Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
- Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
- Просмотр трафика SMTP и POP3, чтение писем
Устранение неполадок DHCP с данными на уровне пакетов
- Изучение трансляций широковещательного DHCP
- Второй шаг обмена DHCP (DHCP Offer) с адресом и параметрами
- Клиентский запрос по предложенному адресу
- Ack от сервера, подтверждающего запрос
Извлечение файлов из сессий HTTP
- Экспорт объектов из HTTP, таких как JavaScript, изображения или даже исполняемые файлы
Извлечение файлов из сессий SMB
- Аналогично опции экспорта HTTP, но извлечение файлов, передаваемых по SMB, протоколу общего доступа к файлам в Windows
Обнаружение и проверка вредоносных программ
- Обнаружение аномального поведения, которое может указывать на вредоносное ПО
- Поиск необычных доменов или конечных IP
- Графики ввода-вывода для обнаружения постоянных соединений (маячков) с управляющими серверами
- Отфильтровка «нормальных» данных и выявление необычных
- Извлечение больших DNS-ответов и прочих аномалий, которые могут указывать на вредоносное ПО
Проверка сканирования портов и других типов сканирования на уязвимости
- Понимание, какой сетевой трафик поступает от сканеров
- Анализ процедур по проверке уязвимостей, чтобы различать ложноположительные и ложноотрицательные срабатывания
Эти примеры — только вершина айсберга. В руководстве мы расскажем, как использовать столь мощный инструмент. Wireshark работает на различных операционных системах и его несложно установить. Упомянем только Ubuntu Linux, Centos и Windows.
Установка на Ubuntu или Debian
#apt-get update #apt-get install wireshark tshark
Установка на Fedora или CentOS
#yum install wireshark-gnome
Установка на Windows
На странице загрузки лежит исполняемый файл для установки. Довольно просто ставится и драйвер захвата пакетов, с помощью которого сетевая карта переходит в «неразборчивый» режим (promiscuous mode позволяет принимать все пакеты независимо от того, кому они адресованы). С первым перехватом вы увидите в интерфейсе Wireshark стандартный шаблон и подробности о пакете. Как только захватили сессию HTTP, остановите запись и поиграйте с основными фильтрами и настройками Analyze | Follow | HTTP Stream
.
Названия фильтров говорят сами за себя. Просто вводите соответствующие выражения в строку фильтра (или в командную строку, если используете tshark). Основное преимущество фильтров — в удалении шума (трафик, который нам не интерестен). Можно фильтровать трафик по MAC-адресу, IP-адресу, подсети или протоколу. Самый простой фильтр — ввести http, так что будет отображаться только трафик HTTP (порт tcp 80)
.
Примеры фильтров по IP-адресам
ip.addr == 192.168.0.5 !(ip.addr == 192.168.0.0/24)
Примеры фильтров по протоколу
tcp udp tcp.port == 80 || udp.port == 80 http not arp and not (udp.port == 53) Попробуйте сделать комбинацию фильтров, которая показывает весь исходящий трафик, кроме HTTP и HTTPS, который направляется за пределы локальной сети
. Это хороший способ обнаружить программное обеспечение (даже вредоносное), которое взаимодействует с интернетом по необычным протоколам. Как только вы захватили несколько HTTP-пакетов, можно применить на одном из них пункт меню
Analyze | Follow | HTTP Stream
. Он покажет целиком сессию HTTP. В этом новом окне вы увидите HTTP-запрос от браузера и HTTP-ответ от сервера.
По умолчанию Wireshark не резолвит сетевые адреса в консоли. Это можно изменить в настройках.
Edit | Preferences | Name Resolution | Enable Network Name Resolution
Как и в случае tcpdump, процедура резолвинга замедлит отображение пакетов. Также важно понимать, что при оперативном захвате пакетов DNS-запросы с вашего хоста станут дополнительным трафиком, который могут перехватить.
Если вы ещё не баловались с tshark, взгляните на наше руководство с примерами фильтров. Эту программу часто игнорируют, хотя она отлично подходит для захвата сессий на удалённой системе. В отличие от tcpdump, она позволяет на лету захватывать и просматривать сессии прикладного уровня: декодеры протоколов Wireshark также доступны для tshark. Вот быстрый способ создания правил из командной строки, чтобы не искать в интернете конкретный синтаксис. Выберите подходящее правило — и перейдите в
Tools | Firewall ACL Rules
. Поддерживаются различные файрволы, такие как Cisco IOS, ipfilter, ipfw, iptables, pf и даже файрвол Windows через netsh.
Если Wireshark скомпилирован с поддержкой GeoIP и у вас есть бесплатные базы Maxmind, то программа может определять местоположение компьютеров по их IP-адресам. Проверьте в
About | Wireshark
, что программа скомпилирована с той версией, какая у вас в наличии. Если GeoIP присутствует в списке, то проверьте наличие на диске баз GeoLite City, Country и ASNum. Укажите расположение баз в меню
Edit | Preferences | Name Resolution
.
Проверьте систему на дампе трафика, выбрав опцию Statistics | Endpoints | IPv4
. В колонках справа должна появиться информация о местоположении и ASN для IP-адреса.
Другая функция GeoIP — фильтрация трафика по местоположению с помощью фильтра ip.geoip. Например, так можно исключить трафик из конкретной ASN. Нижеуказанная команда исключает пакеты от сетевого блока ASN 63949 (Linode).
ip and not ip.geoip.asnum == 63949 Конечно, тот же фильтр можно применить к отдельным городам и странам. Удалите шум и оставьте только действительно интересный трафик. Один из способов расшифровки сессий SSL/TLS — использовать закрытый ключ с сервера, к которому подключен клиент.
Конечно, у вас не всегда есть доступ к приватному ключу. Но есть другой вариант простого просмотра трафика SSL/TLS на локальной системе. Если Firefox или Chrome загружаются с помощью специальной переменной среды, то симметричные ключи отдельных сеансов SSL/TLS записаны в файл, который Wireshark может прочитать. С помощью этих ключей Wireshark покажет полностью расшифрованную сессию!
Настройка переменной среды
Linux / Mac
export SSLKEYLOGFILE=~/sslkeylogfile.log
Windows
На вкладке System Properties | Advanced
нажмите кнопку
Environment Variables
и добавьте имя переменной (SSLKEYLOGFILE), а в качестве значения — путь к файлу.
Настройка Wireshark
Из выпадающего меню выберите Edit | Preferences | Protocols | SSL | (Pre)-Master-Secret Log Filename — Browse
, указав файл, который вы указали в переменную среды.
Начинайте захват трафика в локальной системе.
Перезапуск Firefox или Chrome
После перехода на сайт HTTPS лог-файл начнёт увеличиваться в размере, поскольку записывает симметричные ключи сессии.
Взгляните на ранее запущенную сессию Wireshark. Вы должны увидеть что-то похожее на скриншот внизу с расшифрованными сессиями. Расшифрованные пакеты — на вкладке в нижней панели.
Другой способ просмотра сеанса — через выпадающее меню Analysis | Follow | Stream | SSL
. Если сеанс успешно расшифрован, вы увидите опцию для SSL.
Разумеется, будьте осторожны при записи этих ключей и пакетов. Если посторонний получит доступ к лог-файлу, то легко найдёт там ваши пароли и куки аутентификации.
Ещё один вариант выхода на базовый HTTP-трафика — использовать инструмент Burp Suite с загруженным сертификатом CA в браузере. В этом случае прокси расшифровывает соединение на стороне клиента, а затем устанавливает новый сеанс SSL/TLS на сервере. Есть много способов проведения такой MiTM-атаки на себя, это два самых простых.
Файлы легко извлекаются через меню экспорта.
File | Export Objects | HTTP
Все найденные файлы отобразятся в новом окне. Отсюда же можно сохранить отдельные файлы или сразу все. Аналогичный метод применяется для извлечения файлов из сессий SMB. Как мы уже упоминали, это протокол Microsoft Server Message Block, который используется для общего доступа к файлам под Windows.
Строка состояния в правой части окна позволяет быстро перейти в нужное место сетевого дампа, щёлкнув по цветовому индикатору. Например, красным цветом в строке состояния помечены пакеты с ошибками. Когда только начинаете работу с Wireshark, хочется посмотреть на какие-нибудь интересные дампы с пакетами. Их можно найти на странице Wireshark Samples. Примеров с разными протоколами там хватит вам на несколько месяцев анализа, есть даже образцы трафика червей и эксплоитов. Внешний вид консоли по умолчанию всячески настраивается. Можно добавлять или удалять столбцы, добавляя даже такие простые вещи как столбец времени UTC, что сразу повышает информативность логов, если анализировать историю пакетов.
Столбцы настраиваются в меню Edit | Preferences | Appearance | Columns
. Там же изменяется общий шаблон, шрифт и цвета.
На видео — полезные советы по настройке окружения, в том числе выявление неполадок по порядковым номерам последовательности TCP.
В комплекте с Wireshark поставляется удобный инструмент командной строки capinfos. Эта утилита генерирует статистику пакетного дампа, с временем начала/окончания записи и другими подробностями. С опцией -T она выдаёт текст с табуляцией — он подходит для импорта в электронные таблицы или анализа в консоли. [email protected]:~$ capinfos test.pcap File name: test.pcap File type: Wireshark/tcpdump/… — pcap File encapsulation: Ethernet File timestamp precision: microseconds (6) Packet size limit: file hdr: 262144 bytes Number of packets: 341 k File size: 449 MB Data size: 444 MB Capture duration: 3673.413779 seconds First packet time: 2018-12-01 11:26:53.521929 Last packet time: 2018-12-01 12:28:06.935708 Data byte rate: 120 kBps Data bit rate: 967 kbps Average packet size: 1300.72 bytes Average packet rate: 93 packets/s SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9 SHA1: d725b389bea044d6520470c8dab0de1598b01d89 Strict time order: True Number of interfaces in file: 1 Эта статья изначально была опубликована в 2011 году, затем серьёзно обновилась. Если у вас есть какие-либо комментарии, улучшения или советы для шпаргалки, пишите мне. Wireshark — один из тех незаменимых инструментов, который многие используют, но мало кто владеет в совершенстве. Тут можно углубляться всё дальше и дальше.
Импровизируем с HTTP-трафиком
Прикладные протоколы, в частности HTTP, — это «вечная» тема в разрезе сниффинга. Справедливости ради нужно сказать, что для исследования веб-трафика создано немало специализированных программных средств. Но и такой универсальный инструмент, как Wireshark, с его гибкой системой фильтрации на этом поприще оказывается совсем не лишним.
Для начала соберем немного веб-трафика, сходив на первый пришедший на ум сайт. Теперь поищем в сообщениях протокола TCP, служащего транспортом для HTTP, упоминания любимого интернет-ресурса:
tcp contains «xakep.ru»
Оператор contains проверяет наличие подстроки в данном поле. Есть еще оператор matches, в нем можно использовать Perl-совместимые регулярные выражения.
Рис. 6. Модификация фильтра отображения на лету
Окошко «Filter Expressions», конечно, хороший помощник, но порой перелистывать длинный список в поисках нужного поля весьма утомительно. Есть более простой способ создания/модификации фильтров отображения: с помощью контекстного меню при просмотре пакетов. Для этого нужно просто кликнуть правой клавишей мыши по интересующему полю и выбрать один из подпунктов пункта «Apply As Filter» или пункта «Prepare a Filter». В первом случае изменения тут же вступят в силу, а во втором — можно будет подкорректировать выражение. «Selected» означает, что значение поля станет новым фильтром, «Not Selected» — то же самое, только с отрицанием. Пункты, начинающиеся с «…», добавляют значение поля к существующему выражению с учетом логических операторов.
Комбинируя различные средства графического интерфейса Wireshark и знание особенностей протокола HTTP, можно легко детализировать до требуемого уровня отображение трафика в главном окне программы.
Например, чтобы посмотреть, какие изображения браузер запрашивал у веб-сервера при формировании страницы, сгодится фильтр, анализирующий содержимое передаваемого серверу URI:
(http.host eq «www.xakep.ru») and ((http.request.uri contains «.jpg») or (http.request.uri contains «.png»))
То же самое, но с использованием matches:
(http.host eq «www.xakep.ru») and (http.request.uri matches «.jpg|.png»)
Разумеется, поля сообщений протоколов разных уровней можно смело смешивать в одном выражении. Например, чтобы узнать, какие картинки данный сервер передал клиенту, используем исходный адрес из IP-пакета и поле «Content-Type» HTTP-ответа:
(ip.src eq 178.248.232.27) and (http.content_type contains «image»)
А с помощью поля HTTP-запроса «Referer» ты сможешь узнать, с каких еще серверов браузер берет контент при формировании страницы любимого сайта:
(http.referer eq «https://www.xakep.ru/») and (not (ip.dst eq 178.248.232.27))
Рассмотрим еще несколько фильтров-полезняшек. Для выборки из трафика HTTP-запросов, сделанных методом GET, можно использовать следующее выражение:
http.request.method == GET
Именно на прикладном уровне фильтры отображения проявляют себя во всей красе и простоте. Для сравнения: чтобы, например, решить эту задачу с помощью Pcap, пришлось бы применить вот такую трехэтажную конструкцию:
port 80 and tcp[((tcp[12:1] & 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»)
Рис. 7. Настройка SSL-сертификата
Использование консольных утилит Wireshark.
Wireshark является самым передовым и широко используемым анализатором сетевых протоколов в мире. Он позволяет видеть, что происходит в Вашей сети на микроскопическом уровне, и является стандартом для многих коммерческих и некоммерческих предприятий, государственных и учебных учреждений Структура программы является полностью модульной и за множество функций отвечают различные утилиты, объединенные GUI – программной оболочкой, которая и называется Wireshark. В статье рассматриваются решение задач связанных с VoIP из консоли сервера CLI. Зачем подобное может понадобиться?
1.Так как на большинстве серверов телефонии GUI нет и в нем нет особой надобности, а возможность выкачивания дампа в другую программную среду есть далеко не всегда.
2.Быстрый и легкий анализ, все фунции анализа имеются в иструментарии на сервере.
3.Постобработка результатов, графический интерфейс является мощным и интерактивным, но с фиксированной функциональностью. CLI в сочетании с другими инструментами позволяет очень гибко работать с полученной информацией.
4.Автоматизация и скриптинг, значительно ускоряет сложные процессы получения необходимой информации и её анализа, особенно если необходимо проанализировать огромное количество дампов собранных за месяц.
Для начала подключимся к нашей станции по протоколу SSH, например, через клиент для Windows Putty.
Забиваем адрес сервера и порт, по умолчанию 22.
Логинимся на сервере под root.
Большинство используемых в данной статье утилит требует превилигированных прав уровня root или администратор.
Первый инструмент, который мы сегодня рассмотрим dumpcap.
Dumpcap — это инструмент сниффинга сетевого трафика. Он позволяет захватывать пакетные данные в режиме реального времени из сети и записывать пакеты в файл. Казалось бы, что данный функционал есть и в Tshark, но есть существенные преимущества данной утилиты:
1.Она намного быстрее, не производится обнаружение и чтение пакета, он просто захватывается и пишется на диск, без вывода.
Меньшее влияние на производительность даже чем tcpdump может быть запущен на постоянной основе.
Функция кольцевого буфера, крайне полезная функция для анализа периодически появляющихся проблем сети. Не нужно больше бояться, что оставив дамп надолго закончится место на жестком диске.
Снимем дамп звонка с помощью dumpcap, синтаксис почти полностью аналогичен tcpdump. Для начала выведем список сетевых интерфейсов командой:
# dumpcap –D
Номер интересующего нас интерфейса 1, можно также указать имя интерфеса, данные действия равнозначны.
# dumpcap –i 1 –s 0 –w /tmp/call.pcap
Напоминаю –i указание интефейса, -s глубина захвата, 0 – захватывать все, -w путь сохранения файла дампа.
И посмотрим его содержимое tshark командой:
# tshark –r /tmp/call.pcap
Для записи постоянного кольцевого файла трассировки используется ключ –b, указывающий размер дампов filesize:16384 (16 мб) и files:1024 указывающий максимальное количество (1024). Если перемножить данные показатели мы увидим, что кольцевой дамп не может превышать, в данном примере, 16 гб.
# dumpcap -i 1 –s 0 -b filesize:16384 files:1024 -w /tmp/ring.cap
Для включения дампа на долший период времени и возврат к управления консолью используется ключ –q – запуск в режиме фонового приложения.
# dumpcap -i 1 –s 0 -b filesize:16384 files:1024 -w /tmp/ring.cap
Tools_ring.png Снятие кольцевого дампа dumpcap, в том числе в фоновом режиме.
Capinfos — это программа, которая считывает один или несколько файлов трассировки и возвращает некоторые или все доступные статистические данные (информацию) каждого файла в одном из двух типов форматов вывода: long или table.
Длительный вывод более удобен для чтения человеку. Посмотрим с помощью него наш дамп звонка.
# capinfos /tmp/call.pcap
Вывод таблицы полезен для создания отчета, который можно легко импортировать в электронную таблицу или базу данных.
# capinfos –T /tmp/call.pcap
Очень удобна программа для поиска дампа в папке с кучей разнородных дампов, для того чтобы не открыть каждый по отдельности используем capinfos.
Например, выведем только время захвата созданных нами дампов. Добавляем ключи –a Отображает время начала захвата и –e время окончания захвата.
# capinfos –ae /tmp/*.pcap
Editcap — это программа, которая читает все или некоторые из захваченных пакетов из файла дампа, может преобразовывать их различными способами, и записывает полученные пакеты захвата в выходной файл. По умолчанию он считывает все пакеты из ввода и записывает их в вывод в формате pcap.
Применяется дя того чтобы:
1.Из большого файла дампа вытащить по шаблону необходимую часть.
Например, вытащим из файла дампа звонка только фреймы с 1-10 и 20-30. Ключ –r прочитать дамп, находящийся по пути в файл tmp.pcap и указываем номера кадров.
# editcap –r /tmp/call.pcap /tmp/tmp.pcap 1-10 20-30
Посмотрим его содежимое:
# tshark –r /tmp/tmp.pcap
Также, мы знает из лога Asterisk время определенного звонка. Зададим его в качестве шаблона сохранения editcap и на выходе получим дамп, содержащий в основном только полезную информацию.
Ключи –A и –B сохраняемый временной диапазон захваченных пакетов.
# editcap –A “2018-12-2 20:35:00” –B “2018-12-2 20:35:30” /tmp/call.pcap /tmp/tmp.pcap
2.Разделения огромного файла дампа на меньшие, например, с отрезками сниффинга по 60 сек. или разбить по 1000 пакетов в каждом.
Разделение дампа по 1000 пакетов производится следующей командой с ключом –с 1000. Предварительно создав папку под разделенные дампы, чтобы не запутаться, и выводим информацию о количестве пакетов.
# mkdir /tmp/call_pieces # editcap -c 1000 /tmp/call.pcap /call_pieces/call.pcap # ls /tmp/call_pieces # capinfos /call_pieces/call*.pcap
Теперь аналогично разобьём дамп на 10 секундные интервалы записи параметром –I 60 (по 60 секунд).
# mkdir /tmp/call_10sec # editcap -i 10 /tmp/call.pcap /tmp/call_10sec/call.pcap # ls /tmp/call_10sec # capinfos /tmp/call_10sec/call*.pcap
Также с помощью данной утилиты удалять дубликаты пакетов, как правило, это пакеты синхронизации.
# editcap -d /tmp/call.pcap /tmp/nodup.pcap
Можем изменить глубину захвата пакетов –s 96 (поверхностный захват). Дамп снимали с полным захватом s0. Изменить этот параметр в уже снятом дампе можно командой:
# editcap -s 96 /tmp/call.pcap /tmp/s96.pcap # capinfos /tmp/call.pcap # /tmp/s96.pcap
Можно легко изменять временные метки, применяется для объединения дампом снятых в разное время. Ключ отвечающий за это –t
Заметьте, что после ключа –t -3600 — это отнятие 3600 секунд от временных меток. Аналогично можно прибавить , например –t +3600. Также приращение времени можно задавать с высокой точность, регулировка задается как [-] секунды [ .фракционные секунды ]. Например, —t -0.25 уменьшает метку времени на выбранных пакетах на четверть секунды
# editcap -t -3600 /tmp/call.pcap /tmp/timestramp.pcap # capinfos /tmp/call.pcap # capinfos /tmp/timestramp.pcap
Для того чтобы сконвертировать формат дампа в любой поддерживаемый Wireshark также есть команда –F <�формат выходного файла трассировки>
# editcap -t -3600 /tmp/call.pcap /tmp/timestramp.pcap
Mergecap – утилита по функционалу противоположная предыдущей, объединяет несколько сохраненных файлов захвата в один выходной файл.
Можно объединить пакеты из нескольких файлов на основе их временных меток ключем –w.
При объединении дампов первым указывается путь выходного дампа, вторым и третьи исходные дампы, перечислить их можно сколько угодно много или использовать маску.
# mergecap -w /tmp/call12.pcap /tmp/call1.pcap /tmp/call2.pcap
Или добавив ключ -a просто слить пакеты из каждого файла в общий дамп, игнорируя временные метки, соответственно сначала в новый дамп попадают пакеты из первого источника, далее из второго и т.д..
# mergecap -w –a /tmp/call12.pcap /tmp/call1.pcap /tmp/call2.pcap
Вывод:
Работа с дампами без использования интерфейса менее удобна, требует дополнительной сноровки и знаний по сравнению с работой с дампами через GUI Wireshark, но крайне удобна для работы по оптимизации дампов трассировки пакетов перед выгрузкой или автоматизации задач анализа.
Перехват, чтение и сохранение пакетов
При запуске без параметров Tshark, как и tcpdump начнёт перехватывать весь сетевой трафик на всех интерфейсах.
# tshark
Если на вашей машине несколько интерфейсов, вам может потребоваться указать, какой именно должен использоваться. Для получения списка доступных интерфейсов укажите опцию -D:
tshark -D
Выбрав нужный интерфейс, укажите его имя или номер при помощи опции -i, например:
tshark -i eth0 tshark -i 1
Теперь, когда мы научились перехватывать пакеты, нам может потребоваться сохранить их для дальнейшего изучения. Для этого используется опция -w. Следующая команда будет перехватывать пакеты с интерфейса eth0 и сохранять их в файл /tmp/traffic.pcap:
tshark -i eth0 -w /tmp/traffic.pcap
Для анализа пакетов из ранее сохранённого файла вместо их перехвата с интерфейса укажите имя файла с опцией -r. Для чтения из файлов не требуется привилегий суперпользователя.
tshark -r /tmp/traffic.pcap
Надо отметить, что утилита также читает и анализирует файлы снятые tcpdump.
По умолчанию Tshark выполняет разрешение имён. Для лучшего понимания откуда пакет пришел и куда отправлен можно отключить его при помощи опции -n. Тогда вместо доменных имен, в дампе трафика будут ip адреса.
tshark -n