本项目是一个防御性网络安全研究实验室,聚焦于与 CVE-2023-23397 相关的网络行为。
本项目研究来自 Windows 端点的可疑出站 SMB 和 NTLM 身份验证,并演示一套完整的防御工作流程:
基线 -> 网络观察 -> NTLM 检测 -> 告警生成 -> 网关缓解 -> 主机缓解 -> 验证
该实验室完全隔离,仅使用为授权安全测试所拥有和控制的系统。
本仓库被组织为一项可复现的防御性安全研究,而非漏洞利用演示。其核心研究问题是:
SMB/NTLM 协议语义和网络信任边界能否检测与 CVE-2023-23397 相关的异常出站身份验证行为?主机侧和网关侧缓解措施在阻断行为和传感器可见性方面有何差异?
本研究评估四个问题:
本项目验证与 CVE-2023-23397 相关的强制出站 SMB/NTLM 行为以及相应的检测和缓解控制措施。它并不证明 Outlook 处理了恶意 MAPI 消息,也不证明 CVE-2023-23397 已被利用。
| 文档 | 用途 |
|---|---|
report/project-report.md | 主要研究报告,包含问题、设计、结果、讨论和局限性 |
docs/literature-review.md | 关于该漏洞、强制身份验证、NTLM、Zeek 和防火墙控制的权威工作综述 |
docs/research-methodology.md | 拓扑、变量、控制、程序、证据来源和有效性边界 |
docs/live-validation-2026-09-11.md | 精确的实时验证观察结果和最终实验室状态 |
evidence/validation-20260911/ | PCAP、日志、完整性清单和机器可读的验证摘要 |
scripts/verify_validation_evidence.py | 只读的自动化证据一致性检查 |
本项目的主要目标是:
该实验室包含三台虚拟机。
| 系统 | 角色 | 地址 |
|---|---|---|
| Windows-Victim | 受保护的 Windows 端点 | 10.10.20.10/24 |
| Ubuntu-Sensor | 路由器和 Zeek 安全传感器 | 10.10.20.1/24, 10.10.30.1/24 |
| Kali-Adversary | 受控的 SMB 目标 | 10.10.30.10/24 |
逻辑流量路径:
Windows-Victim
10.10.20.10
|
| VICTIM_NET
|
Ubuntu-Sensor
10.10.20.1 / 10.10.30.1
|
| ATTACK_NET
|
Kali-Adversary
10.10.30.10
受害者和攻击者网络彼此隔离。
它们之间的流量必须经过 Ubuntu-Sensor,使传感器能够观察并控制通信。
使用单独的 VMware 管理网络对 Ubuntu-Sensor 进行管理 SSH 访问。
更多信息:
lab/network-plan.md
CVE-2023-23397 与涉及 Microsoft Outlook 的强制出站身份验证行为相关。
与安全相关的行为是 Windows 系统尝试向攻击者控制的网络资源进行身份验证。
本实验重点关注可观察的网络行为:
Windows endpoint
-> outbound TCP/445
-> SMB negotiation
-> NTLM authentication
-> network detection
实验室并不声称每一个生成的 SMB 事件都代表对 Outlook 漏洞的利用。
相反,受控的 SMB 和 NTLM 流量被用于安全地开发和验证防御检测逻辑。
详细分析:
docs/attack-flow.md
主要技术:
T1187 - 强制认证
主要战术:
凭据访问
该项目专注于检测和阻止从受保护工作站向不受信任目标发起的可疑出站认证。
第一阶段建立了 Windows 受害机与受控对手之间的正常路由通信。
在引入检测逻辑之前,收集了基线数据包捕获和 Zeek 连接日志。
这为后续比较提供了参考点。
分析:
docs/baseline-traffic-analysis.md
在 Kali-Adversary 上托管了一个受控的 SMB 服务器。
Windows-Victim 成功访问了:
\\10.10.30.10\SHARE
Zeek 成功解析:
该基线表明,在引入自定义检测逻辑之前,传感器能够观察到完整的认证路径。
分析:
docs/smb-baseline-analysis.md
开发了一个自定义 Zeek 检测器:
detections/zeek/cve_2023_23397_ntlm.zeek
该检测器生成:
CVE23397::Suspicious_Outbound_NTLM
该规则评估四个主要条件:
这比仅对 TCP/445 告警提供了更多上下文。
检测逻辑:
Victim network
+
Untrusted destination
+
TCP/445
+
NTLM Authenticate
=
Suspicious outbound NTLM notice
对于发往同一目标的重复认证,采用五分钟的抑制间隔来减少重复通知。
该自定义检测器已使用受控的 SMB 和 NTLM 流量成功完成验证。
经验证的事件展示了以下各项之间的关联:
一条经验证的告警包含:
CVE23397::Suspicious_Outbound_NTLM
检测分析与完整性验证的证据记录在:
docs/ntlm-detection-analysis.md
第一项缓解措施已在 Ubuntu-Sensor 上实施。
网关阻止了来自以下来源的转发 TCP/445 流量:
10.10.20.10
到:
10.10.30.10:445
启用该规则后:
Windows SYN
-> Ubuntu Sensor
-> DROP
观察到的结果:
验证:
docs/mitigation-validation.md
使用 Windows Defender 防火墙测试了第二种缓解措施。
该端点阻止了出站:
TCP/445 -> 10.10.30.10
观察到的结果:
这展示了两个防御控制点之间的一个重要差异。
Windows
-> SYN
-> Network Sensor
-> DROP
网络传感器仍能保留对被阻止尝试的可见性。
Windows
-> Host Firewall DROP
数据包永远不会到达外部网络传感器。
验证:
docs/windows-host-mitigation-validation.md
| 状态 | TCP/445 | 传感器可见性 | SMB | NTLM | Zeek 告警 |
|---|---|---|---|---|---|
| 无缓解 | 允许 | 完整 | 是 | 是 | 是 |
| 网关阻断 | 在网关处阻断 | SYN 尝试可见 | 否 | 否 | 否 |
| Windows 主机阻断 | 在端点处阻断 | 无匹配数据包 | 否 | 否 | 否 |
这展示了检测性控制与预防性控制。
该实验表明,检测与预防应当结合使用。
防御模型包括:
Endpoint filtering
+
Network egress filtering
+
Zeek network monitoring
+
NTLM authentication monitoring
+
Patch management
网关控制提供集中式强制执行和网络可见性。
主机控制会更早地阻止不需要的通信。
当可疑身份验证到达受监控的网络路径时,Zeek 提供可见性。
该仓库保存了实验期间收集的证据。
存储于:
evidence/pcap/
示例包括:
存储于:
evidence/logs/
证据包括:
SHA-256 哈希记录在相应的分析文档中,以支持证据完整性。
cve-2023-23397-detection-lab/
|
|-- README.md
|-- LICENSE
|
|-- lab/
| `-- network-plan.md
|
|-- detections/
| `-- zeek/
| `-- cve_2023_23397_ntlm.zeek
|
|-- docs/
| |-- attack-flow.md
| |-- threat-model.md
| |-- literature-review.md
| |-- research-methodology.md
| |-- baseline-traffic-analysis.md
| |-- smb-baseline-analysis.md
| |-- ntlm-detection-analysis.md
| |-- mitigation-analysis.md
| |-- mitigation-validation.md
| |-- windows-host-mitigation-validation.md
| `-- live-validation-2026-09-11.md
|
|-- evidence/
|-- pcap/
|-- logs/
|-- screenshots/
`-- validation-20260911/
|
|-- report/
| `-- project-report.md
|
`-- scripts/
`-- verify_validation_evidence.py
当前项目已成功完成:
Lab Architecture
|
v
Routed Network Validation
|
v
Baseline PCAP
|
v
SMB / NTLM Baseline
|
v
Custom Zeek Detection
|
v
Detection Alert Validation
|
v
Gateway TCP/445 Mitigation
|
v
Gateway Post-Mitigation Validation
|
v
Windows Host TCP/445 Mitigation
|
v
Host Post-Mitigation Validation
当前实现中使用的已验证工具包括:
潜在的未来改进包括:
这些事项属于未来工作,并非作为已完成的能力呈现。
该实验室主要验证网络可观测的 SMB 和 NTLM 行为。
当前的受控测试展示了与 CVE-2023-23397 相关的身份验证行为,但并未声称复现真实世界 Outlook 利用的每一个组成部分。
自定义规则是针对已定义的实验室信任边界设计的,在生产环境中使用前需要进行调优。
三虚拟机实机环境已于 2026-09-11 重新验证。本次运行确认了路由数据包路径、受控 SMB/NTLM 遥测、检测器加载、关联的自定义通知、负向用例、网关与主机阻断,以及回滚恢复。
关键证据在整个仓库中保持一致:
ens33 上有 5 个 TCP/445 数据包,ens34 上为 0,iptables 计数器为 5 个数据包 / 260 字节。CCpuF7S8CCLEmpKsd 关联。已验证的结论仅限于与 CVE-2023-23397 相关的强制出站 SMB/NTLM 行为及相应的检测与缓解控制。该项目并不证明 Outlook 处理了恶意 MAPI 消息,也不证明 CVE-2023-23397 已被利用。
参见 docs/live-validation-2026-09-11.md 和 evidence/validation-20260911/。
本仓库中记录的所有测试均在隔离且受控的实验室环境中进行,使用的是自有或明确授权用于测试的系统。
该项目仅用于:
不针对任何生产系统或未经授权的外部系统。