Wireshark — это мощный сетевой анализатор, который может использоваться для анализа трафика, проходящего через сетевой интерфейс компьютера. Он может понадобиться для обнаружения и решения проблем с сетью, отладки веб-приложений, сетевых программ или сайтов.
Wireshark позволяет полностью просматривать содержимое пакета на всех уровнях: так вы сможете лучше понять как работает сеть на низком уровне.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Wireshark является кроссплатформенным, работает на Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS, и Windows.
Основные возможности Wireshark
Список основных возможностей программы:
Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
Пакеты можно отсеивать по множеству параметров с помощью фильтров;
Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
Поддержка захвата трафика VoIP-звонков;
Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
Отображение статистики нагрузки на сеть;
Просмотр содержимого пакетов для всех сетевых уровней;
Отображение времени отправки и получения пакетов.
Анализ сетевого трафика
На главном экране отображается список доступных для анализа сетевых интерфейсов. Выберем интерфейс «Беспроводная сеть» и откроется окно:
Это окно тоже разделено на несколько частей:
Верхняя часть — это меню и панели с различными кнопками;
Список пакетов — дальше отображается поток сетевых пакетов, которые вы будете анализировать;
Содержимое пакета — чуть ниже расположено содержимое выбранного пакета, оно разбито по категориям в зависимости от транспортного уровня;
Реальное представление — в самом низу отображается содержимое пакета в реальном виде, а также в виде HEX.
Можно кликнуть по любому пакету, чтобы проанализировать его содержимое.
Фильтры Wireshark
Для ввода фильтров под меню есть специальная строка. Рассмотрим основные фильтры:
ip.dst — целевой IP-адрес;
ip.src — IP-адрес отправителя;
ip.addr — IP отправителя или получателя;
ip.proto — протокол;
tcp.dstport — порт назначения;
tcp.srcport — порт отправителя;
ip.ttl — фильтр по ttl, определяет сетевое расстояние;
http.request_uri — запрашиваемый адрес сайта.
Для указания отношения между полем и значением в фильтре можно использовать такие операторы:
== — равно;
!= — не равно;
< — меньше;
> — больше;
<= — меньше или равно;
>= — больше или равно;
matches — регулярное выражение;
contains — содержит.
Для объединения нескольких выражений можно применять:
&& — оба выражения должны быть верными для пакета;
|| — может быть верным одно из выражений.
Пример сканирования по фильтру:
Wireshark почти всегда позиционируется как сетевой инструмент для анализа, правда заключается в том, что он может анализировать и другие устройства, такие как USB-трафик и даже Unix-сокеты между приложениями.
Используя Wireshark и обладая необходимыми знаниями можно достаточно эффективно находить и диагностировать разнообразные проблемы, возникающие в сети.