Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
AD_Miner — AD Miner 是一款 Active Directory 审计工具,利用 Cypher 查询从 #Bloodhound 图数据库中处理数据,以发现安全弱点。 | Kitploit
工具/GitHubGitHub/ad-security/ad_miner
权限提升侦察漏洞分析横向移动配置审计信息收集渗透测试错误配置学习与教育
GitHubad-security/ad_miner

AD_Miner

AD Miner 是一款 Active Directory 审计工具,利用 Cypher 查询从 #Bloodhound 图数据库中处理数据,以发现安全弱点。

1.6k163236个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
AD_Miner
AD_Miner 最新版本 最新发布 dev 分支最新提交 Rawsec 网络安全工具清单徽章
Discord

AD Miner 是一个 Active Directory(本地和 Entra ID)审计工具,它:

  • 利用 Cypher 查询 分析来自 BloodHound 图数据库 (Neo4j) 的数据。
  • 通过静态的基于 Web 的报告提供现有弱点的全面概览。

基于 Web 的报告功能:

  • 已识别弱点的 详细列表
  • 用于可视化分析的 动态图表
  • 随时间跟踪变化的 历史关键指标
  • 用于优先级排序的 风险评级

报告快速概览

Active Directory 风险的全面缓解路径

基于风险的 Active Directory 弱点评级,以及全面的缓解路径。

主页

动态 Web 界面

精心设计的搜索栏和控件,可快速识别最具风险的错误配置。

主页

通过演进界面监控进展

您还可以观察指标随时间的变化,以帮助衡量缓解效率。

主页

AD Miner 最初由 Forvis Mazars 创建,目前由 Grant Thornton 网络安全审计与咨询团队维护。

前置条件

要运行 AD Miner,您首先需要一个包含 Active Directory 对象的 neo4j 数据库:

  1. 要从域中提取数据,可以使用 SharpHound、RustHound-CE 或 BloodHound.py 等工具;对于 EntraID 环境,可以使用 AzureHound。

[!CAUTION] 强烈推荐使用 BloodHound Automation,因为它会安装 Graph Data Science Neo4j 插件,该插件:

  • 显著提高计算时间和整体性能。
  • 启用 Smartest Path 替代内置的 Neo4j shortestPath()(即,更容易利用的路径,而非节点跳数最少的路径)。
  1. 要设置您的 BloodHound 环境(包括 GUI 和 Neo4j 数据库),强烈推荐使用 BloodHound Automation,因为它能与 Graph Data Science 插件无缝集成。当然,使用默认的 BloodHound CE 安装也是完全可以的,但请注意,您将错过 GDS 的优势(例如,更智能的寻路、更快的执行速度等)。

  2. 默认情况下,BloodHound 会创建一个可在 7687 端口访问的 neo4j 数据库。

安装与设置

最简单的方法是使用 pipx 执行以下命令:

pipx install 'git+https://github.com/AD-Security/AD_Miner.git'

ADMiner 也可在一些 Linux 发行版上获取:

打包状态

  • BlackArch: pacman -S ad-miner
  • NixOS: nix-env -iA nixos.ad-miner

可以使用 Docker 镜像进行构建。使用以下命令构建镜像:

docker build -t ad-miner .

要在 Windows 上使用 BloodHound Community Edition 数据运行,请使用以下命令:

docker run -v ${PWD}:/tmp ad-miner AD-miner -b bolt://host.docker.internal:7687 -u neo4j -p mypassword -cf YOUR_PREFIX

要在 Linux 上使用 BloodHound Community Edition 数据运行,请使用以下命令:

docker run -v ${PWD}:/tmp --network host ad-miner AD-miner -b bolt://localhost:7687 -u neo4j -p mypassword -cf YOUR_PREFIX

注意,使用 -v 挂载卷对于获取输出数据至关重要。这假设 BHCE 服务器在 Docker 主机上以默认设置运行。

使用

运行工具:

AD-miner [-h] [-b BOLT] [-u USERNAME] [-p PASSWORD] [-e EXTRACT_DATE] [-r RENEWAL_PASSWORD] [-a] [-c] [-l LEVEL] -cf CACHE_PREFIX [-ch NB_CHUNKS] [-co NB_CORES] [--rdp] [--evolution EVOLUTION] [--cluster CLUSTER]

