Packet Monitor (PktMon) — встроенный сниффер траффика в Windows 10

Packet Monitor (PktMon) — встроенный сниффер траффика в Windows 10

Встроенный анализатор (сниффер) сетевого трафика Packet Monitor (PktMon.exe) появился еще в Windows 10 1809 и Windows Server 2019. В последнем билде Windows 10 2004 (May 2020 Update), функционал анализатора пакета был существенно расширен (появилась поддержка захвата пакетов в реальном времени, и поддержка формата PCAPNG для простого импорта в анализатор сетевого трафика Wireshark). Таким образом в Windows появился функционал захвата сетевого трафика, аналогичный tcpdump, и его можно смело использовать системными и сетевыми администраторам для диагностики работы сети.

Packet Monitor позволяет получить всю сетевую активность, проходящую через сетевой интерфейс компьютера на уровне каждого пакета.

Ранее для захвата сетевого трафика и инспектирования пакетов в Windows использовалась команда netsh trace.

Справку по использованию параметров
pktmon.exe
можно получить, набрав команду в командной строке.

Packet Monitor (PktMon) сниффер сетевого трафика в Windows

Основные команды утилиты Packet Monitor:

  • filter — управление фильтрами пакетов
  • comp – управление зарегистрированными компонентами;
  • reset — сброс счетчиков;
  • start – запустить мониторинг пакетов;
  • stop— остановить сбор пакетов;
  • format – конвертировать лог файл трафика в текстовый формат;
  • pcapng – конвертация в формат pcapng;
  • unload – выгрузить драйвер PktMon.

Чтобы получить справку по субкоманде, укажите ее имя:

pktmon filter

справка по командам pktmon

Попробуем собрать дамп трафика, который приходит на некоторые запущенные службы компьютера. Допустим, нам нужно проанализировать трафик FTP (TCP порты 20, 21) и HTTP (порты 80 и 443).

Создадим фильтр пакетов для 4 TCP портов (также можно мониторить UDP и ICMP трафик):

pktmon filter add -p 20 21
pktmon filter add HTTPFilt –p 80 443

Выведем список имеющихся фильтров:

pktmon filter list

добавлние сетевых фильтров в pktmon filter

Чтобы запустить фоновый сбор трафика, выполните команду:

pktmon start –etw

Log file name: C:WindowsSystem32PktMon.etl
Logging mode: Circular
Maximum file size: 512 MB
Active measurement started.

pktmon start запустить сбор сетевых пакетов

В таком режиме pktmon собирает данные со всех сетевых интерфейсов, но в журнал попадают только первые 128 байтов пакета. Чтобы захватить пакеты целиком и только на определенном интерфейсе компьютера, используется команда:

pktmon start --etw -p 0 -c 9

где значение аргумента c – номер (ID) нужного сетевого интерфейса, полученного с помощью:

pktmon comp list

pktmon comp list - список сетевых интерфейсов, загруженных драйверов, протоколов и фильтров стека TCP-IP в Windows

Фильтр пакетов начнет запись всего трафика, соответствующего заданным фильтрам в файл C:WindowsSystem32PktMon.etl (максимальный размер 512 Мб). Чтобы остановить запись дампа, выполните команду:

pktmon stop

Также сбор сетевых пакетов прекращается после перезегрузки Windows.

Теперь вы можете сконвертировать файл с дампом трафика из формата ETL в обычный текст:

pktmon format PktMon.etl -o c:pspacketsniffer.txt

или

pktmon PCAPNG PktMon.etl  -o c:pspacketsniffer.pcapng

Полученный дамп трафика можно анализировать в текстовом виде, загрузить ETL файл в установленный на компьютере администратора Microsoft Network Monitor или WireShark (в форматер PCAPNG).

анализ дампа трафика в Microsoft Network Monitor

Чтобы удалить все созданные фильтры Packet Monitor, выполните:

pktmon filter remove

Вы можете использовать PktMon для мониторинга сетевого трафика в реальном времени. Для этого используется параметр
-l real-time
. В этом режиме захваченные сетевые пакеты отображаются в консоли, и не пишутся в фоновом режиме в лог файл.

pktmon start --etw -p 0 -l real-time

PktMon трафик в реальном времени real-time

Чтобы остановить сбор трафика, используйте комбинацию клавиш Ctrl+C.

Если у вас наблюдается drop пакетов на сетевом интерфейсе, PacketMon может показать причину дропов (например, некорректный MTU или VLAN).

Также вы можете использовать PktMon в Windows Admin Center через расширения. Собранные данные с компьютеров и серверов при диагностике сетевых проблем можно использовать для анализа в более мощных программах анализа сетевого трафика, таких как Microsoft Network Monitor или Wireshark.

Windows Server 2019
Packet Monitor (PktMon) — встроенный сниффер траффика в Windows 10