4624 记录了哪些信息
登录成功事件是安全日志里被查阅最多的一类:每次凭据验证成功都会留一条记录,写明是谁、从哪台设备或哪个地址、以哪种登录方式进入系统。这些信息组合起来就能回答三个常见问题——某个账号在什么时间被使用过、登录来自内网还是外部、是通过本地交互、网络访问还是远程桌面。连续查看同一账号的记录,还能还原出它的使用轨迹,这对异常排查与权限审计都很有价值。
基本信息
| 适用平台 | Windows 客户端与服务器,安全日志默认记录 |
|---|---|
| 日志通道 | 安全日志,读取需要管理员权限 |
| 关键字段 | 登录类型、目标账号与域、来源地址与工作站名、认证包与登录进程 |
| 登录类型 | 2 本地交互、3 网络、5 服务、10 远程桌面、11 缓存凭据 |
| 字段位置 | 事件属性按固定顺序排列,可用索引取用,但需按版本核对一次 |
| 配套事件 | 登录失败事件、账号锁定事件、特权使用事件 |
典型使用场景
- 确认某账号在指定时间段内是否被使用过
- 判断登录来源是内网地址还是外部地址,识别异常接入
- 区分远程桌面登录与本地交互登录,还原用户的操作方式
- 核对服务账户是否被用于交互式登录,发现违规用法
- 串联账号的登录轨迹,为安全事件提供时间线
- 配合登录失败事件,观察爆破尝试是否最终成功
常用示例
常用示例
# 取最近 8 小时的登录成功事件并整理关键字段
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddHours(-8)} |
Select-Object TimeCreated,
@{n='类型';e={$_.Properties[8].Value}},
@{n='账号';e={$_.Properties[5].Value}},
@{n='来源地址';e={$_.Properties[18].Value}},
@{n='登录进程';e={$_.Properties[17].Value}} |
Format-Table -AutoSize
# 只看远程桌面登录(类型 10)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 200 |
Where-Object { $_.Properties[8].Value -eq 10 } | Select-Object TimeCreated, @{n='账号';e={$_.Properties[5].Value}}, @{n='来源';e={$_.Properties[18].Value}}
# 统计来源地址分布
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-1)} |
Group-Object { $_.Properties[18].Value } | Sort-Object Count -Descending | Select-Object -First 10 Name, Count登录类型速查
| 取值 | 含义 | 判断要点 |
|---|---|---|
| 2 | 本地交互登录 | 键盘登录,通常来自本机控制台 |
| 3 | 网络登录 | 共享访问等,机器账号出现属正常 |
| 5 | 服务登录 | 服务账户按计划启动时的记录 |
| 10 | 远程桌面登录 | 排远程接入必看,来源可能是网关 |
| 11 | 缓存凭据登录 | 离线登录后记录,域设备常见 |
| 4 与 7 | 批处理与解锁 | 计划任务与解锁场景 |
以美元符号结尾的账号是计算机账号,它们产生的网络登录属于正常的域内访问,排查时不要误判为异常用户行为。
字段索引在不同版本上可能偏移,正式使用前先用一条记录核对位置,核对无误后再把取值方式固化成脚本函数复用。