Wireshark

Содержание
Введение
Установка
Фильтр по порту
Фильтр по протоколу (FTP)
Составные фильтры
Сохранить фильтр
Отследить обмен между двумя хостами
Формат отображения времени
Связанные статьи

Введение

Wireshark — программа-анализатор трафика для компьютерных сетей Ethernet и некоторых других. Имеет графический пользовательский интерфейс. Изначально проект назывался Ethereal, но из-за проблем с торговой маркой в июне 2006 года проект был переименован в Wireshark.

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

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

Программа распространяется под свободной лицензией GNU GPL и использует для формирования графического интерфейса кроссплатформенную библиотеку Qt.

Существуют версии для большинства UNIX-подобных систем, в том числе GNU/Linux , Solaris, FreeBSD , NetBSD, OpenBSD , macOS, а также для Windows .

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

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

Установка Wireshark

Подробно про установку WireShark вы можете прочитать здесь

Мониторить определённый порт

Если я хочу следить за своим Thrift сервером на порту 9090 то фильтр будет выглядеть так

tcp.port eq 9090

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

Пример - FTP

Задача - проверить удалил ли разработчик устаревший поллинг по FTP.

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

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

Запускаем Wireshark. Применяем фильтр ftp-data. Запускаем клиент. Внимательно смотрим какие сообщения захватывает Wireshark

Wireshark пример фильтр ftp-data 
        изображение с сайта www.andreyolegovich.ru Wireshark пример фильтр ftp-data 
        изображение с сайта www.andreyolegovich.ru

Выключаем старый клиент. Удаляем базу данных если она общая. Перезапускаем Wireshark. Применяем фильтр ftp-data. Внимательно смотрим какие сообщения захватывает Wireshark

Wireshark пример фильтр ftp-data 
    изображение с сайта www.andreyolegovich.ru
Пример фильтра ftp-data

Видно, что никаких пакетов по ftp не послано. Всё спокойно. Принимаем работу. Акцептим стори.

Составные фильтры в Wireshark

Часто бывает необходимо наложить несколько условий одновременно. На этот случай предусмотрены логические операторы

and && «И»
or|| «ИЛИ»
xor^^ исключающее «ИЛИ»
not! отрицание
[…][…] выборка подстроки

Сохранить фильтр

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

Для этого в панели инструментов "Filter" нужно нажать на значок закладки и выбрать

Save this filter

Изображение баннера

Обмен между конкретными хостами

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

Предположим нас итересует что 10.6.1.2 шлёт на 10.6.1.3

Используем фильтр

ip.src==10.6.1.2 and ip.dst==10.6.1.3

Если нужно указать маски подсети: ip.src==10.6.1.2/4 and ip.dst==10.6.1.3/4

Задав дополнительное условие можно следить за обменом трафиком только по определённому протоколу

ip.src==10.6.1.2 and ip.dst==10.6.1.3 and ftp

Если интересен трафик по нескольким протоколам, их можно перечислить с условаием or

ip.src==10.6.1.2 and ip.dst==10.6.1.3 and (ftp or smb2)

Если нужен трафик в обе стороны

(ip.src==10.6.1.2 or ip.src==10.6.1.3) and (ip.dst==10.6.1.3 or ip.dst==10.6.1.2) and (ftp or smb2)

Time

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

100.123456

Если нужно изменить формат отображения времени делается это через

View Time Display Format

Если выбрать вариант Data and Time of Day выглядеть время будет следующим оригинальным образом

2024-07-18 18:34:24.200944

Похожие статьи
Тестирование ПО
Разработка ПО
DevOps
IT
Кибербезопасность
RFID
Web
Список открытых API

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: