Winshark:一款用于控制ETW的Wireshark插件
字数 1147 2025-08-15 21:32:37

Winshark:控制ETW的Wireshark插件使用指南

1. Winshark概述

Winshark是一款用于控制ETW(Event Tracing for Windows)的Wireshark插件,它能够帮助研究人员在同一工具下捕捉和分析网络事件和系统事件。

主要特性

  • 基于libpcap后端捕捉ETW事件
  • 提供生成器为已知ETW生成所有解析器
  • 支持Tracelogging覆盖绝大多数Windows操作系统日志技术
  • 支持混合所有类型的事件(网络事件和系统事件)
  • 支持使用Wireshark过滤功能针对事件日志
  • 支持通过进程ID跟踪网络和系统日志
  • 支持在pcap文件中捕捉Windows日志和网络痕迹
  • 通过NpEtw文件系统过滤驱动器捕捉命名管道

2. 安装准备

2.1 系统要求

  • 已安装Wireshark
  • Windows操作系统

2.2 配置Wireshark

  1. 打开Wireshark的"Edit"菜单
  2. 选择"Preferences"标签页
  3. 在左侧选择"Protocols"下的"DLT_USER"
  4. 点击"Edit"按钮
  5. 添加ETW条目并设置DLT = 147

3. 构建Winshark

构建步骤

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

4. 捕捉网络流量

4.1 激活网络追踪

netsh.exe trace start capture=yes report=no correlation=no

4.2 创建ETW会话

logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets

4.3 开始捕捉

  1. 以管理员权限启动Wireshark
  2. 选择"Winshark-PacketCapture"接口
  3. 开始捕捉网络数据包

5. 基于进程ID过滤

ETW数据包Header中包含发送工具的进程ID,可使用以下过滤语句:

etw.header.ProcessId == 1234

6. 捕捉命名管道

6.1 安装准备

  1. 启用测试模式下的驱动器签名检测:
    bcdedit /set testsigning on
    
  2. 安装NpEtwSetup.msi
  3. 重启设备
  4. 以管理员权限运行"WinsharkUpdate.bat"更新解析器

6.2 捕捉命名管道

  1. 以管理员权限打开cmd.exe
  2. 启动驱动器:
    sc start NpEtw
    
  3. 创建ETW会话:
    logman start namedpipe -p NpEtw -ets -rt
    
  4. 打开Wireshark,选择"namedpipe"会话

7. 项目资源

项目地址:Winshark GitHub仓库

8. 注意事项

  1. 部分操作需要管理员权限
  2. 捕捉命名管道前必须启用测试签名模式
  3. 使用前确保正确配置Wireshark的DLT_USER设置
  4. 网络流量捕捉需要先激活Windows网络追踪功能

9. 技术背景

ETW(Event Tracing for Windows)是Windows提供的事件跟踪机制,具有以下特点:

  • 快速、可靠、通用的事件跟踪特性
  • 支持用户层应用程序和内核层驱动创建的事件对象
  • 替代已过时的Microsoft Message Analyzer

Winshark结合了Wireshark强大的网络协议分析能力和ETW的全面事件跟踪能力,为Windows系统监控和分析提供了统一平台。

Winshark:控制ETW的Wireshark插件使用指南 1. Winshark概述 Winshark是一款用于控制ETW(Event Tracing for Windows)的Wireshark插件,它能够帮助研究人员在同一工具下捕捉和分析网络事件和系统事件。 主要特性 基于libpcap后端捕捉ETW事件 提供生成器为已知ETW生成所有解析器 支持Tracelogging覆盖绝大多数Windows操作系统日志技术 支持混合所有类型的事件(网络事件和系统事件) 支持使用Wireshark过滤功能针对事件日志 支持通过进程ID跟踪网络和系统日志 支持在pcap文件中捕捉Windows日志和网络痕迹 通过NpEtw文件系统过滤驱动器捕捉命名管道 2. 安装准备 2.1 系统要求 已安装Wireshark Windows操作系统 2.2 配置Wireshark 打开Wireshark的"Edit"菜单 选择"Preferences"标签页 在左侧选择"Protocols"下的"DLT_ USER" 点击"Edit"按钮 添加ETW条目并设置DLT = 147 3. 构建Winshark 构建步骤 4. 捕捉网络流量 4.1 激活网络追踪 4.2 创建ETW会话 4.3 开始捕捉 以管理员权限启动Wireshark 选择"Winshark-PacketCapture"接口 开始捕捉网络数据包 5. 基于进程ID过滤 ETW数据包Header中包含发送工具的进程ID,可使用以下过滤语句: 6. 捕捉命名管道 6.1 安装准备 启用测试模式下的驱动器签名检测: 安装NpEtwSetup.msi 重启设备 以管理员权限运行"WinsharkUpdate.bat"更新解析器 6.2 捕捉命名管道 以管理员权限打开cmd.exe 启动驱动器: 创建ETW会话: 打开Wireshark,选择"namedpipe"会话 7. 项目资源 项目地址: Winshark GitHub仓库 8. 注意事项 部分操作需要管理员权限 捕捉命名管道前必须启用测试签名模式 使用前确保正确配置Wireshark的DLT_ USER设置 网络流量捕捉需要先激活Windows网络追踪功能 9. 技术背景 ETW(Event Tracing for Windows)是Windows提供的事件跟踪机制,具有以下特点: 快速、可靠、通用的事件跟踪特性 支持用户层应用程序和内核层驱动创建的事件对象 替代已过时的Microsoft Message Analyzer Winshark结合了Wireshark强大的网络协议分析能力和ETW的全面事件跟踪能力,为Windows系统监控和分析提供了统一平台。