bdk3000/recon-detection-gap
GitHub: bdk3000/recon-detection-gap
该项目通过模拟 Nmap 网络侦察并分析 Azure Sentinel 日志缺失,揭示并记录了端点检测 pipeline 在网络扫描阶段的遥测盲区,为检测工程提供覆盖范围映射和补救指导。
Stars: 0 | Forks: 0
# 网络侦察检测缺口分析
**MITRE ATT&CK:** T1046 - 网络服务发现 |
T1595 - 主动扫描
**环境:** Kali Linux → Windows Server 2022 (DC01)
**检测技术栈:** Sysmon + AMA + Azure Sentinel
## 概述
这项检测工程练习记录了基于端点的检测 pipeline 中一个关键的盲点:网络侦察活动不会生成任何 Windows 安全日志事件,导致防御者在攻击的最早阶段完全处于盲区。
## 模拟攻击
从 Kali Linux 对一台 Windows Server 2022 域控制器执行的完整 Nmap 侦察序列:
- 主机发现(ping 扫描)
- SYN 扫描 — 前 1000 个端口
- 服务和版本检测
- 操作系统指纹识别
- 结合 NSE 脚本的激进扫描
## 攻击者获取的信息
对域控制器进行单次 Nmap 激进扫描,即可在无需任何凭证的情况下揭示:
- 主机名和完全限定域名
- 操作系统及版本
- 所有暴露的服务及版本
- 域名和 AD 站点信息
- SMB 签名状态
- WinRM 可用性 — 远程执行攻击面
- Kerberos 存在 — 确认 AD 环境
## 检测结果
在主动扫描窗口期间,针对源 IP 查询 SecurityEvent 未返回任何结果。
SYN 扫描永远不会完成 TCP 握手。Windows 安全日志仅记录已完成的身份验证事件 — 而不是原始网络探测。攻击者可以完全摸清你的网络,且不会生成任何一条 Windows 安全日志记录。
## 检测覆盖范围映射表
| 攻击阶段 | 检测状态 | 原因 |
|-------------|-----------------|--------|
| 网络扫描 | ❌ 盲区 | 无网络遥测数据 |
| 端口枚举 | ❌ 盲区 | 无完成的握手 |
| 服务指纹识别 | ❌ 盲区 | 无身份验证尝试 |
| 身份验证滥用 | ✅ 可见 | 4624/4625 事件 |
| 进程执行 | ✅ 可见 | 4688/Sysmon ID 1 |
## 缓解措施
部署 Sysmon 并开启网络连接日志记录(事件 ID 3)以实现端点级别的连接可见性。为了实现完整的网络层覆盖,请部署 Zeek 或 Suricata 作为网络流量收集器。
## 影响结论
攻击者在接触任何凭证之前,会花费数天时间进行侦察。如果没有网络遥测数据,你的检测 pipeline 将对他们在此阶段获取的关于你环境的所有信息视而不见。这一发现确立了基础的检测缺口,而所有后续的检测规则都是为了填补这一缺口而构建的。
## 环境
## 证据
**网络侦察 — Kali Ping 扫描**

**DC01 攻击面 — Nmap SYN 扫描**

**Sentinel 检测缺口 — 零结果**

- 攻击机: Kali Linux 2026.x
- 目标: Windows Server 2022 Domain Controller
- Pipeline: AMA → Azure Arc → DCR → Log Analytics → Sentinel
- 实验环境: 隔离的 HyperV 环境
标签:CTI, Windows Server, 安全, 密码管理, 插件系统, 超时处理