Снятие и анализ сетевых пакетов с Microsoft Network Monitor

Быстрые ссылки
- Снятие пакетов с помощью Microsoft Network Monitor
- Фильтрация трафика
- Примеры фильтров
- Чтение фреймов и HEX данных
- Заключение
Важно: Microsoft Message Analyzer официально прекращён, и Microsoft убрала ссылки на него. Остаётся использовать Microsoft Network Monitor или сторонние инструменты, такие как WireShark.
Введение
Когда нужно диагностировать сложные сетевые и прикладные проблемы, полезно видеть, что реально пересылается по сети. Несмотря на то, что WireShark предлагает мощный набор возможностей, Microsoft Network Monitor остаётся удобным вариантом благодаря простому интерфейсу и группировке «conversations», что помогает быстро найти трафик от конкретного процесса.
В этом руководстве мы пройдём шаги по установке и запуску Network Monitor, разберёмся с фильтрами, приведём готовые примеры выражений и дадим практические шаблоны и чек‑листы для инженеров и разработчиков.
Снятие пакетов с помощью Microsoft Network Monitor
- Скачайте и установите Microsoft Network Monitor из официального источника, если он доступен в вашей организации. После установки запустите программу.
- В интерфейсе нажмите New Capture для создания новой сессии захвата.

- Нажмите Start, чтобы начать мониторинг. Захват начнёт заполняться и вы увидите первоначальные «conversations» в левой части окна.

Если появляется ошибка «no adapters are bound», запустите программу от имени администратора и при необходимости перезагрузите систему после установки.
Одна из ключевых возможностей Network Monitor — автоматическая группировка разговоров по процессам и направлениям, благодаря чему легче находить трафик от конкретного приложения и углубляться в него.

Фильтрация трафика
С захватом данных быстро появляется много «шума». Для фокусировки используйте Display Filter — поле, где можно вводить имена протоколов и выражения.
Пример стандартного фильтра для DNS-запросов:
DnsAllNameQueryДобавьте это выражение в секцию Display Filter и нажмите Apply — вы увидите только DNS-запросы.

Построение фильтров
В Display Filter можно вводить имя протокола и ставить точку (.) для автодополнения доступных полей. Часто используются операторы сравнения и логические связки:
- Оператор равенства: ==
- Логические операторы: and, or
- Функции: contains(), UINT8() и другие
Пример комбинированного выражения:
DNS.QuestionCount AND
DNS.ARecord.TimeToLive == 14Пример с contains для поиска запросов, содержащих google.com:
DNS.QuestionCount AND
DNS.ARecord.TimeToLive == 14 AND
DNS.QRecord.QuestionName.contains("google.com")Фильтры можно комбинировать, группировать и сохранять как пресеты. Это особенно важно, если захват большой — фильтры помогают быстро сокращать объём видимых данных.
Примеры фильтров
Ниже — практические выражения, которые часто применяют при поиске конкретных проблем.
Фильтрация по номеру порта
Вместо только HTTP используйте проверку порта, чтобы учитывать нестандартные порты (например, 8080 или 8443):
// Filter by TCP Port Number
tcp.port == 80 OR Payloadheader.LowerProtocol.port == 80
tcp.port == 443 OR Payloadheader.LowerProtocol.port == 443Обратите внимание: фреймы с фрагментированными TCP пакетами собираются и добавляются в новый фрейм с заголовком Payloadheader. Поэтому проверка обоих полей позволяет поймать как обычные, так и реассемблированные фреймы.
Поиск SSL/TLS рукопожатий
Чтобы найти начальные сообщения TLS (ClientHello / ServerHello), используйте фильтр на тип Handshake:
// Filter by SSL Handshake
TLS.TlsRecLayer.TlsRecordLayer.SSLHandshake.HandShake.HandShakeType == 0x1Это вернёт фреймы с типом HandShakeType 0x1 (ClientHello), что поможет понять, к каким серверам направлены попытки установить защищённое соединение.
Поиск повторных передач TCP и SYN Retransmits
Для диагностики проблем с загрузкой/выгрузкой файлов проверьте наличие ретрансмиссий:
Property.TCPRetransmit == 1 || Property.TCPSynRetransmit == 1Убедитесь, что включена группировка conversations — некоторые свойства рассчитываются на её основе.
Чтение фреймов и HEX данных
Окно по умолчанию имеет две нижние панели: Frame Details и Hex Details. Frame Details разбивает пакет на логические части (слои протоколов), а Hex Details показывает сырые байты и расшифровку. При выборе части в Frame Details соответствующая область подсвечивается в HEX и наоборот — это упрощает понимание соответствия полей и байтов.

