WMI 事件订阅持久化核查是什么
WMI 事件订阅可以在特定条件触发时自动执行命令,是常被忽略的持久化位置。它由三类对象组成:事件过滤器定义触发条件,事件消费者定义执行动作,绑定对象把两者关联。核查时必须三类一起看,缺任何一类都不构成有效订阅。
基本信息
| 适用平台 | Windows 的 WMI 永久事件订阅 |
|---|---|
| 命名空间 | root/subscription,也存在自定义命名空间 |
| 三类对象 | 事件过滤器、事件消费者、绑定对象 |
| 常见消费者 | 命令行消费者、脚本消费者、日志文件消费者 |
典型使用场景
- 常规持久化位置都查过后仍怀疑存在驻留
- 排查每隔固定时间自动执行的可疑命令
- 复核管理软件注册的订阅是否为业务所需
- 清理前导出订阅定义作为证据
- 复盘时评估该位置是否已有监控覆盖
- 核对订阅创建时间与主机变更记录,判断是否属于计划内变更
枚举
枚举
Get-CimInstance -Namespace root/subscription -ClassName __EventFilter | Select Name, Query
Get-CimInstance -Namespace root/subscription -ClassName CommandLineEventConsumer | Select Name, CommandLineTemplate
Get-CimInstance -Namespace root/subscription -ClassName __FilterToConsumerBinding | Select Filter, Consumer
# 三类对象同时核对,只看到过滤器或消费者不足以构成有效订阅三类对象读法
| 对象 | 作用 | 可疑表现 |
|---|---|---|
| 事件过滤器 | 定义触发条件 | 条件为开机、登录等高频事件时需重点看 |
| 事件消费者 | 定义执行的动作 | 命令行指向临时目录或含编码参数 |
| 绑定对象 | 把过滤器与消费者关联 | 无对应消费者的绑定往往是清理残留 |
| 脚本与日志消费者 | 以脚本或日志方式执行 | 脚本内容需逐一阅读 |
合法的管理软件与监控代理也会注册订阅。先建立基线再判断,避免把业务组件清理掉造成监控中断。
除默认命名空间外,自定义命名空间下也可能存在订阅。只查默认路径会漏掉这一部分。
订阅定义导出后要连同触发条件一起留存,否则无法说明它在什么条件下会被执行。