Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Winshark — Плагин Wireshark для инструментирования ETW | Kitploit
Инструменты/GitHubGitHub/airbus-cert/winshark
Сниффинг и анализ пакетовФорензикаСетевая безопасностьАнализ Журналов
GitHubairbus-cert/winshark

Winshark

Плагин Wireshark для инструментирования ETW

Репозиторий
593604 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Winshark

Плагин для Wireshark для работы с Event Tracing for Windows

Microsoft Message Analyzer устарел, и его пакеты загрузки были удалены с сайтов microsoft.com 25 ноября 2019 года. Wireshark имеет огромную библиотеку дисекторов сетевых протоколов. Лучшим инструментом для Windows был бы тот, который может собирать и смешивать все типы журналов...

Добро пожаловать, Winshark!!!

Winshark основан на бэкенде libpcap для захвата ETW (Event Tracing for Windows) и генераторе, который создаст дисекторы для всех известных провайдеров ETW на вашем компьютере. Мы добавили поддержку Tracelogging, чтобы охватить почти все методы ведения журналов в операционной системе Windows.

С помощью Winshark и возможностей Windows мы теперь можем захватывать сетевые и системные события в одном инструменте. Windows предоставляет множество провайдеров ETW, в частности один для захвата сети ;-) Больше не нужен внешний NDIS-драйвер.

Это огромное улучшение с точки зрения использования:

  • Позволяет смешивать все типы событий (системные и сетевые)
  • Позволяет использовать фильтрацию Wireshark для журнала событий
  • Позволяет отслеживать сетевые и системные логи по идентификатору процесса!!!
  • Позволяет захватывать журналы Windows и сетевой трассировку в единый pcap-файл!!!
  • Захватывать NamedPipe через драйвер фильтра файловой системы NpEtw

Если вы хотите:

  • Захватывать сетевой трафик с помощью Winshark
  • Фильтровать по идентификатору процесса
  • Захватывать трафик NamedPipe

Установка

Пожалуйста, сначала установите Wireshark. Затем просто установите Winshark.

На данный момент вам нужно заставить Wireshark интерпретировать DLT_USER 147 как ETW. Это связано с тем, что у нас ещё нет истинного значения от libpcap для нашего нового типа канала данных. Мы отправили pull request для получения выделенного значения DLT; он всё ещё на рассмотрении. Для этого откройте вкладку Preferences в панели Edit. Выберите DLT_USER в разделе Protocols и нажмите Edit для изменения таблицы инкапсуляции:

DLT_USER configuration

И установите winshark для DLT = 147 :

DLT 147 set to ETW protocol

Наслаждайтесь!

Сборка

Winshark работает на cmake:

root@kitploit:~
git clone https://github.com/airbus-cert/winshark --recursive
mkdir build_winshark
cd build_winshark
cmake ..\Winshark
cmake --build . --target package --config release

Как это работает

Чтобы лучше понять, как работает Winshark, сначала нужно понять, как работает ETW.

ETW делится на три части:

  • Провайдер, который генерирует логи и идентифицируется уникальным ID
  • Сессия, которая объединяет один или несколько провайдеров
  • Потребитель, который читает логи, испускаемые сессией

Провайдер

Существует много разных типов провайдеров. Наиболее распространённые и полезные — это зарегистрированные провайдеры. Зарегистрированный провайдер (или провайдер на основе манифеста) записан в разделе реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers. Это устанавливает связь между ID провайдера и dll. Манифест находится в соответствующей dll в ресурсе с именем WEVT_TEMPLATE.

Вы можете вывести список всех зарегистрированных провайдеров на вашей машине с помощью logman:

root@kitploit:~
logman query providers

Вы также можете вывести список всех провайдеров, связанных с определённым процессом:

root@kitploit:~
logman query providers -pid 1234

Некоторые из них могут отображаться без имени; такие провайдеры могут создавать логи WPP или TraceLogging.

Сессия

Сессии создаются для сбора логов от нескольких провайдеров. Вы можете создать свою собственную сессию с помощью logman:

root@kitploit:~
logman start Mysession -p "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS" -ets -rt
logman update MySession -p "Microsoft-Windows-NDIS-PacketCapture" -ets -rt

Вы можете вывести список всех активных сессий из командной строки с правами администратора:

root@kitploit:~
logman query -ets

