You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ETW实时捕获Microsoft-Windows-Security-Auditing事件?

解决Microsoft-Windows-Security-Auditing ETW捕获为空的问题

核心原因

Microsoft-Windows-Security-Auditing作为安全类提供程序,其事件路由和权限要求与普通ETW提供程序(如RPC)不同:

  • 默认不会向普通跟踪会话发送事件,需明确指定要捕获的事件级别和关键字
  • 需要同时启用SeSecurityPrivilege和SeAuditPrivilege权限

具体解决方案

1. 检查并启用必要权限

以SYSTEM身份运行PowerShell,执行以下命令确认权限状态:

whoami /priv

确保SeSecurityPrivilege和SeAuditPrivilege的状态为Enabled。若未启用,可通过以下命令启用:

# 启用SeSecurityPrivilege
$priv = [System.Security.Principal.WindowsIdentity]::GetCurrent().Privileges | Where-Object {$_.Privilege -eq "SeSecurityPrivilege"}
$priv.Attributes = [System.Security.Principal.PrivilegeAttribute]::Enabled

# 启用SeAuditPrivilege
$priv = [System.Security.Principal.WindowsIdentity]::GetCurrent().Privileges | Where-Object {$_.Privilege -eq "SeAuditPrivilege"}
$priv.Attributes = [System.Security.Principal.PrivilegeAttribute]::Enabled

2. 使用指定参数启动logman跟踪会话

必须明确指定事件级别和关键字,否则不会捕获任何安全审计事件。例如,捕获所有成功和失败的审计事件:

logman start trace evt -p Microsoft-Windows-Security-Auditing -level 0x4 -keywords AuditSuccess,AuditFailure -ets

参数说明:

  • -level 0x4:对应Informational级别,覆盖安全审计事件的常用级别
  • -keywords AuditSuccess,AuditFailure:指定捕获成功和失败的审计事件,可根据需求调整(如仅保留AuditSuccess)

3. 验证捕获结果

执行注销登录等操作生成安全事件后,停止会话:

logman stop evt -ets

使用Get-WinEvent查看ETL文件:

Get-WinEvent -Path .\evt.etl -Oldest

若仍无结果,可尝试用tracerpt工具解析ETL文件,确认是否有原始数据:

tracerpt .\evt.etl -o text -of evt.txt

查看生成的evt.txt文件,若包含事件数据则说明捕获成功,只是Get-WinEvent解析存在兼容问题;若为空则需重新检查权限和跟踪参数。

4. 备选方案:直接导出安全日志到ETL文件

若仅需获取已生成的安全审计事件而非实时捕获,可使用wevtutil直接导出:

wevtutil qe Security /f:etl /o:file /path:security_events.etl

该方法无需ETW跟踪会话,直接从安全日志导出为ETL格式。


内容的提问来源于stack exchange,提问作者1c3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:45:03