4688 记录什么
开启进程创建审核后,4688 事件记录每一个新进程:进程名与 PID、父进程,以及额外启用后记录的命令行参数。它是还原「攻击者在本机执行过什么」最直接的一类日志。
为什么看不到命令行
默认情况下命令行不记录,需要在审核策略里单独开启「包含命令行」选项。排查前先用 auditpol 确认策略状态,再判断「日志里没有参数」的原因,避免把配置问题误当成没有活动。
基本信息
| 事件 | 4688 新进程创建(Security 通道) |
|---|---|
| 关键字段 | NewProcessName、CommandLine、ParentProcessName、SubjectUserName |
| 前提 | 审核策略开启进程创建;命令行需额外启用 |
| 查询方式 | Get-WinEvent 配合 FilterHashtable |
| 策略检查 | auditpol /get /subcategory:"Process Creation" |
| 权限要求 | 读取 Security 通道需管理员 |
典型使用场景
- 还原攻击者执行的命令与工具链
- 追踪父进程链,判断入侵入口
- 与 4104 脚本块日志互相印证
- 确认清理动作是否被重新触发
- 复盘时给出进程执行时间线
查询进程创建并确认审计状态
查询进程创建并确认审计状态
auditpol /get /subcategory:"Process Creation" # 确认审核与命令行开关
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddHours(-24)} -MaxEvents 100 |
Select-Object TimeCreated, @{n='Proc';e={$_.Properties[5].Value}}, @{n='Cmd';e={$_.Properties[8].Value}}, @{n='Parent';e={$_.Properties[13].Value}} | Format-Table -AutoSize
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688} -MaxEvents 1 | ForEach-Object { $_.Properties | ForEach-Object { $_.Value } }
Get-WinEvent -LogName Security -MaxEvents 5000 | Where-Object { $_.Id -eq 4688 } | Where-Object { $_.Message -match 'Temp|AppData|powershell -enc' } | Select-Object -First 20 TimeCreated, Message输出逐列读法
| 字段 | 含义 | 正常/异常 |
|---|---|---|
| NewProcessName | 新建进程的可执行路径 | 位于临时目录或用户目录需重点核查 |
| CommandLine | 启动参数 | 出现编码命令、下载参数属高可疑 |
| ParentProcessName | 创建者的可执行路径 | 父进程为办公软件或 Web 服务说明入口异常 |
| SubjectUserName | 发起用户 | 服务账号发起交互式命令需核实原因 |
引用进程字段前先核对字段索引:不同系统与版本的事件结构略有差异,硬编码下标容易读错进程与命令行。
4688 数据量很大:先按时间窗、进程名或父进程过滤再导出,全量导出既慢又难分析,导出后同样要计算哈希并登记。
导出留档与 IOC 整理
导出留档与 IOC 整理
$ev = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddDays(-1)} -ErrorAction SilentlyContinue
$ev | Select-Object TimeCreated, @{n='Proc';e={$_.Properties[5].Value}}, @{n='Cmd';e={$_.Properties[8].Value}} | Export-Csv C:\evidence\p4688.csv -NoTypeInformation -Encoding UTF8
Get-FileHash C:\evidence\p4688.csv -Algorithm SHA256 | Format-List分析要点
- 关注 powershell 与 cmd 的异常调用与父进程
- 关注临时目录、用户目录下出现的可执行文件
- 把 4688 与 4624 的登录时间对齐
- 将可疑命令行整理成 IOC 清单供后续排查