Windows安全日志深度解析:EventID 4624登录事件的自动化监控与风险评估

  1. 正常系统行为
    服务账户轮询:某些系统服务(如SQL Server、IIS应用池)会定期验证账户权限。
    组策略刷新:域环境中的组策略更新可能触发多次身份验证。
    计划任务执行:配置了高频运行的任务(如备份、同步)。
  2. 异常情况
    暴力破解成功:攻击者通过字典攻击破解了账户密码。
    令牌滥用:攻击者窃取了有效的Kerberos令牌或NTLM哈希。
    恶意软件活动:如蠕虫病毒在局域网内传播时尝试登录。
    二、关键排查步骤
  3. 分析登录类型(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 " logonEventsExportCsvPath"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报告到桌面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值