Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force

GitHub: Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force

在隔离的VirtualBox家庭实验室中模拟RDP暴力破解攻击,展示从攻击、SIEM检测到实时修复的完整SOC分析师工作流程。

Stars: 0 | Forks: 0

# SOC 家庭实验室 — RDP 暴力破解攻击检测与响应 ## 目录 - [实验室概述](#lab-overview) - [环境与网络拓扑](#environment--network-topology) - [使用的工具](#tools-used) - [实验室设置](#lab-setup) - [文件完整性监控](#file-integrity-monitoring-fim) - [威胁狩猎](#threat-hunting) - [攻击阶段](#attack-phase--rdp-brute-force) - [检测阶段](#detection-phase) - [修复阶段](#remediation-phase) - [漏洞检测](#vulnerability-detection) - [CIS 基准评估](#cis-benchmark-assessment) - [主要发现与 IOC](#key-findings--iocs) - [MITRE ATT&CK 映射](#mitre-attck-mapping) - [应用的密码学概念](#cryptology-concepts-applied-encryption--hashing) - [经验教训](#lessons-learned) - [参考](#references) ## 实验室概述 本项目在一个完全隔离的 VirtualBox 家庭实验室中模拟了真实的 SOC 分析师工作流程。内容包括: 1. **RDP 暴力破解攻击** — 使用 Hydra 对 Windows Server 2022 进行模拟 2. **实时 SIEM 检测** — 所有事件均在 Wazuh 中捕获和分析 3. **实时修复** — 在攻击进行中应用锁定策略和防火墙规则 4. **文件完整性监控** — Wazuh FIM 检测受害主机上的文件更改 5. **漏洞扫描** — 发现 34 个严重和 1,190 个高危 CVE 6. **CIS 基准测试** — Windows Server 2022 在 CIS Benchmark v2.0.0 中得分 26% 7. **威胁狩猎** — 攻击后检测到 nmap 扫描和软件安装 ## 环境与网络拓扑 ![网络拓扑](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/09361718fc3e7296344e9cecd88cacad60ddc780/Screenshots/network_topology-1.png) ### 虚拟机配置 | 机器 | 操作系统 | IP 地址 | 角色 | |---|---|---|---| | Ubuntu-26 | Ubuntu 26.04 LTS | 10.0.2.15 | Wazuh SIEM 管理器 | | HackerUbuntu | Ubuntu 26.04 LTS | 10.0.2.6 | 攻击者 | | Windows2022 | Windows Server 2022 Std Eval | 10.0.2.5 | 受害者 / 受监控主机 | ## 使用的工具 | 工具 | 用途 | |---|---| | **VirtualBox** | 隔离的实验室虚拟化 | | **Wazuh** | SIEM — 告警、FIM、漏洞检测、威胁狩猎 | | **Hydra v9.6** | RDP 暴力破解模拟 | | **freerdp** | Hydra 使用的 RDP 客户端 | | **nmap** | 从攻击者虚拟机进行的网络侦察 | | **rockyou.txt** | 密码字典(约 1430 万个密码) | | **PowerShell** | 在受害者主机上进行实时修复 | | **winget** | 安装软件以生成真实的遥测数据 | ## 实验室设置 ### Wazuh Agent — ossec.conf (基础) Windows 受害者主机上的 Wazuh 代理已配置为监控安全事件日志和系统目录: ![ossec.conf 基础](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/ossec-conf-base.png.png) ### Wazuh Agent — FIM 自定义目录 添加了一个自定义的实时监控目录: ![ossec.conf FIM](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/ossec-conf-fim.png.png)) ![完整性校验和](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/f2c200fb43f3b7018810b28f81c8ae2efa084592/Screenshots/Integrity%20checksum%20changed.png) ``` C:\Users\Administrator\Hackers ``` ### 在受害者主机上安装的软件 通过 winget 安装应用程序以生成真实的 Wazuh 遥测数据: ![winget 安装](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/winget-install.png.png) ![应用程序安装 ID](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/f2c200fb43f3b7018810b28f81c8ae2efa084592/Screenshots/Application%20Installed%20on%20Windows%20VM.png) ``` winget install --id=Notepad++.Notepad++ -e winget install --id=Google.Chrome -e winget install --id=Microsoft.Teams -e winget install --id=Dropbox.Dropbox -e ``` ## 文件完整性监控 (FIM) 在 `C:\Users\Administrator\Hackers\` 中创建了一个测试文件 `test-02.txt`: ![FIM 测试文件](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/fim-test-file.png.png) ![文件已添加](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/f2c200fb43f3b7018810b28f81c8ae2efa084592/Screenshots/File%20added%20to%20the%20monitored%20system.png) Wazuh 为文件创建事件生成了告警。在真实场景中,这将检测到: - 攻击者在入侵后投递 payload - 恶意软件将文件写入敏感目录 - 对配置文件的未经授权更改 | 规则 ID | 描述 | 级别 | |---|---|---| | 60612 | 已安装应用程序 win.eventdata.data | 3 | | 550 | 完整性校验和已更改 | 7 | | 554 | 文件已添加到受监控的系统 | 5 | *一般规则:不要忽略任何高于 3 级的告警 ## 威胁狩猎 ### Wazuh 威胁狩猎 — 应用程序与服务活动 ![威胁狩猎 1](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/threat-hunting-1.png.png) ![威胁狩猎 2](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/threat-hunting-2.png.png) | 规则 ID | 描述 | 级别 | |---|---|---| | 60610 | Windows 安装程序开始安装 | 3 | | 61138 | 创建了新的 Windows 服务 | 5 | | 61104 | 服务启动类型已更改 | 3 | | 60132 | 系统时间已更改 | 5 | | 60122 | 登录失败 / 错误密码 | 5 | | 60612 | 已安装应用程序 (Chrome, Teams, Dropbox) | 3 | ## 软件安装会触发服务创建和安装程序事件 — 这正是恶意软件安装的样子。 ## 攻击阶段 — RDP 暴力破解 ### 攻击者命令 ``` hydra -l Administrator -P /usr/share/wordlists/rockyou.txt rdp://10.0.2.5 -t 1 ``` | 标志 | 用途 | |---|---| | `-l Administrator` | 目标为内置 Administrator 账户 | | `-P rockyou.txt` | 1430 万密码字典 | | `rdp://10.0.2.5` | RDP 语法(必需 — 裸 IP 会失败) | | `-t 1` | 单线程(多线程会中断 RDP) | ### 攻击速率 ``` [STATUS] 26.00 tries/min — 14,344,398 total passwords in wordlist ``` ## 检测阶段 ### Wazuh 实时告警视图 ![Wazuh 告警](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/wazuh-alerts-3712hits.png.png) ![事件 ID 视图](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/wazuh-eventid-view.png.png) ![Wazuh 规则](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/3a5678477f33cac70497273cb2a9d212b82e446c/Screenshots/VirtualBox_Ubuntu-26.04_04_05_2026_02_08_29.png) 捕获了 **3,712 个事件**。每一次尝试都完全归因于攻击者。 ### 关键 Windows 事件 ID | 事件 ID | 含义 | |---|---| | **4625** | 登录失败 — 大量暴力破解指标 | | **4616** | 系统时间已更改 | | **60122** | Wazuh 规则:登录失败 / 未知用户或错误密码 | ### 状态码参考 | 代码 | 字段 | 含义 | |---|---|---| | `0xc000006a` | subStatus | 密码错误 | | `0xc000006d` | status | 常规登录失败 | | `0xc0000234` | subStatus | 账户已锁定 | | `0x0` | status | 成功 — 从未出现过(攻击失败) | ### 完整日志条目(入侵指标分解) ``` data.win.eventdata.ipAddress: 10.0.2.6 ← Attacker IP data.win.eventdata.workstationName: HackerUbuntu ← Attacker hostname data.win.eventdata.targetUserName: Administrator ← Target account data.win.eventdata.authenticationPackage: NTLM data.win.eventdata.logonType: 3 ← Network logon data.win.eventdata.subStatus: 0xc000006a ← Wrong password data.win.eventdata.status: 0xc000006d ← Logon failure data.win.eventdata.processId: 0x0 ← No process spawned ``` ### SubStatus 时间线 ![SubStatus 时间线](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/wazuh-substatus-timeline.png.png) 密集的 `0xc000006a` 代码列 — 在修复后突然停止。 ## 修复阶段 所有修复措施均在 **攻击进行时实时应用。** ### 1. 账户锁定策略 ``` net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:15 gpupdate /force ``` ![账户已锁定](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/account-locked.png.png) ### 2. 防火墙 IP 封禁 ``` New-NetFirewallRule -DisplayName "Block HackerUbuntu" ` -Direction Inbound -Protocol TCP ` -LocalPort 3389 -RemoteAddress 10.0.2.6 -Action Block ``` ![防火墙规则](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/b4b5e58e1ed4e51c8554fa04f3436d89aed5cbe8/Screenshots/net-accounts-before-lockout.png) ### 3. 启用锁定审计 ``` auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable ``` ## 漏洞检测 ### Windows Server 2022 (受害者) ![漏洞检测 Windows](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/vuln-detection-windows.png.png) | 严重性 | 数量 | |---|---| | 严重 | 34 | | 高危 | 1,190 | | 中危 | 538 | | 低危 | 14 | | **总计** | **1,776** | 主要 CVE:CVE-2020-16009,CVE-2021-21118 至 CVE-2021-21121 ### HackerUbuntu (攻击者) ![漏洞检测攻击者](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674creenshots/vuln-detection-attacker.png.png) | 严重性 | 数量 | |---|---| | 严重 | 5 | | 高危 | 20 | | 中危 | 14 | ## CIS 基准评估 ![CIS 基准](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/cis-benchmark.png.png) **CIS Microsoft Windows Server 2022 Benchmark v2.0.0** | 结果 | 数量 | |---|---| | 通过 | 96 | | 未通过 | 263 | | **得分** | **26%** | **关键未通过控制项 — CIS ID 27000:** 26% 的 CIS 得分意味着系统严重缺乏安全加固,具有极大的攻击面。 ### 检测到 Nmap 扫描 ![Nmap 扫描](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/796b65dc96977efc4021cb9ad486950943336674/Screenshots/nmap-scan-wazuh.png.png) ![Nmap 扫描命令](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/74a2286f8d6aeed25aba4ecc8f2f6d015f78a657/Screenshots/nmap-results.png.png) 来自 HackerUbuntu 的后续 nmap 扫描被 Wazuh 捕获: ``` predecoder.hostname: HackerUbuntu data.command: /usr/bin/nmap -sV -Pn 10.0.2.5 rule.mitre.id: T1548.003 rule.mitre.tactic: Privilege Escalation, Defense Evasion ``` 这表明 Wazuh 能够检测到 **侦察活动**,而不仅仅是身份验证失败。 ## 主要发现与 IOC | 入侵指标类型 | 值 | |---|---| | 攻击者 IP | `10.0.2.6` | | 攻击者主机名 | `HackerUbuntu` | | 目标账户 | `Administrator` | | 目标端口 | `3389` (RDP) | | 认证协议 | `NTLM / NtLmSsp` | | 登录类型 | `3` (网络登录) | | SubStatus | `0xc000006a` (密码错误) | | Status | `0xc000006d` (登录失败) | | 事件 ID | `4625` (出现数百次) | | 攻击速率 | ~26 次尝试/分钟 | | 总事件数 | 记录了 3,713 个 | ## MITRE ATT&CK 映射 | 战术 | 技术 | ID | |---|---|---| | 初始访问 | 暴力破解:密码猜测 | T1110.001 | | 凭证访问 | 暴力破解 | T1110 | | 侦察 | 网络服务发现 | T1046 | | 初始访问 | 有效账户 | T1078 | | 权限提升 | 滥用提升控制机制:Sudo 和 Sudo 缓存 | T1548.003 | | 持久化 | 创建或修改系统进程:Windows 服务 | T1543.003 | ## 应用的密码学概念加密与哈希 ### NTLM 身份验证与 MD4 哈希 Wazuh 中捕获的每次失败登录尝试均显示: ``` data.win.eventdata.authenticationPackage: NTLM data.win.eventdata.logonProcessName: NtLmSsp ``` ![失败日志](https://github.com/Jspencer-SOC/SOC-Home-Lab-RDP-Brute-Force/blob/2ec3007bb3f25e3832eb4bdc7784e4e16c81e77c/Screenshots/NTLM%20%26%20NtLMSsp%20documentation.png) **NTLM (NT LAN Manager)** 是微软的传统身份验证协议。当用户登录时,Windows 不会传输明文密码 — 相反,它传输的是使用 **MD4 算法** 计算出的密码 **哈希值**。 | 属性 | 值 | |---|---| | 算法 | MD4 | | 输出大小 | 128 位哈希 | | 状态 | 在密码学上已被破解 | | 漏洞 | 碰撞攻击,彩虹表攻击,离线破解 | **MD4 已从密码学应用中退役**,因为它未能满足安全哈希函数的核心要求 — 在计算上能够找到产生相同哈希值的两个不同输入(碰撞),并且现代硬件每秒可以计算数十亿个 MD4 哈希,使得离线破解极其迅速。 ### 这与暴力破解攻击的关系 Hydra 的 RDP 暴力破解工作在 **身份验证协议层面** — 它通过网络发送明文密码猜测,并让服务器计算和比较哈希值。这意味着: 1. Hydra 提交密码猜测 → `password123` 2. Windows 计算 MD4 哈希 → `2b1b7b2fa1f1d8f6a3de142289c01f23` 3. Windows 将其与 SAM 数据库中存储的 NTLM 哈希进行比较 4. 如果不匹配 → `subStatus: 0xc000006a` (密码错误) 5. Hydra 尝试 rockyou.txt 中的下一个密码 **rockyou.txt 具有密码学意义** — 它源于 2009 年的一次数据泄露事件,其中 3200 万用户的密码以 **明文** 形式存储(完全没有哈希处理)。该字典之所以有效,是因为它代表了人们实际使用的真实密码,使其对使用弱密码或常见密码的系统具有毁灭性打击能力。 ### 离线哈希破解(入侵后场景) 如果攻击者成功登录并转储了 Windows SAM (Security Account Manager) 数据库,攻击将从 **在线暴力破解** 转向 **离线哈希破解:** ``` # 使用 hashcat 破解 NTLM hash hashcat -m 1000 -a 0 /usr/share/wordlists/rockyou.txt ``` **在线与离线攻击比较:** | 属性 | 在线 (Hydra RDP) | 离线 (hashcat) | |---|---|---| | 速度 | ~26 次尝试/分钟 (受 RDP 限制) | 每秒数十亿个哈希 | | 可检测性 | 高 — 在 SIEM 中生成 4625 事件 | 零 — 无网络流量 | | 锁定风险 | 是 — 适用账户锁定策略 | 否 — 不进行身份验证尝试 | | 要求 | 实时网络访问 | 仅需访问哈希转储 | 这就是为什么 **密码哈希算法的强度至关重要** — 像 MD4 这样的弱算法意味着,即使攻击者只获得了哈希值(而不是明文),他们也可以在无法被检测到的情况下进行离线破解。 ### 密码学修复 — 更强大的身份验证 **1. 用 Kerberos 替代 NTLM** Kerberos 使用 **AES-256 加密** 进行基于票据的身份验证 — 比 NTLM 的 MD4 哈希更能抵抗离线破解。在域环境中,应始终首选 Kerberos 而不是 NTLM。 **2. 启用 NLA (Network Level Authentication)** NLA 在建立 RDP 会话之前增加了 **TLS 加密**: ``` # 在 Windows Server 上启用 NLA Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' ` -Name "UserAuthentication" -Value 1 ``` 如果没有 NLA,凭证协商将在未加密的 RDP 会话中进行。使用 NLA,凭证在任何会话数据交换之前都会受到 TLS 保护。 **3. 基于证书的身份验证** 完全用 **非对称密码学** 替代密码身份验证: - 服务器持有 **公钥** - 用户持有 **私钥** (存储在智能卡或 TPM 上) - 身份验证证明持有私钥而无需传输它 - 没有私钥的攻击者无法进行身份验证,无论他们尝试多少次猜测 — **暴力破解在数学上变得不可能** **4. 强密码哈希 (用于存储的凭证)** 如果必须存储密码,请使用现代算法: | 算法 | 类型 | 推荐 | |---|---|---| | MD4 (NTLM) | 快速哈希 | 已破解 | | MD5 | 快速哈希 | 已破解 | | SHA-1 | 快速哈希 | 不再使用 | | bcrypt | 慢速哈希 | 推荐 | | Argon2 | 内存密集型哈希 | 最佳实践 | **慢速哈希算法** (bcrypt, Argon2) 专门设计为计算成本高昂 — 即使攻击者获得了哈希值,破解它也需要数月而不是几秒钟。 ### 总结 — 本实验室的密码学经验 | 观察 | 密码学概念 | |---|---| | 每次身份验证尝试都使用了 NTLM | 哈希算法是身份验证的基础 | | MD4 已被破解且易于快速破解 | 哈希函数的安全性要求 | | rockyou.txt 源于明文泄露事件 | 哈希密码的重要性 | | 离线破解远快于在线破解 | 在线与离线攻击面 | | NLA 建议 | 传输中的加密 (TLS) | | 证书身份验证建议 | 非对称密码学 / PKI | | Kerberos 建议 | 现代认证密钥交换 | ## 经验教训 ### 发现的漏洞 1. RDP 暴露且无 IP 限制;任何人都可以通过互联网连接 2. 未配置账户锁定策略 3. 内置 Administrator 账户通过 RDP 暴露 4. CIS 基准得分仅为 26% 5. 1,190 个高危未修补的 CVE 6. 账户锁定审计默认被禁用 7. 如果没有 GPO 覆盖,内置 Administrator 豁免于锁定策略 ### 有效的措施 1. Wazuh 实时检测到了每一次尝试 2. 每个日志条目中都包含完整的攻击者归因 3. 实时修复在几分钟内停止了攻击 4. FIM 立即检测到文件创建 5. 威胁狩猎揭示了 nmap 侦察和软件安装 ### 实际建议 - 如果不需要,请完全禁用 RDP;使用 VPN + 跳板机 - 通过防火墙将 RDP 限制为特定 IP - 重命名或禁用内置 Administrator 账户 - 对所有远程访问强制执行 MFA - 立即应用所有严重/高危补丁 - 将 CIS 基准得分目标设定在 80% 以上 - 配置 Wazuh Active Response 以实现自动 IP 封禁 - 在所有敏感目录上启用 FIM - 监控新服务的创建和未经授权的软件 ## 参考 - [Wazuh 文档](https://documentation.wazuh.com) - [Hydra GitHub](https://github.com/vanhauser-thc/thc-hydra) - [Microsoft 事件 ID 4625](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625) - [MITRE ATT&CK](https://attack.mitre.org/) - [Microsoft NTLM 身份验证文档](https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm) - [NIST 关于 MD4/MD5 弃用的说明](https://csrc.nist.gov/projects/hash-functions) - [RockYou 数据泄露 — 背景](https://techcrunch.com/2009/12/14/rockyou-hack-security-myspace-facebook-passwords/) - [OWASP 密码存储备忘录](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) - [Microsoft — 针对 RDP 的 NLA](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-allow-access) - [NIST 密码哈希指南 — SP 800-63B](https://pages.nist.gov/800-63-3/sp800-63b.html) - [Hashcat 文档](https://hashcat.net/wiki/) *实验室实施时间为 2026 年 4 月 27 日至 5 月 2 日。所有活动均在我拥有的系统上、隔离的 VirtualBox 环境中进行,仅用于教育目的。* *实验室指导和报告撰写在 Claude AI (Anthropic) 的协助下完成。*
标签:AI合规, Anthropic, CIS基准, GitHub Advanced Security, Hydra, IOC, PB级数据处理, RDP暴力破解, SOC实验室, VirtualBox, Wazuh, Windows Server 2022, x64dbg, 加密, 哈希, 子域名变形, 安全加固, 安全运维, 实时检测, 家庭实验室, 密码攻击, 库, 应急响应, 插件系统, 无线安全, 暴力破解攻击, 流量捕获, 漏洞扫描器, 网络安全, 网络拓扑, 虚拟化环境, 隐私保护