事件是什么
系统日志里的 7045 记录“有新服务或驱动被安装”,包含服务名、映像路径、服务类型、启动类型与运行账户,是判断系统是否被植入持久化驻留的硬证据。安全日志侧的 4697 是服务安装审计事件,但需要预先开启审核策略才会记录。
为什么路径比名字重要
正规软件安装同样会产生 7045,因此不能一见就判定异常。关键区分点在映像路径:位于临时目录、用户目录或路径未加引号的可执行文件都可疑;正常软件一般在 Program Files 或系统目录下。再看服务类型是否为内核驱动,风险等级更高。
基本信息
| 适用平台 | Windows Server 2008 及以后、Windows 7/10/11(系统日志默认记录) |
|---|---|
| 关键字段 | ServiceName、ImagePath、ServiceType、StartType、AccountName |
| 对比事件 | 4697 为安全日志中的服务安装审计,需开启审核策略 |
| 判读要点 | 路径是否在临时或用户目录、是否为内核驱动、启动类型 |
典型使用场景
- 安全事件响应:排查是否存在攻击者植入的服务
- 软件安装后核对系统新增了哪些服务与驱动
- 梳理异常的自动启动服务,评估启动项风险
- 配合 4697 做交叉验证,弥补单一日志的缺失
- 日常巡检:定期导出新增服务清单做基线对比
常用示例
常用示例
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 20 | Select-Object TimeCreated, @{n='Name';e={$_.Properties[0].Value}}, @{n='Path';e={$_.Properties[1].Value}}, @{n='Type';e={$_.Properties[2].Value}}, @{n='Start';e={$_.Properties[3].Value}} | Format-Table -AutoSize
:: 只看路径可疑的服务安装
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 200 | Where-Object { $_.Properties[1].Value -match 'Temp|Users\\' } | Select-Object TimeCreated, Message
:: 交叉核对安全日志审计(需已开启审核)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4697} -MaxEvents 20字段读法
| 字段 | 含义 | 判读 |
|---|---|---|
| ServiceName | 服务名 | 可被伪装,不能作为可靠依据 |
| ImagePath | 服务可执行文件路径 | 出现在临时或用户目录高度可疑 |
| ServiceType | 服务类型 | 含内核驱动类型时影响更深 |
| StartType | 启动类型 | 自动启动意味着具备持久化能力 |
| AccountName | 运行账户 | 使用高权限账户需重点关注 |
正规软件安装也会产生 7045:看路径是否位于 Temp 或用户目录,才是区分正常与可疑的关键。
路径含空格却未加引号的未引用服务路径存在提权隐患,是需要排查整改的经典配置问题。