404SecNotFound/Active-Directory-Pentest-Detection-Pack

GitHub: 404SecNotFound/Active-Directory-Pentest-Detection-Pack

这是一个包含127条Sigma规则的Active Directory渗透测试检测包,旨在帮助蓝队检测从侦察到持久化的全攻击链。

Stars: 1 | Forks: 0

# Active Directory 渗透测试检测包 ![规则](https://img.shields.io/badge/Sigma规则-127-blue) ![ATT&CK](https://img.shields.io/badge/ATT%26CK技术-68-red) ![架构](https://img.shields.io/badge/Sigma-2.0-green) [![验证](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c89dab12d1171918.svg)](https://github.com/404SecNotFound/Active-Directory-Pentest-Detection-Pack/actions/workflows/validate.yml) ![许可证](https://img.shields.io/badge/license-MIT-lightgrey) ![状态](https://img.shields.io/badge/status-v3.2.0-success) ## 这是什么 这是防御性内容。它的存在是为了让蓝队能够检测到红队和真实入侵者针对 Active Directory 使用的确切攻击技术。 本检测包的来源——原始攻击思维导图,包含在 [`docs/pentesting-active-directory-mindmap.pdf`](docs/pentesting-active-directory-mindmap.pdf)。每一条检测规则都对应着该思维导图上的一个节点。 ## 与众不同之处 大多数公开的 AD 规则集要么是工具名签名(改个名就失效),要么是单事件规则(会让安全运营中心陷入误报的海洋)。本检测包专门针对这两种失效模式进行了审计: - **关注行为而非名称。** 关键检测依据的是攻击者行为(LSASS 访问模式、Kerberos 加密降级、来自非 DC 的复制请求),而不是随随便便一个 `Move-Item` 就能改变的工具文件名。 - **诚实的保真度标注。** 无法单独使用的规则被标记为 `informational` 并导向狩猎流程,而非警报队列。没有规则会被过度宣传。 - **按遥测能力分层。** 核心规则仅需 Windows 安全日志。Sysmon 增强层提供高保真覆盖。依赖 IDS 的规则被明确指出,不会静默失败。 - **文档化盲点。** 剩余的缺陷(内存中攻击技术、直接系统调用转储、重新编译的工具、深度 ADCS ESC 链)被明确记录下来,而非隐藏。 ## 覆盖范围概览 完整的技术映射在 [`rule_index.csv`](rule_index.csv)。覆盖 11 个战术中的 68 项 ATT&CK 技术。 ## 仓库结构 ``` . ├── recon_discovery/ 17 rules reconnaissance and enumeration ├── coercion_relay/ 9 rules authentication coercion and NTLM relay ├── credential_access/ 26 rules credential theft and Kerberos abuse ├── lateral_movement/ 12 rules remote execution and ticket reuse ├── persistence/ 8 rules forged tickets and backdoors ├── trust_abuse/ 7 rules delegation, trusts, SID history, RBCD, dMSA ├── exploitation/ 24 rules CVEs and service abuse ├── acl_dacl_abuse/ 4 rules AD object DACL and delegation rights ├── sysmon_enriched/ 11 rules high-fidelity rules requiring Sysmon ├── runbooks/ per-alert triage playbooks ├── exclusions/ environment-specific allowlist templates ├── scripts/ validate_pack.py, substitute.py ├── coverage/attack_matrix.md generated ATT&CK coverage ├── docs/ │ ├── pentesting-active-directory-mindmap.pdf source attack mindmap │ ├── logrhythm_mapping.md LogRhythm metadata field mapping │ └── social-card.png ├── DEPLOYMENT.md setup and pre-deployment checklist ├── SOC_OPERATIONS.md enrichment, field mappings, thresholds, routing ├── placeholders.yml environment-specific values to substitute ├── CHANGELOG.md · RELEASE_CHECKLIST.md · REFERENCES.md ├── rule_index.csv full machine-readable rule index ├── CONTRIBUTING.md · SECURITY.md · CODE_OF_CONDUCT.md · CITATION.cff └── LICENSE ``` ## 5 分钟快速入门 ``` git clone https://github.com/404SecNotFound/Active-Directory-Pentest-Detection-Pack.git cd Active-Directory-Pentest-Detection-Pack pip install pysigma pyyaml python - <<'PY' import glob, yaml from sigma.collection import SigmaCollection rule_dirs = ["recon_discovery","coercion_relay","credential_access","lateral_movement","persistence","trust_abuse","exploitation","acl_dacl_abuse","sysmon_enriched"] files = sorted(f for d in rule_dirs for f in glob.glob(f"{d}/*.yml")) col = SigmaCollection.from_yaml(yaml.dump_all([yaml.safe_load(open(f)) for f in files])) col.resolve_rule_references() print(f"{len(col)} rules loaded, references resolved") PY ``` 这会在几秒钟内加载并验证整个检测包。然后,使用 pySigma(见下文)将其转换为你的平台格式,并按照 [`DEPLOYMENT.md`](DEPLOYMENT.md) 进行部署。 ## 验证状态 检测包在每次推送和拉取请求时都会在 CI 中进行验证(参见上面的徽章)。检查项包括:YAML 语法、重复键检测、pySigma 集合加载、关联规则引用解析以及重复规则 ID 检测。 本地运行相同的检查: ``` pip install pysigma pyyaml python3 scripts/validate_pack.py ``` ATT&CK 覆盖情况在 [`coverage/attack_matrix.md`](coverage/attack_matrix.md) 中生成。 ## 为什么本检测包与众不同 - **攻击链叙事,而非零散堆砌。** 规则按操作员执行的战术组织,镜像原始攻击思维导图,使覆盖缺口一目了然。 - **Sigma 2.0,任意转换。** 使用 pySigma 转换为你运行的任何后端;无平台锁定。 - **诚实的保真度。** 仅用于狩猎的规则被标记为 `informational`,不进入警报队列。 - **注重操作性,不止是规则。** 随附分诊手册、排除模板、SOC 操作指南和部署前检查清单。 ## 转换为你的平台格式 Sigma YAML 是事实来源。本检测包不提供预构建的、针对特定后端的查询或保存的搜索;你需要在部署时为自己的平台生成它们。 使用 [pySigma](https://github.com/SigmaHQ/pySigma) 和 `sigma-cli` 将规则转换为你的 SIEM 格式,并安装你所用平台的后端插件。 将转换器指向规则文件夹,而不是仓库根目录,这样它就不会尝试将 CI 工作流解析为 Sigma 规则。下面的 `RULES` 指的是九个战术文件夹: ``` RULES="recon_discovery coercion_relay credential_access lateral_movement persistence trust_abuse exploitation acl_dacl_abuse sysmon_enriched" pip install sigma-cli pip install sigma list targets # see available backends sigma convert -t -p $RULES -o converted_rules.txt ``` 注意:11 个 Sigma 2.0 关联规则使用了 `correlation:` 块,并需要后端原生的关联语法;并非所有后端都支持它们。它们列在 `CHANGELOG.md` 中,其阈值在 `SOC_OPERATIONS.md` 的第 6 节。 验证整个检测包是否能作为一个集合加载(关联规则会引用共享的基础规则): ``` from sigma.collection import SigmaCollection import glob, yaml docs = [yaml.safe_load(open(f)) for f in glob.glob("**/*.yml", recursive=True)] col = SigmaCollection.from_yaml(yaml.dump_all(docs)) col.resolve_rule_references() assert len(col) == 127 ``` ## 部署前准备 阅读 [`DEPLOYMENT.md`](DEPLOYMENT.md)。它包含五项部署前检查清单、每个层级所需的审计子类别和 Sysmon 事件、缺失时会导致规则静默失败的日志依赖项,以及完整的规则索引。 简要版本: 1. 将五个 `PLACEHOLDER_*` 筛选值替换为你的环境具体信息。 2. 启用所需的 Windows 审计子类别,对于 Sysmon 层级,部署现代的 Sysmon 配置。 3. 在你的 SIEM 富化层中配置两个字段比较规则(Sigma 无法比较两个字段)。 4. 在发出警报前,先对关联规则和狩猎规则进行为期两周的基线评估。 5. 将 12 条 `informational` 规则导向狩猎队列,而非警报队列。 ## 分层模型 | 层级 | 文件夹 | 所需遥测数据 | |---|---|---| | 核心层 | 除 `sysmon_enriched/` 外的所有 | 具有正确审计子类别的 Windows 安全事件日志 | | Sysmon 增强层 | `sysmon_enriched/` | Sysmon v15+ (SwiftOnSecurity 或 Olaf Hartong 基线) | | IDS 依赖层 | `eternalblue`, `java_rmi`, `smbghost` | Suricata、Snort 或 Zeek 签名 | ## 诚实的局限性 本检测包提高了入侵的成本。它并不能使 Active Directory 坚不可摧,也无法仅靠 Sigma 就抓住顶级攻击者。 - 重新编译的攻击工具可以绕过基于元数据的检测。请关注行为规则。 - 内存中的、BOF 和 execute-assembly 攻击技术不会产生进程或命令行遥测。 - 直接系统调用的 LSASS 转储器可以呈现干净的调用栈。要解决这个问题需要 EDR 用户态钩子遥测。 - ESC2/4/9/10/15 通过监控模板 ACL 变更来覆盖;ESC3/ESC5/ESC7 以及完整的 ESC11-16 集合目前尚未单独覆盖。 在 Sigma 之上叠加 EDR 遥测以获得国家级的覆盖能力。参见下面的路线图。 ## 路线图 - 剩余的 ADCS ESC 路径 (ESC3, ESC5, ESC7, ESC11-16)。 - EDR 层规则,用于 Sigma 无法触及的内存和句柄级遥测。 - 在每个后端的关联语法中,对 11 个 Sigma 2.0 关联规则进行原生关联转换。 - 覆盖 SCCM 网络访问账户和 AdminService API 滥用。 ## 先验工作与致谢 本检测包并非声称发明了 AD 攻击检测。它是对深厚社区工作的聚焦的、思维导图驱动的补充。其检测范围源自 [esidate / Orange Cyberdefense AD 渗透测试思维导图](https://github.com/esidate/pentesting-active-directory),将该攻击链转换为 Sigma 规则。规范的 [SigmaHQ 规则集](https://github.com/SigmaHQ/sigma) 和 [mdecrevoisier/SIGMA-detection-rules](https://github.com/mdecrevoisier/SIGMA-detection-rules) 已经涵盖了许多技术;在重叠之处,本检测包旨在实现更严格的误报控制和端到端的攻击链覆盖,而非追求新颖性。检测逻辑基于 [Sean Metcalf 的 adsecurity.org](https://adsecurity.org)、[The Hacker Recipes](https://www.thehacker.recipes/ad/)、[SpecterOps 的 BloodHound](https://github.com/SpecterOps/BloodHound) 以及 [MITRE ATT&CK](https://attack.mitre.org/matrices/enterprise/windows/) 分类法的基础研究。Sysmon 层级假设使用来自 [Olaf Hartong 的 sysmon-modular](https://github.com/olafhartong/sysmon-modular) 或 [SwiftOnSecurity 的 sysmon-config](https://github.com/SwiftOnSecurity/sysmon-config) 的遥测数据;使用 [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) 验证覆盖范围。每项技术的具体来源在 [`REFERENCES.md`](REFERENCES.md)。任何错误均由我负责,而非他们。 ## 贡献 欢迎提交问题和拉取请求。新规则必须通过 `pySigma` 集合加载和引用解析,携带准确的 ATT&CK 映射,并记录误报情况。详见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 免责声明 此内容仅用于防御性安全操作和授权测试。所引用的攻击技术旨在用于检测,而非利用。仅在你拥有或明确授权你进行防御的系统上使用。 ## 许可证 根据 [MIT 许可证](LICENSE) 发布。 ## 鸣谢 检测内容由 [**404SecNotFound**](https://github.com/404SecNotFound) 编写和维护。 原始攻击思维导图:[**esidate/pentesting-active-directory**](https://github.com/esidate/pentesting-active-directory),该导图基于 Mayfly 和 Orange Cyberdefense 的工作。所有原始攻击路径研究的功劳归于这些作者。本项目将他们的攻击性思维导图映射为防御性的 Sigma 检测规则,并与 MITRE ATT&CK 对齐,通过 SigmaHQ 架构验证。
标签:Active Directory安全, AMSI绕过, Conpot, MITRE ATT&CK框架, Reconnaissance, Sigma规则, Sysmon, URL发现, Windows安全, 威胁情报, 威胁检测, 安全检测, 安全规则集, 开发者工具, 攻击链检测, 混合加密, 渗透测试检测, 目标导入, 网络安全, 蓝队防御, 逆向工具, 隐私保护