Data Collector Set                      Type                          Status
-------------------------------------------------------------------------------
...
EventLog-Application                    Trace                         Running
EventLog-Microsoft-Windows-Sysmon-Operational Trace                         Running
EventLog-System                         Trace                         Running
...
The command completed successfully.

Здесь вы можете увидеть несколько интересных сессий, используемых системным журналом событий для захвата логов из сессий Application и System, а также из Sysmon.

Потребитель

Потребитель — это простая программа, которая читает логи из сессии. Известные потребители:

  • Event Logger
  • logman
  • netsh
  • tracert

И теперь Winshark!!! Winshark — это простой потребитель ETW. Реальным базовым потребителем является libpcap (wpcap.dll для Windows), который используется dumpcap.exe — процессом, отвечающим за захват пакетов.

Wireshark

Wireshark разделён на три части (да, он тоже):

  • Wireshark.exe, который отвечает за разбор и дисекцию протоколов
  • dumpcap.exe, который отвечает за захват пакетов
  • libpcap (wpcap.dll), который отвечает за взаимодействие между dumpcap.exe и операционной системой

Winshark встраивается в первую и последнюю части. Он реализует бэкенд для libpcap для захвата событий ETW. Winshark работает с сессиями ETW, поэтому вы можете выбрать сессию ETW вместо сетевого интерфейса при начале захвата. Затем Winshark генерирует дисекторы lua для каждого зарегистрированного на вашем компьютере провайдера на основе манифеста во время установки. Winshark также может разбирать провайдеры на основе tracelogging.

Захват сетевого трафика

Для захвата сетевого трафика с помощью Winshark можно использовать два простых способа:

pktmon (Packet Monitor)

pktmon — это встроенный кросскомпонентный инструмент диагностики сети для Windows. Он может использоваться для захвата пакетов, обнаружения отбрасывания пакетов, фильтрации и подсчёта пакетов (поддерживается с RS5)

(https://docs.microsoft.com/en-us/windows-server/networking/technologies/pktmon/pktmon)

root@kitploit:~
pktmon start -c -m real-mode

вы можете запустить pktmon -h для получения дополнительных опций (от имени администратора)

Например: Добавить фильтр для пакетов

root@kitploit:~
pktmon filter add -t icmp
pktmon filter add -t tcp -p 80

Затем запустите Wireshark с правами администратора и выберите интерфейс Pktmon: ETW interface selection

Это запустит захват пакетов:

ETW packet capture

netsh trace

root@kitploit:~
netsh.exe trace start capture=yes report=no correlation=no

И затем создайте сессию ETW, связанную с провайдером Microsoft-Windows-NDIS-PacketCapture:

root@kitploit:~
logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets

Затем запустите Wireshark с правами администратора и выберите интерфейс Winshark-PacketCapture:

ETW interface selection

Это запустит захват пакетов:

ETW packet capture

Фильтрация по идентификатору процесса

ETW помечает каждый пакет заголовком, содержащим метаданные об отправителе. Одним из них является Process ID отправителя. Это огромное улучшение по сравнению с классическим захватом пакетов от драйвера NDIS. Просто введите в поле фильтра Wireshark следующее выражение:

root@kitploit:~
winshark.header.ProcessId == 1234

ETW packet capture

Захват NamedPipe

@kobykahane предоставил драйвер фильтра файловой системы, который генерирует ETW для каждого действия, выполняемого над NamedPipe.

Установка

  • Отключите проверку подписи драйвера в тестовом режиме
root@kitploit:~
bcdedit /set testsigning on
  • Установите NpEtwSetup.msi
  • Перезагрузитесь
  • Обновите дисектор Winshark, дважды щёлкнув C:\Program Files\Wireshark\WinsharkUpdate.bat с правами Администратора

Захват

  • Откройте cmd.exe в режиме Администратора
  • Запустите драйвер
root@kitploit:~
sc start NpEtw
  • Создайте сессию ETW
root@kitploit:~
logman start namedpipe -p NpEtw -ets -rt
  • Запустите Wireshark и выберите сессию namedpipe. Наслаждайтесь!

ETW namedpipe capture

SSTIC (Симпозиум по безопасности информационных технологий и коммуникаций)

Этот проект является частью презентации, подготовленной для SSTIC

Скачать инструмент