示例:

AD-miner -cf My_Report -u neo4j -p mypassword

每次 Neo4j 请求完成后都会生成缓存文件。此功能允许您在过程中的任何时刻暂停或停止 AD Miner,而不会丢失之前计算的结果。要利用缓存,请使用 -c 参数。缓存文件存储在当前仓库的 cache_neo4j 文件夹中。要使用缓存,报告名称必须与缓存文件的前缀匹配:

AD-miner -c -cf My_Report -u neo4j -p mypassword

为了更好地处理大型数据集,可以启用多线程,也可以使用 neo4j 数据库集群,如以下示例所示(其中 server1 处理 32 个线程,server2 处理 16 个线程):

AD-miner -c -cf My_Report -b bolt://server1:7687 -u neo4j -p mypassword  --cluster server1:7687:32,server2:7687:16

如果已知密码续订策略,可以使用 -r 参数指定,以确保密码续订控制符合您的环境设置(默认为 90 天)。例如,如果密码策略设置为 180 天,可以使用以下命令:

AD-miner -c -cf My_Report -b bolt://server:7687 -u neo4j -p mypassword -r 180

[!TIP] Bloodhound CE neo4j 数据库的默认密码是 bloodhoundcommunityedition,如果您使用 BloodHound Automation,则为 neo5j。

选项:

  -h, --help            显示此帮助信息并退出
  -b BOLT, --bolt BOLT  Neo4j bolt 连接(默认:bolt://127.0.0.1:7687)
  -u USERNAME, --username USERNAME
                        Neo4j 用户名(默认:neo4j)
  -p PASSWORD, --password PASSWORD
                        Neo4j 密码(默认:bloodhoundcommunityedition)
  -e EXTRACT_DATE, --extract_date EXTRACT_DATE
                        提取日期(例如,20220131)。默认:最后登录日期
  -r RENEWAL_PASSWORD, --renewal_password RENEWAL_PASSWORD
                        密码续订策略(天数)。默认:90
  -c, --cache           对 neo4j 数据使用本地文件
  -l LEVEL, --level LEVEL
                        路径查询的递归级别
  -cf CACHE_PREFIX, --cache_prefix CACHE_PREFIX
                        要使用的缓存文件(用于多个公司的缓存文件)
  --gpo_low             对 GPO 执行更快但不完整的查询(比常规查询快)
  -ch NB_CHUNKS, --nb_chunks NB_CHUNKS
                        并行 neo4j 请求的块数。默认:20 * CPU 数量
  -co NB_CORES, --nb_cores NB_CORES
                        并行 neo4j 请求的 CPU 核心数。默认:CPU 数量
  --rdp                 在图中包含 CanRDP 边
  --evolution EVOLUTION
                        随时间演化:JSON 数据文件的位置。例如:'../../tests/'
  --cluster CLUSTER     集群节点,用于运行并行 neo4j 查询。例如:host1:port1:nCore1,host2:port2:nCore2,...

在图页面中,您可以右键单击图节点来对它们进行聚类或打开聚类。

演化

如果您有多个 AD-Miner 报告随着时间的推移生成,可以使用 --evolution 参数轻松跟踪演变:每个 AD-Miner 报告都会生成一个 JSON 数据文件,与 index.html 文件一起存放。您只需将这些不同的 JSON 文件收集到一个文件夹中,并在 --evolution 参数后指定该文件夹的路径。

AD-miner -c -cf My_Report -b bolt://server:7687 -u neo4j -p mypassword -r 180 --evolution evolution_folder/

主页上会出现一个“随时间演变”选项卡,为每个类别(权限、密码、Kerberos 和杂项)提供演变图表。

每个控制的详细演变也可用,可以通过每个类别的“显示演变”按钮查看。提供对数刻度以更好地突出时间上的微妙变化。

最聪明的路径

AD Miner 可以根据路径的实际可利用性来计算路径。事实上,有时最短路径很难利用(这里是因为 ExecuteDCOM 在 HasSession 之前)。

而存在一条更长但更简单的路径(这里使用 MemberOf 和 AdminTo 代替了 ExecuteDCOM)。

下载工具