返回更新列表
新发布Aug 20, 2026

AD-PathFinder v1.2.0

使用 BloodHound CE + OpenGraph 数据对 Active Directory、ADCS、SCCM 和 MSSQL 进行攻击路径映射。

分享

ADPathFinder

build

ADPathFinder 是一款面向渗透测试人员和红队成员的攻击映射工具。它分析 SharpHound 数据,并将其与 OpenGraph 插件统一,以从低权限用户和计算机出发,揭示通往域管理员和域控制器等高价值目标的攻击路径。原生支持 MSSQLHound 和 ConfigManBearPig,将覆盖范围扩展至 AD、ADCS、SCCM 和 MSSQL。

博客: BloodHound CE 中的 OpenGraph 攻击路径映射

ADPathFinder CLI 演示,展示分组风险发现和攻击路径

跳至: 快速开始 · 覆盖范围 · 工作原理 · 报告 · 配置 · 贡献者

Coverage

领域示例
核心 AD提权路径、委派、管理员权限、BadSuccessor、暴露的高价值会话
密码弱密码、空密码、密码重用、用户名相似性、LM Hash 使用、与弱密码关联的 Kerberoast 和 AS-REP 暴露
ADCSESC 风格的证书模板和 CA 风险
MSSQL(MSSQLHound OpenGraph 数据)登录、链接服务器、模拟、中继和提权路径
SCCM(ConfigManBearPig OpenGraph 数据)接管和中继路径、启用 PXE 的分发点、管理点策略检索
跨域域信任、共享密码和域间提权路径

Requirements

  • 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,用于密码审计。

Quickstart

从源代码安装
git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
配置 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

仅使用你有的 zip 文件。--pwd 的值不是 AD 域;它是公司、品牌或组织术语的逗号分隔列表,用于标记已破解密码。

运行域审计
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 数据
映射查找从用户和计算机到高价值目标的最短路径。你可以配置边集以移除 HasSession 之类的噪声边
分组对共享路径的账户进行分组,使重复路径报告为一条发现,而不是许多近似重复项
配对将 NTDS 哈希和 hashcat potfile 与图数据进行比较,以显示评估期间哪些路径可用
分层报告 SMB 签名禁用或默认特权组等独立发现,并在同一主机或组也位于通往高价值目标的路径上时提高严重性
渲染编写带有 SVG 路径图、缓解建议、PowerShell 验证步骤和已修复状态跟踪的 HTML 报告,以及文本、JSON 和诊断输出

ADPathFinder 工作流程图

AD HTML 报告

ADPathFinder AD 报告演示,展示概览、缓解和确认步骤

密码审计 HTML 报告

ADPathFinder 密码审计报告演示,展示破解类别、策略合规性、密码长度和可离线破解(roast)的账户

配置

ADPathFinder 从工作目录读取 config.ini。也可以使用 ADPF_* 环境变量设置值。

运行以下命令以配置用于导入和删除操作的 BloodHound CE API 访问:

adpathfinder --setup-bloodhound-api

有关所有选项、Neo4j 连接设置、文件权限和示例配置,请参阅 wiki 上的配置。有关过滤攻击路径输出,请参阅排除的关系

输出

报告写入 report_<domain>/,例如 report_training.local/

输出用途
<domain>_AD_report.html面向客户的 HTML 报告,包含分组发现、路径图、缓解建议、验证步骤和已修复状态跟踪
<domain>_domain_audit.txt / <domain>_domain_audit.json用于审查、自动化和后续分析的文本和 JSON 域审计输出
<domain>_password_audit.html / <domain>_password_audit.txt / <domain>_password_audit.json当提供 NTDS 哈希和 hashcat potfile 时生成的密码审计输出
<domain>_*_unsafe.*仅使用 --unsafe-report 生成的可选不安全报告;这些报告可能包含明文密码
diagnostics.json使用 --diagnostics 生成的可选运行统计信息和调试数据

将 NTDS 数据、potfile 和生成的报告视为敏感的评估数据。--unsafe-report 标志会将明文密码写入输出文件;仅在报告中确实需要明文时使用它,并相应存储生成的 _unsafe 文件。

参见 sample_reports/ 中的示例域审计和密码审计输出。

贡献者

检查项(Check)是使用装饰器注册的小型类,它们声明数据需求并返回发现字典。平台检查项声明其数据源,因此当匹配的 OpenGraph 数据不存在时,常规 AD 审计会跳过 MSSQL 或 SCCM 检查项。

参见 wiki 上的添加新检查项使用 OpenGraph 插件框架指南

测试

运行 pip install -e ".[test]",然后执行 pytest tests/ -m "not neo4j and not integration" 即可在不使用 Neo4j 的情况下运行快速的框架测试。有关 Neo4j 夹具套件和完整本地测试工作流程,请参阅 tests/README.md

致谢

ADPathFinder 基于其他项目收集的数据构建;感谢这些项目的作者以及 SpecterOps 团队:

分类