首页/安全/取证与溯源速查/服务安装日志(7045)判读
日志溯源53 条

服务安装日志(7045)判读

系统日志 7045 记录新服务安装:服务名、映像路径与启动类型一览,异常服务是主机持久化的典型痕迹。

取证与溯源速查安全更新于 2026-10-13

服务安装日志(7045)判读

Windows 系统日志中由服务控制管理器(Service Control Manager)写入的 7045 事件记录新服务安装,字段包括服务名、映像路径(ImagePath)、服务类型、启动类型与运行账号。异常服务是主机持久化的典型痕迹:映像路径位于用户目录、临时目录,或指向无签名的可执行文件时最需要关注。配套事件能补齐状态变化:7036 记录服务启停状态变化,7040 记录启动类型被修改,7000/7009 记录启动失败。

基本信息

适用平台Windows 7/10/11 与 Windows Server 2008 R2 及以上
日志位置系统日志(LogName=System),提供程序为 Service Control Manager
核心事件7045 安装新服务、7036 状态变化、7040 启动类型变更、7000/7009 启动失败
关键字段ServiceName、ImagePath、ServiceType、StartType、AccountName
当前状态核验sc qc <服务名>、Get-CimInstance Win32_Service、注册表 Services 键

典型使用场景

  • 发现被植入的常驻服务:事件窗口内出现非同期的服务安装记录
  • 定位载荷路径:ImagePath 直接给出可执行文件位置,便于计算哈希
  • 区分软件安装带来的正常服务与人为创建的服务:结合发布窗口与签名信息
  • 还原服务的启动与失败过程,判断载荷是否真正运行过
  • 处置前确认服务是否仍在运行与自启动,决定禁用与清理顺序

筛查与核验

筛查与核验
# 1) 拉出服务安装事件
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 40 |
  Select-Object TimeCreated, Message | Format-List
# 2) 只看映像路径,按路径归组(用户目录与临时目录优先)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 200 |
  ForEach-Object { ($_ | Select-String -Pattern 'Service file name:(.+)').Matches.Value }
# 3) 核验当前配置与状态
sc.exe qc SuspiciousSvc
Get-CimInstance Win32_Service | Where-Object { $_.PathName -match 'Users|Temp|ProgramData' } |
  Select-Object Name, PathName, StartMode, State, StartName
# 4) 配套看启停与失败记录
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7036,7040,7000,7009} -MaxEvents 40 |
  Select-Object TimeCreated, Id, Message

事件与字段对照

项含义判读要点
7045安装新服务仅在新装时记录,事件窗口外的既往服务不会出现
7036服务状态变化确认服务是否真的启动过
7040启动类型变更从手动改成自动是常见的持久化手法
7000 / 7009服务启动失败失败信息含路径与错误码,可佐证载荷状态
ImagePath服务映像路径用户目录、临时目录、无签名程序优先深挖
StartType / AccountName启动类型与运行账号自动启动 + LocalSystem 组合风险最高
软件安装过程也会写入 7045:判读时要结合发布窗口、程序签名与安装目录,不能仅凭“服务被安装”就下结论。
直接修改注册表 Services 键创建的服务不一定产生 7045(该事件主要覆盖通过服务控制管理器安装的路径),因此必须同时核对注册表服务键及其最后写入时间。

易错点

  • 把 7045 当作全部服务变更记录:注册表方式创建或修改的服务可能没有该事件,遗漏会漏掉持久化
  • 映像路径比较未规范化:路径中的空格、引号与短文件名变体不同,字符串直接比对会漏掉同一服务
  • 只看安装不看启动结果:安装后启动失败的载荷与成功运行的载荷处置方式不同,要结合 7036/7000 判断
  • 忽略启动类型变更(7040):把手动服务改为自启动同样是持久化,只筛 7045 会漏掉
  • 处置时直接删除服务:应先导出配置与事件、保存映像文件哈希,再按流程停用与清理,避免失去复核材料

数据来源与参考

  • Microsoft Docs(事件 7045)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