必须提前配置审计策略、明确日志源、掌握筛选方法才能有效追踪Windows提权操作;需启用特权使用、进程创建、对象访问等策略,重点关注安全日志4670/4672/4688/4697等事件ID,并结合PowerShell和Sudo日志进行关联分析。
要追踪 windows 用户权限提权操作,不能只等事件发生后再翻日志——必须提前配好审计策略、明确关键日志源、掌握精准筛选方法。核心逻辑是:策略没开,日志为空;日志没筛,线索淹没;不导出结构化数据,无法持续分析。
必须启用的提权相关审计策略
Windows 默认不记录大多数提权行为。以下策略需用 auditpol 或组策略逐项开启,并验证子项生效:
-
特权使用(Privilege Use):记录提权动作本身,如 SeDebugPrivilege、SeImpersonatePrivilege 被调用。命令:
auditpol /set /category:"Privilege Use" /success:enable -
进程创建(Process Creation):捕获高危提权工具启动(如 mimikatz.exe、powershell.exe -ep bypass)。注意:必须确认子项“Process Creation”已启用,运行
auditpol /get /subcategory:"Process Creation"应返回 “Success and Failure: Yes” -
对象访问(Object Access):配合 SACL 才能记录对注册表键(如
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer)、服务配置、可写路径 DLL 的读写尝试。先全局启用:auditpol /set /category:"Object Access" /success:enable /failure:enable,再为具体目标手动添加审计条目 - 账户登录 & 凭据验证:识别提权前的横向移动或凭证复用,如 ID 4624(成功登录)、4776(凭据验证失败)
重点监控的日志来源与事件ID
提权行为分散在多个日志通道,需同步关注:
-
安全日志(Security):主战场
• ID 4670:权限被修改(如服务 binPath 被篡改)
• ID 4672:管理员登录(含提权后首次以高权限上下文活动)
• ID 4688:新进程创建(含完整命令行,需开启“进程创建”审计)
• ID 4663:文件/注册表访问尝试(依赖 SACL 配置)
• ID 4697:计划任务创建(常见持久化提权手段) -
PowerShell 操作日志(Microsoft-Windows-PowerShell/Operational):
记录脚本块执行内容,尤其适合发现Invoke-MS16032、PowerUp、Seatbelt等提权脚本调用。启用前提:注册表EnableScriptBlockLogging = 1 -
Sudo for Windows 日志(Microsoft-Windows-Sudo/Admin):
若环境中部署了 Sudo for Windows,所有sudo提权请求(含完整命令行、参数、工作目录)均记录在此,事件ID 通常为 100–105
用 PowerShell 快速定位可疑提权痕迹
避免人工滚动日志,用命令直击关键线索:
- 查最近2小时所有以 SYSTEM 或 Administrator 身份启动的 powershell 进程:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688; StartTime=(Get-Date).AddHours(-2)} | Where-Object {$_.Properties[5].Value -match 'powershell|cmd' -and ($_.Properties[11].Value -match 'SYSTEM|Administrators')} - 查某用户(如 john)触发的所有特权使用事件:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4670,4672; Data='john'} -MaxEvents 50 - 提取 PowerShell 日志中含敏感动词的脚本块:
Get-WinEvent -LogName "Microsoft-Windows-PowerShell/Operational" | Where-Object {$_.Message -match 'Invoke.*Mimi|Get-Process.*-IncludeUserName|New-Service.*-BinaryPath'}
让审计真正落地的三个动作
单次查询没有防御价值,闭环管理才有效:
- 每日自动导出关键事件:封装脚本定时运行,例如导出前24小时所有 4670、4672、4688、4697 事件到 CSV,文件名带日期便于归档
-
定期验证策略有效性:每周运行
auditpol /get /category:* | findstr "Privilege Use\|Process Creation",确认关键项仍为 enabled;检查安全日志属性,确认最大大小未被设为“不覆盖”,避免日志被清空 - 关联分析而非孤立看日志:把一次提权操作拆解为“登录→执行命令→修改服务→启动新进程”多个事件链,用时间戳和用户名交叉比对,才能还原真实攻击路径


















