| name | detecting-rdp-brute-force-attacks |
| description | 通过分析 Windows 安全事件日志中的失败认证模式(事件 ID 4625)、失败后的成功登录(事件 ID 4624)、NLA 失败以及源 IP 频率分析,检测 RDP 暴力破解攻击。 |
| domain | cybersecurity |
| subdomain | threat-detection |
| tags | ["threat-detection","rdp","brute-force","windows-event-logs","blue-team","siem"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
检测 RDP 暴力破解攻击
概述
RDP 暴力破解攻击通过对暴露的 RDP 端点快速尝试猜测凭据来攻击 Windows 远程桌面协议服务。检测依赖于分析 Windows 安全事件日志中的事件 ID 4625(登录类型 10 或 3 的失败登录),并与事件 ID 4624(成功登录)关联,以识别被入侵的账户。本技能涵盖使用 python-evtx 解析 EVTX 文件,通过源 IP 频率分析识别攻击模式,检测 NLA 绕过尝试,以及生成可操作的检测报告。
前置条件
- Python 3.9+ 及
python-evtx、lxml 库
- Windows 安全 EVTX 日志文件(从事件查看器导出或通过 WEF 收集)
- 了解 Windows 认证事件 ID(4624、4625、4776)
- 熟悉 RDP 登录类型(NLA 为类型 3,RemoteInteractive 为类型 10)
步骤
步骤一:导出安全事件日志
使用事件查看器或 wevtutil 将 Windows 安全日志导出为 EVTX 格式:
wevtutil epl Security C:\logs\security.evtx
步骤二:解析失败登录事件
使用 python-evtx 解析事件 ID 4625 条目,提取源 IP、目标用户名、失败原因(Sub Status)和登录类型字段。
步骤三:分析攻击模式
通过以下方式识别暴力破解模式:
- 统计时间窗口内每个源 IP 的失败登录次数
- 检测用户名喷洒攻击(同一 IP 尝试多个用户名)
- 将 4625 失败与来自同一 IP 的后续 4624 成功关联
步骤四:生成检测报告
生成包含头部攻击 IP、目标账户、基于时间的分析和入侵指标的 JSON 报告。
预期输出
JSON 报告,包含:
- 失败登录事件总数和唯一源 IP 数量
- 按失败次数排名的顶部攻击 IP
- 目标用户名和失败子状态码
- 暴力破解尝试后的成功登录(潜在入侵)
- 攻击强度的时间序列分析