preludeorg/ThreatIntelligenceConsumer

GitHub: preludeorg/ThreatIntelligenceConsumer

利用 AutoLogger 会话权限校验机制的设计特点,在无需 PPL 权限或内核驱动的情况下消费被保护的 Microsoft-Windows-Threat-Intelligence ETW 提供者事件流。

Stars: 72 | Forks: 12

# ThreatIntelligenceConsumer 这是一个概念验证(POC),用于在无需受保护进程Light(PPL)权限/签名或进行内核模式补丁的驱动程序的情况下,使用 Microsoft-Windows-Threat-Intelligence ETW 提供程序。它已在 Windows 11 24H2 和 Windows 11 25H2(以及本 POC 上传时最新的 Canary 预览版)上进行了正式测试。 ## 输出 ![截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6d58920a45202107.png) ### 概述 `ThreatIntelligenceConsumer` 利用了有关 [AutoLogger](https://learn.microsoft.com/en-us/windows/win32/etw/configuring-and-starting-an-autologger-session) ETW 会话如何“保护”使用特权 ETW 提供程序的逻辑,以防止被低权限进程使用。 请参阅[相关博客](https://www.originhq.com/blog/securitytrace-etw-ppl)了解技术细节。 ### 系统要求 1. 管理员权限 2. 写入 AutoLogger 注册表项 3. 运行 `ThreatIntelligenceConsumer.exe` 4. x64。由于函数挂钩和自定义汇编,不支持其他架构。 ### 操作说明 1. 首先,安装 `threat_intel_auto_logger.reg` 注册表项。 2. 重启机器。这是为了让您的 AutoLogger 会话在机器启动时注册并运行。 3. 编译并运行 `ThreatIntelligenceConsumer` 项目及相关的输出可执行文件。 ### 注意事项 - `ThreatIntelligenceConsumer` 项目会尽最大努力确定记录器 ID(`TraceProperties->Wnode.HistoricalContext`)。这在 99.9% 的情况下应该有效,因为检索此值非常具有确定性。但是,如果记录器 ID 错误,项目将发出错误,或者此外,将不会收到任何 ETW 事件。在这种情况下,可以从内核调试器中提取记录器 ID(请参阅博客,了解为什么在非 PPL 情况下无法查询正在发出 Threat-Intelligence ETW 事件的 AutoLogger ETW 会话): ``` lkd> dx ((nt!_WMI_LOGGER_CONTEXT*(*)[0x50])(((nt!_ESERVERSILO_GLOBALS*)&nt!PspHostSiloGlobals)->EtwSiloState->EtwpLoggerContext))->Where(l => l != 1)->Select(i => i->LoggerName) ((nt!_WMI_LOGGER_CONTEXT*(*)[0x50])(((nt!_ESERVERSILO_GLOBALS*)&nt!PspHostSiloGlobals)->EtwSiloState->EtwpLoggerContext))->Where(l => l != 1)->Select(i => i->LoggerName) [2] : "Circular Kernel Context Logger" [Type: _UNICODE_STRING] [3] : "Eventlog-Security" [Type: _UNICODE_STRING] [4] : "CimFSUnionFS-Filter" [Type: _UNICODE_STRING] [5] : "SdmaTracingEvents" [Type: _UNICODE_STRING] [6] : "DefenderApiLogger" [Type: _UNICODE_STRING] [7] : "DefenderAuditLogger" [Type: _UNICODE_STRING] [8] : "DiagLog" [Type: _UNICODE_STRING] [9] : "Diagtrack-Listener" [Type: _UNICODE_STRING] [10] : "EventLog-Application" [Type: _UNICODE_STRING] [11] : "EventLog-Intel-SST-DVD-DVD_ETW_Telemetry" [Type: _UNICODE_STRING] [12] : "MpWppUpdateLogging" [Type: _UNICODE_STRING] [13] : "EventLog-Microsoft-Windows-Hotpatch-Monitor-Analytic" [Type: _UNICODE_STRING] [14] : "EventLog-System" [Type: _UNICODE_STRING] [15] : "FilterMgr-Logger" [Type: _UNICODE_STRING] [16] : "iclsClient" [Type: _UNICODE_STRING] [17] : "iclsProxy" [Type: _UNICODE_STRING] [18] : "Intel-Gfx-Driver" [Type: _UNICODE_STRING] [19] : "LwtNetLog" [Type: _UNICODE_STRING] [20] : "Microsoft-Windows-Rdp-Graphics-RdpIdd-Trace" [Type: _UNICODE_STRING] [21] : "8696EAC4-1288-4288-A4EE-49EE431B0AD9" [Type: _UNICODE_STRING] [22] : "NetCore" [Type: _UNICODE_STRING] [23] : "NtfsLog" [Type: _UNICODE_STRING] [24] : "PlatformLicenseManagerService" [Type: _UNICODE_STRING] [25] : "RadioMgr" [Type: _UNICODE_STRING] [26] : "MpWppTracing-20260103-050646-00000003-fffffffeffffffff" [Type: _UNICODE_STRING] [27] : "ReFSLog" [Type: _UNICODE_STRING] [28] : "WPR_initiated_DiagTrackAotLogger_WPR System Collector" [Type: _UNICODE_STRING] [29] : "WinDiag-Realtime-Session" [Type: _UNICODE_STRING] [30] : "UBPM" [Type: _UNICODE_STRING] [31] : "WdiContextLog" [Type: _UNICODE_STRING] [32] : "WiFiDriverIHVSession" [Type: _UNICODE_STRING] [33] : "WiFiSession" [Type: _UNICODE_STRING] [35] : "umstartup" [Type: _UNICODE_STRING] [36] : "SCM" [Type: _UNICODE_STRING] [37] : "SleepStudyTraceSession" [Type: _UNICODE_STRING] [38] : "COM" [Type: _UNICODE_STRING] [39] : "Terminal-Services-LSM" [Type: _UNICODE_STRING] [40] : "Terminal-Services-RCM" [Type: _UNICODE_STRING] [41] : "UpdateSessionOrchestration" [Type: _UNICODE_STRING] [42] : "UserMgr" [Type: _UNICODE_STRING] [43] : "CldFltLog" [Type: _UNICODE_STRING] [44] : "WFP-IPsec Diagnostics" [Type: _UNICODE_STRING] [45] : "ScreenOnPowerStudyTraceSession" [Type: _UNICODE_STRING] [46] : "Admin_PS_Provider" [Type: _UNICODE_STRING] [49] : "SMLS_Trace_Listener" [Type: _UNICODE_STRING] [50] : "MoUxCoreWorker" [Type: _UNICODE_STRING] [51] : "MpWppCoreTracing-20260102-230646-00000003-100000000" [Type: _UNICODE_STRING] [52] : "1DSListener" [Type: _UNICODE_STRING] [53] : "SHS-01022026-231728-7-1ff" [Type: _UNICODE_STRING] [54] : "WPR_initiated_DiagTrackMiniLogger_WPR System Collector" [Type: _UNICODE_STRING] [55] : "WINNETESP" [Type: _UNICODE_STRING] ``` 关联的索引即为 ID。例如,`DiagLog`(如上所示)的记录器 ID 为 `8`。 - 该项目仅打印发出 ETW 事件的提供程序的 GUID(即 Threat-Intelligence GUID)。事件解析由用户自行实现。有关如何通过 [TDH](https://learn.microsoft.com/en-us/windows/win32/etw/retrieving-event-data-using-tdh) 解析基于清单的 ETW 提供程序的详细信息,请参阅相关文档。 - 提供程序的关键字掩码被硬编码为启用所有 Threat-Intelligence ETW 事件。
标签:0day挖掘, AutoLogger, C/C++, Conpot, EDR绕过, ETW, PoC, PPL, UML, Windows安全, 事件跟踪, 事务性I/O, 云资产清单, 信标, 内核安全, 命令控制, 威胁情报, 开发者工具, 数据展示, 数据采集, 无驱动, 暴力破解, 权限绕过, 特权提升, 私有化部署, 红队, 自动化部署, 逆向工程, 防御规避, 高交互蜜罐