1. 极安网首页
  2. 网络安全工具

Winshark:控制ETW的Wireshark插件

Winshark:控制ETW的Wireshark插件-极安网

Winshark

Winshark是一款用于控制ETW的Wireshark插件,ETW(Event Tracing for Windows)提供了一种对用户层应用程序和内核层驱动创建的事件对象的跟踪记录机制。为开发者提供了一套快速、可靠、通用的一系列事件跟踪特性。Microsoft Message Analyzer早就已经过时了,而且它的下载包早在2019年11月25日也被微软从其官网上移除了。Wireshark建立了一个庞大的网络协议剖析器工具库,为了帮助广大研究人员更好地收集和分析各种类型的网络日志,Winshark便应运而生。

Winshark基于libpcap作为后端来捕捉ETW(Event Tracing for Windows),并且提供了一个生成器来在设备上为已知ETW生成所有的解析器。除此之外,我们害廷加了Tracelogging支持来覆盖绝大多数的Windows操作系统日志技术。

在Winshark以及Windows系统强大功能的帮助下,我们可以在同一工具下捕捉网络和事件日志。

在工具使用方面,Winshark的诞生有着重要意义:

  • 支持混合所有类型的事件,包括网络事件和系统事件;
  • 支持针对事件日志使用Wireshark过滤功能;
  • 支持通过进程ID来跟踪网络和系统日志;
  • 支持捕捉pacp文件中的Windows日志和网络痕迹;
  • 通过NpEtw文件系统过滤驱动器捕捉命名管道;

工具安装

在使用Winshark之前,请先安装Wireshark。

现在,你需要让Wireshark将DLT_USER 147解释为ETW,这是因为我们在使用之前还没有从libpcap获取到真实的值,之后我们才能发送一个pull请求来获取到专门的DLT值。在这里,我们需要打开Edit控制面板中的Preferences标签页,选择Protocols设置下的DLT_USER,然后点击Edit并填写完对话框中的信息:

Winshark:控制ETW的Wireshark插件-极安网

接下来,将etw值设置为DLT = 147:

Winshark:控制ETW的Wireshark插件-极安网

工具构建

Winshark由cmake驱动,工具的构建配置命令如下:

git clone https://github.com/airbus-cert/winshark --recursive

mkdir build_winshark

cd build_winshark

cmake ..\Winshark

cmake --build . --target package --config release

捕捉网络流量

为了使用Winshark来捕捉网络流量,我们需要通过netsh来激活网络追踪功能:

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

接下来,创建一个跟Microsoft-Windows-NDIS-PacketCapture供应器绑定的ETW会话:

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

然后使用管理员权限启动Wireshark,并选择Winshark-PacketCapture接口:

Winshark:控制ETW的Wireshark插件-极安网

接下来,我们就可以开始捕捉网络数据包了:

Winshark:控制ETW的Wireshark插件-极安网

基于进程ID过滤

ETW利用每个数据包的Header来进行数据包标记,而Header中总会包含关于数据发送方的某些元数据,其中一个就是发送工具的进程ID。我们可以使用下列语句来配置Wireshark的过滤功能:

etw.header.ProcessId == 1234

Winshark:控制ETW的Wireshark插件-极安网

捕捉命名管道

安装

首先,我们需要使用下列命令通过测试模式下的驱动器签名检测:

bcdedit /set testsigning on

接下来,安装NpEtwSetup.msi:【点我安装】,然后重启设备。

然后使用管理员权限运行“C:\Program Files\Wireshark\WinsharkUpdate.bat”来更新Winshark解析器。

命名管道捕捉

首先,使用管理员权限打开一个cmd.exe命令行窗口,然后使用下列命令开启驱动器:

sc start NpEtw

接下来,创建一个ETW会话:

logman start namedpipe -p NpEtw -ets -rt

现在,打开Wireshark,然后选择namedpipe会话即可。

Winshark:控制ETW的Wireshark插件-极安网

项目地址

Winshark:【GitHub传送门

原创文章,作者: Admin ,转载请注明出处:https://secvery.com/4625.html