0241、Windows 逆向攻防:WMI 事件监控
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 14.4 - 14.7。WMI 更偏系统管理和事件订阅,适合做进程、服务、系统信息和安全事件的观察入口。和 ETW 相比,WMI 更接近“查询与订阅”,学习重点是 COM 初始化、命名空间连接、查询语句和事件回调。
1、内容范围
| 小节 | 主题 | 复盘重点 |
|---|---|---|
| 14.4 | Windows Management Instrumentation | WMI 的用途、命名空间、类和事件订阅 |
| 14.5 | QueryInterface & Indication | COM 接口查询、事件指示对象和回调理解 |
| 14.6 | CoCreateInstance & Connect | 创建 WMI 服务对象并连接命名空间 |
| 14.7 | InstanceCreationEvent | 进程创建事件监听、字段提取和日志记录 |
2、逐节复盘
14.4 Windows Management Instrumentation
WMI 可以用来查询系统对象,也可以订阅系统事件。常见对象包括进程、服务、驱动、网络适配器、系统版本等。安全分析里经常用它观察进程创建、服务变更和持久化痕迹。
| 概念 | 说明 |
|---|---|
| Namespace | 命名空间,例如 root\\cimv2 |
| Class | 系统对象类型,例如进程、服务、事件 |
| Query | 类 SQL 的查询语句 |
| Event | 对对象创建、修改、删除的订阅 |
14.5 QueryInterface & Indication
WMI 的底层常和 COM 接口打交道。QueryInterface 用来获取对象支持的接口;事件回调中拿到的 Indication 对象则代表一次具体事件。
| 项目 | 复盘重点 |
|---|---|
| COM 接口 | 理解对象通过接口暴露能力 |
| 引用计数 | 关注对象生命周期,避免资源泄露 |
| Indication | 从事件对象中提取字段 |
| 错误码 | COM 调用失败时要记录 HRESULT |
14.6 CoCreateInstance & Connect
这一节重点是把 WMI 连接跑通。复盘时不要只写“连接成功”,要写清楚连接到哪个命名空间、使用什么权限、查询什么类、失败时错误码是什么。
| 阶段 | 记录内容 |
|---|---|
| 初始化 | COM 初始化状态和安全设置 |
| 创建对象 | WMI Locator 或相关服务对象 |
| 连接命名空间 | 目标 namespace、认证方式、权限 |
| 查询准备 | 查询语句、事件类型、轮询间隔 |
14.7 InstanceCreationEvent
进程创建事件是 WMI 里最常见的安全观察点。它能帮助自己看到“什么时候出现了新进程、进程叫什么、路径是什么、由什么触发”。
| 字段 | 用途 |
|---|---|
| ProcessId | 当前进程 ID |
| ParentProcessId | 父进程 ID |
| Name | 进程名 |
| ExecutablePath | 可执行文件路径 |
| CommandLine | 启动参数 |
3、WMI 与 ETW 的区别
| 维度 | WMI | ETW |
|---|---|---|
| 使用方式 | 查询和订阅系统对象 | 事件跟踪流水线 |
| 上手难度 | 查询语句更直观 | 事件模型更底层 |
| 数据量 | 相对聚焦 | 可非常大 |
| 安全用途 | 管理、审计、持久化检查 | 行为时间线、深度事件分析 |
4、防护复盘建议
| 场景 | 复盘重点 |
|---|---|
| 进程创建 | 路径、命令行、父子关系 |
| 服务变化 | 服务名、可执行路径、启动类型 |
| 持久化排查 | WMI 事件过滤器、消费者和绑定关系 |
| 工具开发 | 权限、错误码、日志格式和资源释放 |
5、学习检查清单
| 检查项 | 状态 |
|---|---|
| 能说明 WMI 的命名空间、类和查询是什么 | 待复盘 |
| 能理解 COM 接口和 HRESULT 在 WMI 里的作用 | 待复盘 |
| 能设计进程创建事件的日志字段 | 待复盘 |
| 能比较 WMI 与 ETW 在安全监控中的差异 | 待复盘 |
WMI 可用于管理和监控,也可能被滥用为持久化手段。这里按防护监控和取证复盘来整理。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!










