Использование 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

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

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

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

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

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

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)

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

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

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

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

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

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

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

В поле 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 .

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

Destination == "ip_adress"

Ниже представлены несколько примером часто используемых фильтров 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.

admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

3 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

3 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

3 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

3 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

3 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

3 месяца ago