Анализатор сетевого трафика Wireshark
Программа Wireshark относится к классу программ анализаторов сетевого трафика или сниферам.
Принцип работы анализатора трафика (снифера)
Название Сниффер происходит от английского слова sniff (нюхать). Принцип действия снифера прост - он перехватывает пакеты с сетевого интерфейса Вашего компьютера их в удобочитаемой для человека форме. Используя Wireshark Вы можете полностью в реальном времени контролировать ВСЮ! сетевую активность на любом сетевом интерфейсе Вашего компьютера. Вы можете посмотреть MAC-адреса сетевых карт в пакетах, порты источника и назначения транспортных протоколов TCP и UDP, IP-адреса источника и назначения, пакеты служебных протоколов ICMP, а также детально, буквально побайтно увидеть содержимое любых служебных полей и полей данных.
Установка Wireshark
Wireshark распространяется бесплатно по лицензии GNU (General Public License). Скачайте с официального сайта инсталлятор Wireshark. Запустите инсталлятор и кликните кнопку "Next" (сноска 1)![](pics/sp_wsh1_d.jpg)
Прочитайте лицензию и кликните кнопку "I Agree" (сноска 2)
![](pics/sp_wsh2_d.jpg)
Кликните галочку "Wireshark" (сноска 3), выключите все остальные галочки и кликните кнопку "Next"
![](pics/sp_wsh3_d.jpg)
Кликните на свое усмотрение галочки (сноска 5) Wireshark Start Menu Item (добавит пункт в главное меню Windows), Wireshark Desktop Icon (добавит иконку на рабочий стол), Wireshark Quick Launch Icon (добавит иконку в панель быстрого запуска). Включите точку "Associate trace file extensions to Wireshark" (сноска 6) и Windows ассоциирует перечисленые расширения файлов с Wireshark. Иными словами, при двойном клике на файлы с перечисленными расширениями их автоматически будет открывать Wireshark. Кликните кнопку "Next" (сноска 7).
![](pics/sp_wsh4_d.jpg)
Задайте папку, в которую будет установлен Wireshark (сноска 8) и кликните кнопку "Next" (сноска 9)
![](pics/sp_wsh5_d.jpg)
Включите галочку "Install WinPcap 4.1.3" (сноска 10) и кликните кнопку "Next" (сноска 11). WinPcap - это специальный драйвер, который позволяет перехватывать пакеты с сетевого интерфеса и передавать их Wireshark для визуализации пользователю
![](pics/sp_wsh6_d.jpg)
Отключите галочку USPPcap (сноска 12). Это драйвер для перехвата данных USB-устройств. Кликните кнопку "Install" (сноска 13)
![](pics/sp_wsh7_d.jpg)
Далее начнется установка Wireshark (сноска 14)
![](pics/sp_wsh8_d.jpg)
Посреди установки Wireshark будет запущена установка драйвера WinPCap. Кликните кнопку "Next" (сноска 15)
![](pics/sp_wsh9_d.jpg)
Прочитайте лицензию и кликните кнопку "I Agree" (сноска 16)
![](pics/sp_wsh10_d.jpg)
Включите галочку "Automatically start the WinPcap driver at boot time" (сноска 17), чтобы драйвер WinPcap автоматически загружался при старте Windows. Кликните кнопку "Install" (сноска 18)
![](pics/sp_wsh11_d.jpg)
Кликните кнопку "Finish" (сноска 19) и установка WinPcap будет завершена
![](pics/sp_wsh12_d.jpg)
Дождитесь завершения установки Wireshark (сноска 20) и кликните кнопку "Next" (сноска 21)
![](pics/sp_wsh13_d.jpg)
Кликните кнопку "Finish" (сноска 22) и запустите Wireshark двойным кликом по иконке на рабочем столе (сноска 23)
![](pics/sp_wsh14_d.jpg)
Основы работы с анализатором тафика Wireshark
Для начала нужно выбрать сетефой интерфейс, который будет "прослушивать" Wireshark. Для этого кликните кнопку настроек Wireshark (сноска 24).
![](pics/sp_wsh15_d.jpg)
Выберите "Беспроводное сетевое подключение", если работаете с ноутбука через WiFi или "Подключение по локальной сети", если ваш компьютер подключен к Интернету через кабель (сноска 25). Для наглядности Wireshark в поле "Traffic" для каждого сетевого подключения показывает график активности. Кликните кнопку "Start", чтобы запустить "прослушивание" сетевого интерфейса (сноска 26)
![](pics/sp_wsh16_d.jpg)
Интерфейс Wireshark достаточно прост и состоит из 3х основных окон. В окне под сноской 27 будут в реальном времени отображаться все пакеты, проходящие через сетевой интерфейс. Вы можете кликнуть на любой пакет в окне 27 и в окне под сноской 28 получить детальную информацию о пакете (MAC-адреса сетевых карт, IP-адреса отправителя и получателя, TCP или UDP порты отправителя и получателя и т.д). В окне под сноской 29 выводится побайтово сам пакет, в том виде как он перехвачен из сетевой карты.
Как только Wireshark начнет "слушать" трафик, в окне под сноской 27 повалят все пакеты с сетевого интерфейса и разобраться в этой "куче" будет невозможно. Для удобства задействуйте фильтр пакетов Wireshark. Условие для фильтра вводится в текстовое поле под сноской 30 и применяется кликом по кнопке сноска 31. Можно задавать одиночные или групповые условия:
Одиночные условия выглядят так:
tcp.port == 25 - отображать только TCP-пакеты почтового протокола SMTPtcp.dstport == 25 - отображать только TCP-пакеты протокола SMTP с портом назначения 25 (SMTP пакеты, идущие от Вашего компьютера на почтовые сервера)
tcp.srcport == 80 - отображать только TCP-пакеты протокола HTTP с портом источника 80 (HTTP пакеты, идущие от сайтов из Интернета на Ваш компьютер)
udp.port == 53 - отображать только UDP-пакеты протокола DNS
udp.dstport == 53 - отображать только UDP-пакеты протокола DNS с портом назначения 53 (пакеты идущие с Вашего компьютера на DNS сервера)
ip.addr == 8.8.8.8 - отображать пакеты, в которых присутствует IP-адрес DNS-серверов google
ip.dst == 8.8.8.8 - отображать пакеты, идущие с Вашего компьютера на IP-адрес DNS-серверов google
ip.src == 8.8.8.8 - отображать пакеты, идущие DNS-серверов google на Ваш компьютер
Групповые условия выглядят так:
udp.port == 53 && ip.dst == 8.8.8.8 - отображать только DNS запросы И предназначающиеся только серверам google
&& - операция "И" требует одновременного исполнения обоих условий
tcp.dstport == 80 || udp.dstport == 53 - отображать HTTP-пакеты на WEB-сервера ИЛИ запросы DNS
|| - операция "ИЛИ" требует исполнения одного из условий или сразу обоих.
Комбинируйте условия как угодно, для того, чтобы из "кучи" выделить только нужные Вам пакеты
Контроль трафика по IP-адресам
Теперь задаем условие для фильтра Wireshark выводить только пакеты, в которых присутствует IP-адрес рамблера (сноска 35) и применяем фильтр (сноска 36). Теперь убедитесь что в браузере отключена работа через прокси, проксификаторы не запущены и заходите на сайт рамблера. В окне ниже должны появится пакеты, кликнув на которые Вы убедитесь, что в них присутствует только Ваш IP-адрес (сноска 37) и IP-адрес сервера рамблера (сноска 38). Далее настройте ваш браузер на работу через прокси-сервер, зайдите на сайт рамблера и вы увидите, что новых пакетов Wireshark не выводит, а сайт работает. Это свидетельствует о том что трафик пошел через прокси-сервер, а не напрямую на рамблер.
Вводим в условие фильтра IP-адрес прокси-сервера (сноска 35), применяем фильтр (сноска 36) и убеждаемся, что IP-источника, по-прежнему Ваш (сноска 41), а вот IP-назначения уже прокси-сервера (сноска 42). Если Вы кликните на любой HTTP-накет, то увидите в его поле данных, запросы на рамблер (сноска 43)
Проверка по TCP-портам может пригодиться при контроле трафика на ресурсы, которые имеют несколько серверов в разными IP. Например почтовый сервис mail.ru расмолагаеся на многоих серверах и при каждом обращении Вас будут отправлять на разные сервера с разными IP. Однако передача почты через любой IP сервиса mail.ru всегда ведется по одному и тому же 25-му порту. Или 465-му порту, если почта передается по шифрованному протоколу TLS.
В статье о принципах работы проксификаторов мы рассказывали об инкапсуляции пакетов одного прикладного уровня (например SMTP) в пакеты другого протокола прикладного уровня HTTP. Проверим это теперь при помощи снифера.
1. Выставите условия фильтра как показано под сноской 44. И включите фильтр кликом на кнопку под сноской 452. Отключите проксификатор, если он у Вас включен, настройте Ваш почтовый клиент на прямое взаимодействие с почтовым сервером и отправьте письмо. Снифер должен отобразить пакеты, у которых TCP-порт источника будет произвольный (сноска 47), а TCP-порт назначения должен быть 25, если Ваш клиент работает по протоколу SMTP без шифрования или 465, если Ваш почтовый клиент использует шифрование TLS (сноска 48).
![](pics/sp_wsh21_d.jpg)
3. Теперь включите проксификатор (сноска 49) и отправьте почтовое сообщение еще раз. TCP-порт источника во всех пакетах опять будет произвольный (сноска 51), а вот пакеты с TCP-портами назначения 25 и 465 должны пропасть и вместо них должны быть пакеты исключительно с TCP-портом назначения прокси сервера 7951 (сноска 52). Это и будет свидетельствовать о том, что при включенном проксификаторе Proxyfier весь трафик направляется на прокси-сервер. IP-адрес прокси-сервера будет отображен под сноской 50. Для корректной работы Проксифера мы рекомендуем использовать платные прокси
![](pics/sp_wsh22_d.jpg)
На рисунке ниже подробно рассмотен HTTP-пакет (сноска 53), с помещенным в него методом CONNECT, который указывает прокси-серверу подключиться к северу аутентификации mail.ru 217.69.139.160 на порт 465 для шифрованой педачи почты по протоколу TLS . Кликните на этот пакет и ниже Вы увидите, что пакет направляется через прокси-сервер IP (сноска 54) и порт TCP (сноска 55). Раскройте плюсиком содержимое пакета HTTP (Hypertext Transfer Protocol) и Вы увидите метод CONNECT, помещенный в него (сноска 56)
![](pics/sp_wsh23_d.jpg)