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:
- filter — управление фильтрами пакетов
- comp – управление зарегистрированными компонентами;
- reset — сброс счетчиков;
- start – запустить мониторинг пакетов;
- stop— остановить сбор пакетов;
- format – конвертировать лог файл трафика в текстовый формат;
- pcapng – конвертация в формат pcapng;
- unload – выгрузить драйвер PktMon.
Чтобы получить справку по субкоманде, укажите ее имя:
pktmon filter
Попробуем собрать дамп трафика, который приходит на некоторые запущенные службы компьютера. Допустим, нам нужно проанализировать трафик 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 start –etw
Log file name: C:WindowsSystem32PktMon.etl Logging mode: Circular Maximum file size: 512 MB Active measurement started.
pktmon start --etw -p 0 -c 9
где значение аргумента c – номер (ID) нужного сетевого интерфейса, полученного с помощью:
pktmon comp list
Фильтр пакетов начнет запись всего трафика, соответствующего заданным фильтрам в файл 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).
Чтобы удалить все созданные фильтры Packet Monitor, выполните:
pktmon filter remove
Вы можете использовать PktMon для мониторинга сетевого трафика в реальном времени. Для этого используется параметр
-l real-time
. В этом режиме захваченные сетевые пакеты отображаются в консоли, и не пишутся в фоновом режиме в лог файл.
pktmon start --etw -p 0 -l real-time
Чтобы остановить сбор трафика, используйте комбинацию клавиш Ctrl+C.
Если у вас наблюдается drop пакетов на сетевом интерфейсе, PacketMon может показать причину дропов (например, некорректный MTU или VLAN).
Также вы можете использовать PktMon в Windows Admin Center через расширения. Собранные данные с компьютеров и серверов при диагностике сетевых проблем можно использовать для анализа в более мощных программах анализа сетевого трафика, таких как Microsoft Network Monitor или Wireshark.
Windows Server 2019
Packet Monitor (PktMon) — встроенный сниффер траффика в Windows 10