- 正常系统行为
服务账户轮询:某些系统服务(如SQL Server、IIS应用池)会定期验证账户权限。
组策略刷新:域环境中的组策略更新可能触发多次身份验证。
计划任务执行:配置了高频运行的任务(如备份、同步)。 - 异常情况
暴力破解成功:攻击者通过字典攻击破解了账户密码。
令牌滥用:攻击者窃取了有效的Kerberos令牌或NTLM哈希。
恶意软件活动:如蠕虫病毒在局域网内传播时尝试登录。
二、关键排查步骤 - 分析登录类型(Logon Type)
在事件详情中检查Logon Type字段:
powershell
复制
Get-WinEvent -LogName Security -FilterXPath ‘*[System[EventID=4624]]’ -MaxEvents 10 |
ForEach-Object {
x
m
l
=
[
x
m
l
]
xml = [xml]
xml=[xml].ToXml()
[PSCustomObject]@{
Time = $.TimeCreated
LogonType = $xml.Event.EventData.Data | Where-Object { $.Name -eq “LogonType” } | Select-Object -ExpandProperty “#text”
Account = $xml.Event.EventData.Data | Where-Object { $.Name -eq “TargetUserName” } | Select-Object -ExpandProperty “#text”
SourceIP = $xml.Event.EventData.Data | Where-Object { $_.Name -eq “IpAddress” } | Select-Object -ExpandProperty “#text”
}
}
重点关注类型:
3:网络登录(如共享文件夹访问)
10:远程交互登录(RDP)
8:网络明文登录(HTTP基本认证)
2. 检查登录账户
如果所有登录均为SYSTEM或NETWORK SERVICE,可能是系统服务行为。
若出现非常用账户(如Guest、陌生用户名),需警惕入侵。
3. 验证来源IP
同一IP高频登录:可能是自动化工具或攻击。
多个不同IP登录:可能遭遇分布式攻击。
**
以下是针对Windows安全日志中登录事件(EventID 4624)的增强版查询脚本,包含完整解析和扩展分析功能:
**
powershell
复制
<#
.SYNOPSIS
增强版Windows登录事件分析脚本(EventID 4624)
.DESCRIPTION
解析最近10条成功登录事件,包含登录类型、账户、IP等详细信息,并增加安全风险评估
.NOTES
需要管理员权限执行
更新时间:2025年4月12日
#>
查询最近10条成功登录事件
$logonEvents = Get-WinEvent -LogName Security -FilterXPath ‘*[System[EventID=4624]]’ -MaxEvents 10 |
ForEach-Object {
try {
x
m
l
=
[
x
m
l
]
xml = [xml]
xml=[xml].ToXml()
$logonType = $xml.Event.EventData.Data | Where-Object { $.Name -eq “LogonType” } | Select-Object -ExpandProperty “#text”
# 登录类型映射表
$logonTypeMap = @{
'2' = '交互式登录(控制台)'
'3' = '网络登录(如共享文件夹)'
'4' = '批处理登录'
'5' = '服务登录'
'7' = '解锁登录'
'8' = '网络明文登录'
'9' = '新凭证登录'
'10' = '远程交互登录(RDP)'
'11' = '缓存域凭证登录'
}
# 风险评估
$riskLevel = if ($logonType -in @('8','10')) { '中' }
elseif ($_.Properties[5].Value -eq 'Administrator') { '高' }
else { '低' }
[PSCustomObject]@{
Time = $_.TimeCreated.ToString('yyyy-MM-dd HH:mm:ss')
EventID = $_.Id
LogonType = "$logonType ($($logonTypeMap[$logonType]))"
Account = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "TargetUserName" } | Select-Object -ExpandProperty "#text"
Domain = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "TargetDomainName" } | Select-Object -ExpandProperty "#text"
SourceIP = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "IpAddress" } | Select-Object -ExpandProperty "#text"
Workstation = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "WorkstationName" } | Select-Object -ExpandProperty "#text"
Process = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "ProcessName" } | Select-Object -ExpandProperty "#text"
RiskLevel = $riskLevel
RawEvent = $_
}
}
catch {
Write-Warning "解析事件ID $($_.Id) 时出错: $_"
}
}
输出格式化结果
$logonEvents | Format-Table -AutoSize -Wrap -Property Time, Account, LogonType, SourceIP, RiskLevel
附加安全分析
Write-Host “`n安全分析报告:” -ForegroundColor Cyan
Write-Host “1. 高风险登录统计:” -ForegroundColor Yellow
$logonEvents | Where-Object { $_.RiskLevel -eq ‘高’ } | Group-Object Account | Format-Table -AutoSize
Write-Host “`n2. 按登录类型分布:” -ForegroundColor Yellow
$logonEvents | Group-Object LogonType | Sort-Object Count -Descending | Format-Table -AutoSize
Write-Host “`n3. 最近登录IP统计:” -ForegroundColor Yellow
$logonEvents | Group-Object SourceIP | Sort-Object Count -Descending | Format-Table -AutoSize
生成CSV报告(可选)
l
o
g
o
n
E
v
e
n
t
s
∣
E
x
p
o
r
t
−
C
s
v
−
P
a
t
h
"
logonEvents | Export-Csv -Path "
logonEvents∣Export−Csv−Path"env:USERPROFILE\Desktop\LogonEvents_KaTeX parse error: Expected group after '_' at position 91: …桌面: LogonEvents_̲(Get-Date -Format ‘yyyyMMdd’).csv" -ForegroundColor Green
脚本增强功能说明:
完整字段解析:
增加域名(Domain)、工作站名(Workstation)、进程名(Process)等关键字段
登录类型自动转换为易读说明(如"10 (远程交互登录-RDP)")
安全风险评估:
根据登录类型和账户自动标记风险等级
管理员账户和远程登录类型会标记为高风险
多维分析报告:
自动生成三类安全分析报表:
高风险登录统计
登录类型分布
来源IP分析
错误处理机制:
加入try-catch块防止单个事件解析失败影响整体结果
输出选项:
屏幕格式化输出(自动换行适应内容)
可选生成CSV报告到桌面