Советы при чтении:
- Сначала смотрите на заголовки Ethernet/IP/TCP, чтобы определить источники и порты.
- Проверяйте поля последовательности (Sequence) и подтверждения (Ack) для понимания порядка и возможных потерь.
- Для TLS найдите ClientHello/ServerHello и отметьте SNI и Cipher Suites в полях рукопожатия.
- Для HTTP смотрите заголовки запроса и ответа в теле, а также коды статуса.
Практическое руководство и SOP для захвата и анализа
Ниже приведён краткий пошаговый SOP, который можно использовать как шаблон при инциденте.
SOP: Быстрый захват при инциденте
- Цель: быстро получить сетевой след для воспроизведения или подтверждения проблемы.
- Подготовка:
- Убедиться, что у вас есть права администратора на целевой машине.
- Проверить, что на машине установлено последнее доступное ПО Network Monitor.
- Определить минимальный объём захвата (время/фильтры) и место хранения файла .cap.
- Захват:
- Запустить Network Monitor как Администратор.
- Создать New Capture и задать Display Filter, если заранее известен трафик.
- Нажать Start и выполнить воспроизведение ошибки (или дождаться её возникновения).
- Остановка и сохранение:
- Нажать Stop, сохранить .cap файл и пометить его метаданными (время, имя хоста, пользователь).
- Анализ:
- Применить фильтры (порты, свойства, DNS/HTTP/TLS) для сужения результатов.
- Сохранить выбранные фреймы в отдельный файл для обмена с коллегами.
- Документация:
- Зафиксировать шаги воспроизведения, используемые фильтры и найденные подозрительные фреймы.
Критерии приёмки
- Захват содержит фреймы за период инцидента.
- Видны начальные и завершающие пакеты проблемной сессии (SYN, FIN/RST).
- Есть достаточная информация для определения задержек, потерь и точки отказа.
Когда Microsoft Network Monitor не подходит
Counterexamples и ограничения:
- Если требуется расшифровка современных версий TLS с использованием внешних ключей и подробный анализ потоков, WireShark и специализированные инструменты могут быть предпочтительнее.
- Network Monitor не обновлялся так активно, как WireShark; новые протоколы или расширения могут не поддерживаться.
- Для захвата трафика на удалённых хостах без доступа к GUI лучше использовать tcpdump/WinPcap на сервере и затем анализировать файл локально.
Если вам нужна интеграция с системой хранения логов или централизованный сбор пакетов, рассмотрите использование специализированных сетевых сенсоров и SIEM-инструментов.
Альтернативные подходы
- WireShark: мощный, активно поддерживается, богатая библиотека декодеров и встроенные возможности расшифровки TLS (при наличии ключей).
- tcpdump / WinDump: консольная утилита для быстрых захватов и сценариев автоматизации.
- Сетевые сенсоры и TAP/SPAN: для постоянного мониторинга в дата‑центре.
Выбор зависит от требований: удобство GUI и быстрый осмотр — Network Monitor; расширяемость и постоянное обновление — WireShark; автоматизация и удалённый захват — tcpdump/сенсоры.
Чек‑листы по ролям
Системный администратор
- Убедиться в правах и перезагрузке после установки драйверов.
- Записать метаданные захвата (время, хост, пользователь).
- Сохранить оригинальный .cap и уменьшенный файл для обмена.
Сетевой инженер
- Включить conversations и проверять Properties для ретрансмиссий.
- Фильтровать по портам, IP и TCP Flags.
- Сопоставлять последовательности и подтверждения для поиска потерь.
Разработчик приложения
- Фильтровать по процессу или порту приложения.
- Искать задержки в ответах, повторные запросы и неверные коды статуса.
- Проверить, какие внешние домены запрашиваются и почему.
Специалист по безопасности
- Ищите аномальные соединения, нестандартные порты и незнакомые SNI в TLS.
- Проверяйте DNS-запросы на возможные домены командно‑контрольных серверов.
Мини‑методология для построения фильтров
- Начните с широкого фильтра по IP/порту или протоколу.
- Отфильтруйте по течениям (conversations), чтобы увидеть разговоры между конечными точками.
- Сузьте фильтр по конкретным полям (например, TLS SNI или HTTP User‑Agent).
- Применяйте contains() и типовые проверки для текстовых полей.
Тестовые сценарии приёмки
- Тест 1: Захватить HTTP‑запрос к известному серверу и убедиться, что строка запроса и заголовки видны.
- Тест 2: Смоделировать потерю пакета и убедиться, что Property.TCPRetransmit помечает соответствующие фреймы.
- Тест 3: Выполнить TLS‑рукопожатие и проверить наличие ClientHello с корректным SNI.
Краткий глоссарий
- Conversation — сгруппированные фреймы между двумя конечными точками или процессами.
- Frame — единичный захваченный сетевой пакет с метаданными.
- Payloadheader — заголовок для реассемблированных (собранных) фреймов.
- TLS/SSL Handshake — начальная фаза установки защищённого соединения.
Заключение
Microsoft Network Monitor остаётся полезным инструментом для быстрого захвата и первичного анализа сетевого трафика благодаря простому интерфейсу и удобным фильтрам. Для сложных задач и новейших протоколов стоит рассмотреть WireShark или другие решения, однако для многих инцидентов Network Monitor даёт всё необходимое для обнаружения и объяснения проблем.
Important: всегда сохраняйте оригинальный .cap файл и его метаданные — это упростит последующие расследования и обмен данными с коллегами.
Резюме
- Network Monitor прост в освоении и удобен для быстрого анализа.
- Фильтры и функции вроде conversations ускоряют отладку.
- Для глубокого анализа современных протоколов стоит комбинировать инструменты.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента