我创建这个项目是为了帮助非开发人员深入研究Windows事件追踪(ETW)和Windows预处理器追踪(WPP)。

Sealighter利用功能丰富的Krabs ETW库,实现对ETW和WPP提供程序及事件的详细过滤和分类。
您可以订阅和过滤多个提供程序,包括用户模式提供程序、内核追踪和WPP追踪,并将事件以JSON格式输出到stdout、文件或Windows事件日志(对于高流量追踪如FileIO非常有用)。无需了解提供程序可能产生的事件或其格式,Sealighter会自动捕获和解析任何被要求的事件。
随后可以在Python、PowerShell中从JSON解析事件,或转发到Splunk或ELK进行进一步搜索。
过滤可以针对事件的各个方面进行,从ID或Opcode,到匹配属性值,再到在整个事件中执行任意字符串搜索(在WPP追踪中或在不知道事件结构但了解其内容时很有用)。您还可以链接多个过滤器,或对过滤器取反。您还可以按ID过滤最大事件数,便于调查新提供程序而不被相似事件淹没。
ETW对红蓝双方团队都是一个极为有用的系统。红队可以洞察Windows组件的内部工作方式,蓝队可能获得关于可疑活动的宝贵见解。
一个常见的研究循环如下:
logman query providers识别感兴趣的ETW提供程序,或在二进制文件中寻找WPP追踪直接与ETW事件打交道可能很困难,因为需要编写代码来处理和解析来自复杂的ETW API的事件。如果您不是强大的程序员(或不想处理API),唯一的其他选择是使用一系列较旧的内置Windows工具将事件以二进制etl文件写入磁盘,然后再处理这些文件。WPP追踪使得问题更加复杂,几乎不提供易于查找的关于提供程序及其事件的数据。
像JDU2600's Event List 和ETWExplorer这样的项目提供了一些静态洞察,但提供程序通常包含混淆的事件名称比如Event(1001),这意味着最有趣的数据只有通过动态运行追踪并观察输出才能显现。
在某种程度上,这与FuzzySec的SilkETW处于类似的领域。但是,虽然Silk更面向防御者且更接近生产就绪,但本工具是为像我这样的研究人员设计的,因此包含了一些我在Silk中无法获得的功能,这主要是由于它们使用的底层库不同。更多信息请参见这里。
大概是那些了解ETW基础知识,并真正想深入探索从中可以获取哪些数据,而又不想编写代码或手动弄明白如何获取和解析事件的人。
请阅读以下页面:
安装 - 如何开始运行Sealighter,包括一个简单配置,以及如何根据需要设置Windows事件日志。
配置 - 如何配置Sealighter,包括如何指定要记录的提供程序以及记录位置。
过滤 - 深入探讨Sealighter提供的所有过滤类型。
缓冲 - 如何使用缓冲将多个相似事件报告为一个
解析数据 - 如何从Sealighter获取和解析数据。
场景 - 我在研究中如何使用Sealighter的实例场景演练。
限制 - Sealighter不太好或完全不能做的事情。
这个名字是海鲜增亮剂的缩写,在澳洲我们用它来指代假蟹肉。由于它构建在Krabs ETW之上,我觉得这个名字很有趣。
随时可以提交问题,尽管我在比较文档中提到,我只是一个人,这是一个研究就绪的工具,而非生产就绪。