Использование Network Monitor для захвата и анализа сетевого трафика в Windows

Microsoft Network Monitor это классический инструмент сетевой диагностики для Windows, которой позволяет выполнить захват и анализ входящего и исходящего трафика на компьютере. Несмотря на то, что это продукт не развивается и не обновляется уже более 3 лет, его часто используют администраторы, когда нужно выполнить диагностику сетевых подключений. NetMon предоставляет на порядок меньше возможностей и не так хорош в расширенном разборе пакетов, по сравнению с популярным инструментом захвата и анализа WireShark. Однако графический интерфейс Network Monitor гораздо проще и интуитивное, да и сам продукт легче. Поэтому в некоторых сценариях его использование вполне оправдано и удобно.

В этой статье мы рассмотрим, как использовать Network Monitor для захвата и анализа сетевого трафика в реальном времени и для снятия дампа трафика для последующего анализа.

Идею этой статьи подкинул один из участников нашего чата , который получил от провайдера предупреждение о том, что его Windows VPS сервер используется для рассылки писем. Рассылка производилась в разное время, поэтому отследить процесс, выполняющий инициацию SMTP сессий, в реальном времени не удалось. Для поиска источника проблемы нужно настроить захват всего исходящего трафика по стандартным SMTP портам 25, 587 и 465, и определить исполняемый файл или скрипт, который выполняет рассылки.

Установить Microsoft Network Monitor 3.4 (последняя в прямо смысле версия) можно, скачав установщик (NM34_x64.exe) с сайта Microsoft ( https://www.microsoft.com/en-us/download/details.aspx?id=4865 ), или установить пакет с помощью пакетного менеджера winget :

winget install Microsoft.NetMon

Установка Microsoft.NetMon с помощью WinGet

После установки, запустите Network Monitor с правами администратора.

В окне NetMon нажмите New Capture .

По умолчанию Network Monitor, собирает весь трафик, проходящий через интерфейсы компьютеры. За длительный промежуток времени размер такого сетевого дампа может быть весьма значительным. В нашем случае мы хотим собирать только исходящие пакеты по одному из известных SMTP портов.

Нажмите кнопку Capture Settings . В этом окне можно настроить фильтры, которые определяют какой трафик должен собирать NetMon. В разделе Load Filter -> Standard Filters есть несколько шаблонов фильтров для типовых задач. В нашем случае нам нужен фильтр по TCP портам. Выберите TCP -> TCP ports .

Добавить фильтр захвата трафика в Network Monitor

В окно редактора фильтра будет вставлен следующий код шаблона:

tcp.port == 80 OR Payloadheader.LowerProtocol.port == 80

Нужно отредактировать правило и добавить в него все три стандартные SMTP порты:

(tcp.port == 25 OR Payloadheader.LowerProtocol.port == 25 OR
tcp.port == 587 OR Payloadheader.LowerProtocol.port == 587 OR
tcp.port == 465 OR Payloadheader.LowerProtocol.port == 465)

Если на сервере несколько сетевых интерфейсов или дополнительных IP адресов на адаптере , можно добавить фильтр на исходящий IP:

AND
(IPv4.SourceAddress == 192.168.158.144)

Отредактировать фильтр NetMon, захват трафика на определенные порты

Фильтры в Network Monitor можно комбинировать с помощью скобок и логических выражений OR / AND / NOT , или использовать вместо них || , && или ! .

Нажмите кнопку Apply , чтобы сохранить фильтр.

Затем перейдите в раздел Tools -> Options -> Parser profiles . Выберите Windows в профиле парсера по умолчанию ( Set as active ).

Выбрать парсер для Network Monitor

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

Microsoft Network Monitor - запустить захват трафика

Теперь вам нужно воспроизвести проблему, или если она появляется редко в неизвестные моменты времени, просто оставьте NetMon запущенным в течении дня/недели.

Имейте в виду, что в зависимости от настроек фильтра захвата, дамп сетевого трафика за большой промежуток времени потребует значительного количества RAM и свободного места на диске.

В нашем случае через некоторое время в журнале пакетов NetMon появились события, соответствующий примененным фильтрам. Если открыть содержимое пакетов, то можно обнаружить что выполнялась попытка SMTP подключения. Внутри пакетом можно увидеть команды SMTP протокола, попытки аутентификации, адрес целевой сервер и email адрес, на который выполняется отправка (пример SMTP команд в telnet для отправки почты с аутентификацией ).

Дамп трафика в Network Monitor, определить процесс, которые инициирует сетевое подключение

В поле Process Name указано имя процесса, который инициировал данные сетевой трафик. В этом случае мы определили, что SMTP рассылка выполняется консольной утилитой blat.exe .

Также в дамп попала моя сессия powershell.exe , из которой я проверял доступность порта 25 на внешнем сервере:

Test-NetConnection smtp.mail.ru -port 25

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

Можно добавить дополнительные фильтры по IP или MAC адресу назначения/источника, различным протоколам, портам и специальные фильтры для анализа трафика некоторых протоколов (SMB, HTTP, DNS). Фильтры можно применять как целиком к захваченному трафику, так и для фильтрации отображаемых данных в рамках текущей сессии (окно Display Filter ).

Например, чтобы отфильтровать пакеты, можно щелкнуть по любому из значений в списке пакетов и выбрать Add [something] to Display Filter .

Добавить в фильтр Network Monitor правило по IP адресу назначения

На скриншоте я добавил правило фильтрации по IP адресу назначения. В окно фильтра был добавлен такой код:

Destination == "ip_adress"

Примеры фильтров в Microsoft Network Monitor

Ниже представлены несколько примером часто используемых фильтров Network Monitor.

Фильтр по IP адресу назначения:

IPv4.SourceAddress == 192.168.0.1

Фильтр по IP источника или назначения:

IPv4.Address == 192.168.0.1

Фильтр по номеру TCP порта:

tcp.port == 443
OR
Payloadheader.LowerProtocol.port == 443

Можно указывать диапазоны портов:

(udp.Port>=10000 && udp.port<=19999)

В этой статье мы рассмотрели особенности захвата и последующего анализа сетевого трафика в Windows с помощью Microsoft Network Monitor. Также в Windows для снятия дампа трафика без установки Network Monitor на компьютере можно использовать встроенную консольную утилиту PktMon . Дамп, снятый такой утилитой, можно проанализировать на любом компьютере с установленным NetMon или Wireshark.

EnglishRussianUkrainian