NetSPI/AD-PathFinder

GitHub: NetSPI/AD-PathFinder

ADPathFinder 是一款基于 BloodHound CE 与 OpenGraph 数据的 Active Directory 攻击路径自动化映射与审计报告工具。

Stars: 83 | Forks: 7

# ADPathFinder ADPathFinder 是一款专为渗透测试人员和红队成员设计的攻击路径映射工具。它通过分析 SharpHound 数据,并将其与 OpenGraph 插件相结合,能够挖掘出从低权限用户和计算机到诸如 Domain Admins 和 Domain Controllers 等高价值目标的攻击路径。该工具原生支持 MSSQLHound 和 ConfigManBearPig,将覆盖范围扩展至 AD、ADCS、SCCM 和 MSSQL。

ADPathFinder CLI demo showing grouped risk findings and attack paths

## 覆盖范围 | 领域 | 示例 | | --- | --- | | 核心 AD | 提权路径、委派、管理员权限、BadSuccessor、暴露的高价值会话 | | 密码 | 弱密码、空密码、密码重用、用户名相似性、使用 LM hash、Kerberoast 以及与弱密码相伴的 AS-REP 暴露 | | ADCS | ESC 风格的证书模板和 CA 风险 | | MSSQL (MSSQLHound OpenGraph 数据) | 登录、链接服务器、 impersonation、 relay 和权限提升路径 | | SCCM (ConfigManBearPig OpenGraph 数据) | 接管和 relay 路径、启用 PXE 的分发点以及管理点策略检索 | | 跨域 | 域间的信任、共享密码和提权路径 | ## 环境要求 - Python 3.9 或更高版本。 - BloodHound CE 和 Neo4j 默认在本地 `neo4j://localhost:7687` 可用。 - 用于导入和删除操作的 BloodHound CE API 凭据。 - 用于 AD 审计覆盖的 BloodHound CE / SharpHound zip 压缩包。 - 可选:来自 MSSQLHound 和 ConfigManBearPig 的 OpenGraph 插件 zip 压缩包,用于 MSSQL 和 SCCM 覆盖。 - 可选:NTDS 哈希转储文件和 hashcat potfile,用于密码审计。 ## 快速开始
从源码安装
配置 BloodHound API 访问权限 ``` adpathfinder --setup-bloodhound-api ``` 这将存储用于导入和删除操作的 BloodHound CE API 设置。
导入 SharpHound 数据 ``` adpathfinder --import SharpHound.zip ``` 可以在一条命令中导入多个 SharpHound 和 OpenGraph 插件 zip 压缩包: ``` adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip ```
导入数据并运行完整审计 ``` adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile ```
运行域审计 ``` adpathfinder --ad ```
运行密码审计 ``` adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile ``` 仅当需要报告包含明文密码时,才使用 `--unsafe-report`。
写入诊断信息 ``` adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics ```
## 工作原理 | 阶段 | 具体内容 | | --- | --- | | **获取** | 将 SharpHound 和受支持的 OpenGraph zip 压缩包合并为一个图。直接支持 MSSQLHound 和 ConfigManBearPig 数据 | | **映射** | 查找从用户和计算机到高价值目标的最短路径。你可以[配置边集](https://github.com/NetSPI/AD-PathFinder/wiki/Excluded-Relationships)以移除诸如 `HasSession` 等产生干扰的边 | | **分组** | 对共享同一路径的账户进行分组,以便将重复路径作为单个发现报告,而不是许多近乎重复的结果 | | **配对** | 将 NTDS 哈希和 hashcat potfile 与图数据进行比对,以展示在评估期间哪些路径是可利用的 | | **分层** | 报告独立的发现(例如 SMB 签名被禁用或默认特权组),并在同一主机或组也位于通往高价值目标的路径上时,提高其严重性级别 | | **渲染** | 生成包含 SVG 路径图、缓解措施说明、PowerShell 验证步骤和修复状态跟踪的 HTML 报告,以及文本、JSON 和诊断输出 |

ADPathFinder workflow diagram

## 密码审计 HTML 报告

ADPathFinder password audit report walkthrough showing cracked categories, policy compliance, password lengths, and roastable accounts

## 配置 运行以下命令来配置用于导入和删除操作的 BloodHound CE API 访问权限: ``` adpathfinder --setup-bloodhound-api ``` ## 输出结果 报告将写入 `report_/`,例如 `report_training.local/`。 | 输出 | 用途 | | --- | --- | | `_AD_report.html` | 提供给客户的 HTML 报告,包含分组的发现结果、路径图、缓解措施说明、验证步骤和修复状态跟踪 | | `_domain_audit.txt` / `_domain_audit.json` | 用于审查、自动化和后续分析的文本和 JSON 域审计输出 | | `_password_audit.html` / `_password_audit.txt` / `_password_audit.json` | 提供了 NTDS 哈希和 hashcat potfile 时的密码审计输出 | | `_*_unsafe.*` | 仅在使用 `--unsafe-report` 时生成的可选不安全报告;这些文件可能包含明文密码 | | `diagnostics.json` | 使用 `--diagnostics` 生成的可选运行统计和调试数据 | 请将 NTDS 数据、potfile 和生成的报告视为敏感评估数据。`--unsafe-report` 标志会将明文密码写入输出文件中;仅在报告中确实需要明文时才使用它,并妥善存储生成的 `_unsafe` 文件。 有关域审计和密码审计输出的示例,请参见 [`sample_reports/`](sample_reports/)。 ### 测试 执行 `pip install -e ".[test]"`,然后运行 `pytest tests/ -m "not neo4j and not integration"` 即可在没有 Neo4j 的情况下运行快速框架测试。有关 Neo4j 测试套件和完整的本地测试工作流,请参见 [`tests/README.md`](tests/README.md)。 ## 致谢 ADPathFinder 建立在其他项目收集的数据基础之上;在此感谢它们的作者以及 SpecterOps 团队: - [BloodHound CE](https://github.com/SpecterOps/BloodHound) — Active Directory 图数据。 - 由 Chris Thompson 开发的 [MSSQLHound](https://github.com/SpecterOps/MSSQLHound) — MSSQL 数据收集。 - 由 Chris Thompson 开发的 [ConfigManBearPig](https://github.com/SpecterOps/ConfigManBearPig) — SCCM 数据收集。
标签:逆向工具