Перейти к основному содержанию

netsh trace — анализатор сетевого трафика

Network

В Linux есть утилита tcpdump, позволяющая перехватывать и анализировать сетевой трафик. Работает в командной строке не хуже Wireshark. В Windows 10 есть утилита PktMon, которая поддерживает формат WireShark (PCAPNG) и Netmon (ETL), может работать с дампами TcpDump.

Очень удобно. Снимаешь дамп, тянешь его себе, а потом спокойно за привычным рабочим окружением ковыряешь его в Wireshark.

А что делать в более старых версиях Windows, где нет PktMon? На помощь приходит парочка других утилит.

netsh trace

Начиная с Windows 7 / Windows Server 2008 R2 появилась возможность выполнять захват трафика встроенными в систему средствами с помощью netsh trace. Команда позволяет перехватить и сохранить сетевой трафик в формате Netmon (ETL). Дополнительно создаётся CAB архив, содержащий дополнительные данные, которые могут потребоваться для анализа сетевого трафика.

Для начала запускаем командную строку под администратором. Выполняем:

netsh trace help

net

И узнаём список атрибутов, которые можно применять в команде. Список, к слову, не полный. Больше данных получим запросом:

netsh trace start /?
start
  Запускает трассировку.

  Использование: trace start [sessionname=<sessionname>]
        [[scenario=]<сценарий1,сценарий2>]
        [[globalKeywords=]keywords] [[globalLevel=]level]
        [[capture=]yes|no] [[capturetype=]physical|vmswitch|both]
        [[report=]yes|no|disabled] [[persistent=]yes|no]
        [[traceFile=]path\filename] [[maxSize=]filemaxsize]
        [[fileMode=]single|circular|append] [[overwrite=]yes|no]
        [[correlation=]yes|no|disabled] [capturefilters]
        [[provider=]providerIdOrName] [[keywords=]keywordMaskOrSet]
        [[level=]level] [bufferSize=<bufferSize>]
        [[[provider=]provider2IdOrName] [[providerFilter=]yes|no]]
        [[keywords=]keyword2MaskOrSet] [[perfMerge=]yes|no]
        [[level=]level2] ...

Значения по умолчанию:
        capture=no (указывает, включен ли захват пакетов в дополнение к трассировке событий)
        capturetype=physical (указывает, будет ли включен захват пакетов только
                для физических сетевых адаптеров, только для виртуальных коммутаторов или как для
                физических сетевых адаптеров, так и для виртуальных коммутаторов)
        report=no (указывает, будет ли вместе с файлом трассировки создан
                отчет)
        persistent=no (указывает, будет ли сеанс трассировки продолжаться
                при перезагрузках до тех пор, пока не будет получена команда "netsh trace stop")
        maxSize=250 MB (указывает максимальный размер файла трассировки; "0" - без ограничений)
        bufferSize=512 (указывает размер буфера трассировки в КБ, мин. 4, макс. 16384)
        fileMode=circular
        overwrite=yes (указывает, будет ли перезаписан существующий файл вывода
                трассировки)
        correlation=disabled (указывает, будут ли связанные события соотноситься и
                объединяться в группу)
        perfMerge=yes (указывает, будут ли метаданные производительности объединяться с данными
                трассировки)
        traceFile=%LOCALAPPDATA%\Temp\NetTraces\[sessionname]NetTrace.etl
                (указывает расположение файла вывода)
        providerFilter=no (указывает, включен ли фильтр поставщика)
        sessionname='' (указывает имя для сеанса трассировки, чтобы
                можно было собрать одновременные трассировки.

Если для параметров поставщика keywords и level значения не заданы, по умолчанию используются значения all и 255 соответственно.

Пример:

netsh trace start scenario=InternetClient capture=yes

        Запускает трассировку сценария InternetClient и зависящих от него
                поставщиков и включает захват пакетов только для физических сетевых адаптеров.
        Трассировка остановится после получения команды "netsh trace stop"
                или после перезагрузки системы.
        Для файла вывода будут использованы имя и расположение по умолчанию.
                При наличии там старого файла он будет перезаписан.

netsh trace start provider=microsoft-windows-wlan-autoconfig
        keywords=state,ut:authentication

        Запускает трассировку для поставщика microsoft-windows-wlan-autoconfig
        Трассировка завершится после получения команды "netsh trace stop" или
                после перезагрузки системы.
        Для файла вывода будут использованы имя и расположение по умолчанию.
                При наличии там старого файла он будет перезаписан.
        В журнал будут записываться только события с ключевыми словами "state" или "ut:authentication".

        Команду "netsh trace show provider" можно использовать для просмотра
                поддерживаемых ключевых слов и уровней.

Фильтры захвата:
        Фильтры захвата поддерживаются, только если захват явно
        включен параметром capture=yes. Используйте команду "netsh trace show
        CaptureFilterHelp" для отображения списка поддерживаемых фильтров захвата и сведений об их использовании.

Фильтры поставщиков:
        Фильтры поставщиков поддерживаются многими поставщиками и включаются параметром
        providerFilter=Yes после каждого поставщика.
        Используйте команду "netsh trace show ProviderFilterHelp" для отображения списка
        поддерживаемых фильтров поставщиков для каждого поставщика и их использования.

Создаём директорию для сохранения дампа. Формируем запрос, в котором указываем параметры захвата и имя файла для дампа, выполняем.

netsh trace start capture=yes ipv4.address=10.12.54.14 fileMod=single maxsize=0 traceFile=C:\dump\NetTrace2.etl

Для остановки захвата трафика выполняем:

netsh trace stop

net

Процесс остановки может быть долгим, если данных много. В итоге получаем два файла:

  • CAB
  • ETL

net

Мы получили дамп трафика в формате Netmon (ETL), его можно анализировать в Network Monitor. А как быть, если нам нужно анализировать трафик в виде WireShark (PCAPNG)?

Конвертация ETL в PCAPNG

На такой случай есть утилита etl2pcapng.

https://github.com/microsoft/etl2pcapng

На всякий случай сохранил себе в Сборку для системного администратора.

Качаем, распаковываем.

net

Туда де скидываю ETL файл.

net

Запускаем командную строку под администратором. Использовать утилиту просто:

etl2pcapng <infile> <outfile>

Выполняю:

etl2pcapng.exe NetTrace2.etl NetTrace2.pcapng

net

Получаем файл PCAPNG.

net

Ссылки

Wireshark — анализатор сетевого трафика

tcpdump — анализатор сетевого трафика

PktMon — анализатор сетевого трафика

Теги

 

Похожие материалы

PktMon — анализатор сетевого трафика

PktMon.exe — встроенная утилита в Windows 10 и Windows Server 2019, позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.

Теги

RDCMan — Remote Desktop Connection Manager

В копилку полезных тулзов для системного администрирования добавляю новую (хорошо забытую старую) программку от Microsoft под названием RDCMan или Remote Desktop Connection Manager. Распространяется бесплатно. Весит мало. Ставится быстро. Польза огромная. Данная программа позволяет управлять большим количеством удалённых рабочих столов.

Теги