
1. 从勒索病毒事件说起为什么需要SMB/RDP日志分析去年处理过一个让我印象深刻的案例某企业文件服务器突然弹出勒索信所有业务文档被加密成.lockbit后缀。赶到现场时运维人员正手足无措——他们既不知道黑客如何进入系统也不清楚内网有多少机器被渗透。这种场景下Windows的SMB/RDP日志就像破案的关键指纹。SMB服务器消息块和RDP远程桌面协议是攻击者最常利用的两种通道。前者用于网络共享和文件传输后者直接提供远程控制。当安全事件发生时我们需要像侦探一样梳理三类关键证据访问痕迹谁在什么时间通过什么方式进入系统横向移动攻击者在内网如何跳转恶意操作最终执行了哪些危险命令我曾用LogParser在15分钟内定位到攻击源头某台开发机通过RDP爆破入侵随后攻击者利用SMB漏洞横向传播勒索软件。下面分享我的实战方法论。2. 关键日志位置与提取技巧2.1 基础日志文件定位不同于图形化的事件查看器我更喜欢直接操作日志文件。所有Windows日志都存放在C:\Windows\System32\winevt\Logs重点关注三个文件Security.evtx包含所有登录审计记录事件ID 4624/4625System.evtx记录SMB服务启停和网络连接Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtxRDP专属日志遇到过攻击者清空安全日志的情况试试这个命令提取RDP连接记录wevtutil qe Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational /f:text2.2 容易被忽视的辅助证据除了常规日志这些地方往往藏着关键线索注册表缓存# 查看本机连接过的RDP服务器 reg query HKCU\Software\Microsoft\Terminal Server Client\Servers # 检查SMB客户端缓存 reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters内存中的网络连接# 查看当前活跃的SMB会话 Get-SmbSession | Where-Object { $_.Dialect -match 3.1.1 }3. 攻击链还原从登录事件到横向移动3.1 登录类型解码手册Windows的登录类型Logon Type是溯源的关键字段这几个数值需要刻在脑子里类型含义典型场景2本地交互登录坐在服务器前输入密码3网络登录访问SMB共享/网络打印机10远程桌面RDP连接11缓存域凭证登录域控不可用时的备用登录去年遇到个狡猾的攻击案例攻击者先用RDP爆破类型10进入边界服务器然后通过计划任务类型4在内网横向移动最后用SMB类型3投递勒索软件。这种组合拳需要交叉分析多种日志。3.2 事件ID关联分析安全日志中的关键事件ID就像不同犯罪现场的监控片段4624登录成功检查SubjectUserName谁操作的和TargetUserName登录到哪个账户重点关注LogonType10的异常时间登录4625登录失败大量4625类型3可能是SMB爆破短时间内多个用户名的4625类型10通常是RDP爆破5156防火墙放行记录配合4624可还原攻击路径例如内网IP突然连接外部3389端口这里有个真实查询示例找出凌晨的异常RDP登录SELECT * FROM Security.evtx WHERE EventID4624 AND LogonType10 AND TimeGenerated2023-06-15 02:00:00 AND TimeGenerated2023-06-15 04:00:004. 高效分析工具链4.1 LogParser实战技巧微软这个神器能像SQL查询一样分析日志我的常用命令模板# 统计登录失败最多的IP LogParser.exe -i:EVT SELECT EXTRACT_TOKEN(Strings,5,|) AS IP, COUNT(*) AS Attempts FROM Security.evtx WHERE EventID4625 GROUP BY IP ORDER BY Attempts DESC # 提取特定时间段的SMB访问记录 LogParser.exe -i:EVT SELECT TimeGenerated,EXTRACT_TOKEN(Strings,1,|) AS User FROM Security.evtx WHERE EventID5140 AND TimeGenerated2023-01-01 00:00:004.2 自定义PowerShell脚本对于需要深度分析的场景我写了这个脚本提取登录上下文function Get-LogonChain { param($targetUser) $events Get-WinEvent -FilterHashtable { LogNameSecurity ID4624,4625,4648 } | Where-Object { $_.Properties[5].Value -eq $targetUser } $events | ForEach-Object { [PSCustomObject]{ Time $_.TimeCreated EventID $_.Id SourceIP $_.Properties[18].Value LogonType $_.Properties[8].Value Process $_.Properties[17].Value } } }5. 防御加固建议经过多次应急响应我总结出这些必做配置组策略设置启用审核登录事件成功失败开启审核特权使用特别关注敏感权限配置审核策略更改防止攻击者关闭审计日志保护措施# 设置日志文件大小上限为128MB wevtutil sl Security /ms:134217728 # 配置日志覆盖策略为按需覆盖 wevtutil sl Security /r:false /c:true网络层防护对SMB强制启用SMB3加密为RDP部署网络级认证(NLA)在防火墙上限制3389端口的源IP范围记得有次分析一起供应链攻击攻击者利用弱口令进入后第一时间修改了日志策略。现在我会在所有服务器上部署日志实时转发用SIEM集中存储——这可能是最后一道防线。