生产环境中,RDP爆破告警是最常见的安全事件。其典型日志特征为:Security日志中短时间内涌现大量 Event ID 4625(登录失败),伴随特定外网IP的持续探测;期间夹杂零星陌生的 Event ID 4624(登录成功)。
面对此类告警,一线运维最常见的错误处置是:直接在边界防火墙封禁源IP,随后关闭工单。这种“只封IP不查痕迹”的做法是致命的。外网爆破往往只是敲门,那几条成功的4624意味着攻击者已获取初始立足点(Initial Access),若不及时阻断,内网横向移动(Lateral Movement)与权限维持可能早已展开。
本文聚焦RDP入侵与内网横向排查,提供可直接复用的Windows原生排查命令与核心事件ID解析。
一、 现场应急处置“三条红线”
在介入排查前,必须遵守取证与止损原则,避免破坏现场或触发攻击者的对抗机制:
二、 核心排查流程与Windows原生命令
确认主机存在失陷风险后,按以下闭环执行排查:登录痕迹核查 → 横向移动溯源 → 持久化后门排查 → 网络外联分析。
1. 登录痕迹核查:定位突破点
不要依赖GUI事件查看器的默认视图,直接使用PowerShell提取关键字段,提高排查效率。
# 提取最近200条登录成功(4624)和失败(4625)记录,聚焦登录类型、IP和账号
Get-WinEvent –FilterHashtable @{LogName='Security'; ID=4624,4625} –MaxEvents 200 |
Select-Object TimeCreated, Id,
@{Name='LogonType';Expression={$_.Properties[8].Value}},
@{Name='IpAddress';Expression={$_.Properties[18].Value}},
@{Name='TargetUserName';Expression={$_.Properties[5].Value}} |
Format-Table –AutoSize
生产风险提示:若日志量极大,建议将 -MaxEvents 调大,或通过 Export-Csv 导出后使用Excel/SIEM工具过滤。
2. 横向移动溯源:定位扩散路径(核心难点)
如何判断本机是否被用作跳板攻击了内网其他资产?需排查本机主动发起的连接与凭据使用记录。
排查RDP客户端历史记录(本机RDP连接过谁):
攻击者若使用本机 mstsc 连接内网其他主机,注册表会留存目标IP。
reg query "HKEY_CURRENT_USER\\Software\\Microsoft\\Terminal Server Client\\Servers"
排查SMB/IPC横向连接痕迹:
# 查看当前活跃的445/135端口连接
netstat -ano | findstr ":445"
netstat -ano | findstr ":135"
排查域内横向工具执行痕迹(如PsExec, WMI):
# 检索4688事件,过滤常见的横向移动命令行特征
Get-WinEvent –FilterHashtable @{LogName='Security'; ID=4688} –MaxEvents 500 |
Where-Object {$_.Message -match 'psexec|wmic|powershell.*-enc|cmd.*\\/c'} |
Select-Object TimeCreated, Message | Out-GridView
3. 持久化后门排查:定位控制面
攻击者建立立足点后,必然建立持久化机制。
排查异常账号(含隐藏账号):
# 常规账号查看
net user
# 排查注册表中以$结尾的隐藏克隆账号(需Administrator权限)
reg query "HKLM\\SAM\\SAM\\Domains\\Account\\Users\\Names"
排查计划任务(最常见的自启方式):
# 列出所有未禁用的计划任务,重点检查Actions中的执行路径
Get-ScheduledTask | Where-Object {$_.State -ne 'Disabled'} |
Select-Object TaskName, TaskPath, State, @{Name='Action';Expression={$_.Actions.Execute}} | Format-List
排查开机自启项:
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User
排查共享文件敏感访问记录:
# 检索5140/5145事件,查看是否有异常账号访问了敏感共享目录(如C$, IPC$)
Get-WinEvent –FilterHashtable @{LogName='Security'; ID=5140,5145} –MaxEvents 100 |
Select-Object TimeCreated, @{Name='ShareName';Expression={$_.Properties[1].Value}}, @{Name='IpAddress';Expression={$_.Properties[6].Value}} | Format-Table
三、 核心事件ID深度解析
排查日志不是看热闹,必须精准命中关键字段。
-
Event ID 4625(登录失败):
重点提取 Failure Reason 和 Status 字段。- 0xC0000064:用户名不存在(攻击者在盲猜用户名)。
- 0xC000006A:用户名存在,密码错误(定向爆破,该账号真实存在)。
- 0xC0000234:账户已被锁定(说明本地/域账户锁定策略已生效)。
-
Event ID 4624(登录成功):
核心关注 Logon Type(登录类型)和 IpAddress。- Type 2:交互式登录(本地键盘,通常为正常运维)。
- Type 3:网络登录(SMB/IPC)。高危。若源IP为内网其他机器,极大概率为横向移动。
- Type 10:远程交互式登录(RDP)。高危。若源IP为外网,说明RDP爆破已成功突破。
-
Event ID 4776(NTLM凭据验证):
用于追踪本地账户的密码验证尝试。错误代码 0x0 为成功,0xC000006A 为密码错误。若发现大量针对非标准服务账号的4776成功记录,需警惕凭据窃取。 -
Event ID 4688(进程创建):
捕获恶意执行行为的核心。前提:必须在组策略(审核策略)中开启“审核进程创建”并勾选“包含命令行”。
重点比对 Creator Process Name(父进程)与 Command Line。若父进程为 explorer.exe 或 cmd.exe,且命令行包含 DownloadString、Bypass、Base64 编码特征,可确认为恶意载荷执行。
四、 溯源入侵入口:常见突破面
完成主机排查后,需复盘攻击面,通常由以下配置缺陷导致:
五、 落地加固方案
排查与溯源的最终目的是收敛攻击面。仅修改密码无法解决根本问题,需执行以下加固措施:
修改RDP默认端口(仅作隐蔽)。核心动作:在云安全组或主机防火墙上配置严格的IP白名单,仅允许堡垒机或特定运维终端IP访问3389端口。
路径:gpedit.msc -> 计算机配置 -> Windows设置 -> 安全设置 -> 账户策略 -> 账户锁定策略。
建议配置:账户锁定阈值:5次无效登录,账户锁定时间:30分钟。此举可直接阻断99%的自动化爆破。
启用“账户: 使用空密码的本地账户只允许进行控制台登录”。强制执行密码复杂度要求(长度>10,包含大小写、数字、特殊字符)。
严格限制服务器之间的横向通信。非业务必需的服务器之间,禁止开放 445 (SMB)、135 (RPC)、3389 (RDP) 等高危端口。
六、 运维高频踩坑总结
安全运维的本质是消除不确定性。将上述排查命令固化为标准操作程序(SOP),将加固策略落实为基线配置,是避免重复踩坑的唯一路径。
技术交流:
在实际生产环境中,针对Event ID 4688的命令行审计,大家通常使用哪些SIEM规则或正则表达式来降低误报率?欢迎在评论区分享你的实战过滤规则,共同完善排查手册。
网硕互联帮助中心




评论前必须登录!
注册