maxslabs/windows-rdp-bruteforce-lab
GitHub: maxslabs/windows-rdp-bruteforce-lab
该实验室通过模拟 Windows RDP 暴力破解攻击并分析 Windows 安全事件日志,帮助安全团队掌握基于 Event ID 4625 的攻击检测与事件响应流程。
Stars: 1 | Forks: 0
# Windows RDP 暴力破解检测实验室
## 概述
本项目模拟了针对 Windows 远程桌面协议(RDP)服务的真实暴力破解攻击,并从 SOC(安全运营中心)的角度演示了检测、日志记录和分析过程。
其目标是复现攻击者行为,观察 Windows 安全遥测数据,并将观察到的活动映射到 MITRE ATT&CK 技术。
## 攻击流程图
下图说明了从侦察到暴力破解身份验证尝试以及 Windows 安全日志检测的端到端攻击链。

## 目标
- 模拟来自 Kali Linux 攻击机的 RDP 暴力破解登录尝试
- 捕获并分析 Windows 安全事件日志
- 识别失败的身份验证模式(Event ID 4625)
- 了解 Windows 日志如何检测身份验证滥用
- 将观察到的行为映射到 MITRE ATT&CK 框架
- 构建结构化的 SOC 风格事件报告
- 通过证据和图表记录完整的攻击生命周期
## 实验室环境
### 虚拟机
- **攻击机:** Kali Linux
- **目标机:** Windows Server(启用 RDP)
- **网络:** NAT / Host-only 隔离实验室网络
### 测试服务
- 远程桌面协议(TCP 3389)
- Windows 安全事件日志记录
- 本地 Windows 身份验证子系统
## 攻击场景
攻击者试图通过对暴露的 RDP 服务进行重复密码猜测,来获取对 Windows 机器的未经授权访问。
这模拟了:
- 凭证填充
- 密码喷洒
- 暴力破解身份验证攻击
## 检测与日志记录
Windows 安全日志在攻击模拟期间捕获了多次身份验证失败。
### 主要检测来源
- **Event ID 4625** — 账户登录失败
### 观察到的关键字段
- 登录类型:10(RemoteInteractive / RDP)
- 源 IP:Kali Linux 攻击机
- 用户名尝试:多个无效的用户名/密码
- 失败原因:未知的用户名或密码错误
### 示例观察结果
- 在短时间间隔内快速重复的登录失败
- 针对同一账户的多次身份验证尝试
- 所有失败尝试中一致的源 IP
## MITRE ATT&CK 映射
| 技术 ID | 技术名称 | 描述 |
|-------------|----------------|-------------|
| T1110 | Brute Force | 重复登录尝试以猜测凭证 |
| T1078 | Valid Accounts (attempted) | 尝试使用有效或猜测的凭证访问系统 |
| T1021.001 | Remote Services: RDP | 使用 RDP 作为攻击向量 |
## 收集的证据
所有证据都存储在 `/evidence` 目录中:
- Nmap 扫描结果(`/evidence/scans`)
- RDP 暴力破解尝试截图(`/evidence/attacks`)
- 显示登录失败的 Windows 事件日志(`/evidence/windows-logs`)
- 辅助截图(`/evidence/screenshots`)
## 关键发现
- Windows 日志通过 Event ID 4625 可靠地捕获了所有失败的身份验证尝试
- 通过日志模式分析可以高度检测到 RDP 暴力破解活动
- 攻击者会生成可识别的行为模式(频率 + 重复)
- 日志关联对于识别自动化攻击工具至关重要
- 适当的监控将允许在系统被入侵之前进行早期检测
## 安全建议
- 在多次登录失败后强制执行账户锁定策略
- 使用防火墙规则或仅限 VPN 访问来限制 RDP 访问
- 启用网络级别身份验证(NLA)
- 对远程访问使用多因素身份验证(MFA)
- 监控并对 Event ID 4625 的激增发出警报
- 仅将 RDP 暴露限制为受信任的 IP 范围
## 使用的工具
- Kali Linux(攻击模拟)
- Windows Server(目标系统)
- Event Viewer(日志分析)
- Nmap(侦察)
- Graphviz(攻击流程图生成)
标签:CTI, RDP暴力破解, 安全实验环境, 安全运营中心, 网络映射