pktmon – Анализатор трафика в Windows 10

Print Friendly, PDF & Email

Задача:

Рассмотреть возможности нового анализатора трафика (сниффер трафика) в windows 10

---------------------------------------------------------------

В формат этого сайта данная статья немного не ложится, единственно причиной добавления её на сайт, это удивление, что в виндовс теперь тоже есть чтото похожее на nmap или Wireshark. Информации о команде особо не нашёл, только то что показывает командная строка.

icrosoft Windows [Version 10.0.18363.836]
(c) Корпорация Майкрософт (Microsoft Corporation), 2019. Все права защищены.

C:\Users\xxxx>pktmon
pktmon { filter | comp | reset | start | stop } [OPTIONS | help]
    Мониторинг внутреннего распространения пакетов и сообщений об их отбрасывании.

Команды
    filter     Управление фильтрами пакетов.
    comp       Управление зарегистрированными компонентами.

    reset      Сброс счетчиков до нуля.
    start      Запуск мониторинга пакетов.
    stop       Остановка мониторинга.
    format     Преобразование файла журнала в текст.
    unload     Выгрузка драйвера PktMon.

help
    Отображение текста справки для команды.
C:\Users\xxxx>

Если вам нужна дополнительная помощь по команде, добавляем команду и help

PS C:\Users\xxx> pktmon filter help
pktmon filter { list | add | remove } [OPTIONS | help]

Команды
    list      Отображение активных фильтров пакетов.
    add       Добавление фильтра для управления отчетами о пакетах.
    remove    Удаление всех фильтров.

help
    Отображение текста справки для команды.

PS C:\Users\xxx> pktmon filter add help
pktmon filter add <имя> [-m mac [mac2]] [-v vlan] [-d { IPv4 | IPv6 | number }]
                         [-t { TCP [flags...] | UDP | ICMP | ICMPv6 | number }]
                         [-i ip [ip2]] [-p port [port2]] [-e [port]]
    Добавьте фильтр для отбора пакетов, о которых необходимо отправлять сведения. Чтобы сведения о пакете
    отправлялись, он должен соответствовать всем условиям по крайней мере одного фильтра.
    Одновременно можно применять максимум 8 фильтров.

    ПРИМЕЧАНИЕ 1. Если заданы два MAC-адреса (-m), IP-адреса (-i) или порта (-p), отбираются
          пакеты, соответствующие этим двум заданным значениям. В данном случае не различаются исходный и
          конечный объекты.

name
    Необязательное имя или описание фильтра.

Кадр Ethernet
    -m, --mac[-address]
        Отбор по исходному или конечному MAC-адресу. См. ПРИМЕЧАНИЕ 1 выше.

    -v, --vlan
        Отбор по идентификатору виртуальной ЛС (VID) в заголовке 802.1Q.

    -d, --data-link[-protocol], --ethertype
        Отбор по протоколу канала передачи данных (уровень 2). Варианты значений: IPv4, IPv6, ARP или
        номер протокола.

Заголовок IP
    -t, --transport[-protocol], --ip-protocol
        Отбор по транспортному протоколу (уровень 4). Варианты значений: TCP, UDP, ICMP, ICMPv6 или
        номер протокола.
        Чтобы расширить фильтрацию пакетов TCP, можно задать дополнительный
        список флагов TCP, по которым должен выполняться отбор. Поддерживаемые флаги: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.

    -i, --ip[-address]
        Отбор по исходному или конечному IP-адресу. См. ПРИМЕЧАНИЕ 1 выше.
        Для отбора по подсети используйте нотацию CIDR с длиной префикса.

Заголовок TCP/UDP
    -p, --port
        Отбор по номеру исходного или конечного порта. См. ПРИМЕЧАНИЕ 1 выше.

Инкапсуляция
    -e, --encap
        Этот фильтр также применяется к инкапсулированным внутренним пакетам в добавление к.
        внешнему пакету. Поддерживаемые методы инкапсуляции: VXLAN, GRE, NVGRE и IP-in-IP.
        Настраиваемый порт VXLAN задается по желанию. Значение по умолчанию: 4789.

Пример 1: фильтр для проверки связи
        pktmon filter add MyPing -i 10.10.10.10 -t ICMP

Пример 2: фильтр по TCP-флагу SYN для SMB-трафика
    pktmon filter add MySmbSyn -i 10.10.10.10 -t TCP SYN -p 445

Пример 3: фильтр по подсети
    pktmon filter add MySubnet -i 10.10.10.0/24

PS C:\Users\xaxa>

Packet Monitor Driver (PktMon) найти можно в службах и является драйвером ядра.

В Windows 10 запускается Packet Monitor только в том случае, если его запускает пользователь, приложение или другая служба.

В реестре PktMon можно найти по адресу

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PktMon

Как пользоваться pktmon? Чтобы отследить пакеты конкретных устройств необходимо указать ИД необходимого устройства. Для определения ID сетевого адаптера используем команду «pktmon comp list».

C:\Users\WDAGUtilityAccount>pktmon comp list
Microsoft Hyper-V Network Adapter
    Id: 12
    Driver: NetVsc.sys
    MAC Address: C8-27-CC-C2-37-5A
    ifIndex: 6

    Filter Drivers:
        Id Driver      Name
        -- ------      ----
         4 wfplwfs.sys WFP Native Filter
         3 pacer.sys   QoS Packet Scheduler
         2 wfplwfs.sys WFP 802.3 Filter

    Protocols:
        Id Driver     Name   EtherType
        -- ------     ----   ---------
        11 tcpip.sys  TCPIP6 IPv6
        10 tcpip.sys  TCPIP  ARP, IPv4
         7 mslldp.sys MSLLDP LLDP
         6 lltdio.sys LLTDIO * (All)
         5 rspndr.sys RSPNDR VLAN, LLTD


C:\Users\WDAGUtilityAccount>

Начинаем перехватывать пакеты, по-умолчанию данные записываются в файл pktMon.etl:

pktmon start --etw -p 0 -c 12
  • -p 0 – перехватываем весь пакет
  • -c 13 – захват только с адаптера с ID 12

После некоторого времени, достаточного для получения нужных пакетов, останавливаем pktmon

pktmon stop

файл pktMon.etl можно открыть для анализирования с помощью Microsoft Network Monitor

Пример использования PktMon.

необходимо проверить DNS сервер

pktmon filter add -t udp -p 53  -i 8.8.8.8
pktmon start --etw -l real-time

Пример команды PktMon

pktmon format PktMon.etl -o port-monitor.txt

Для полноты статьи стоит отметить, что со времен Windows 7 уже была такая возможность, но команда имела немного другое имя: netsh trace

Помогла статья? Есть возможность отблагодарить автора

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *