BloodHound 是一款强大的工具,用于分析和提升 Active Directory (AD) 环境中的权限关系。它通过图形化界面展示用户、组、权限等之间的关系,帮助渗透测试人员快速发现潜在的攻击路径。本指南详细介绍如何在 Kali Linux 中安装和使用 BloodHound Legacy 版本,并提供清晰的操作步骤和说明。选择 Legacy 版本的原因是它相比 Community Edition (CE) 更轻量,资源占用较低,适合渗透测试场景。
一、安装与配置
1. 安装 BloodHound 和 BloodHound-Python
1.1 安装 BloodHound Legacy
Kali Linux 的 apt 包管理器默认安装的是 BloodHound CE 版本,资源占用较高且功能复杂。因此,我们推荐手动安装 BloodHound Legacy v4.3.1。
步骤:
-
下载 BloodHound Legacy:
cd /opt wget https://github.com/SpecterOps/BloodHound-Legacy/releases/download/v4.3.1/BloodHound-linux-x64.zip -
解压文件:
unzip BloodHound*.zip -d /opt mv /opt/BloodHound-linux-x64 /opt/BloodHound -
创建启动脚本以便于运行:
echo -e '#!/bin/bash\nexec /opt/BloodHound/BloodHound --no-sandbox "$@" >/dev/null 2>&1'> /usr/local/bin/bloodhound chmod +x /usr/local/bin/bloodhound
1.2 安装 BloodHound-Python
BloodHound-Python 是用于远程收集 AD 信息的工具,与 Legacy 版本兼容。
安装命令:
sudo apt update
sudo apt install -y bloodhound-python
1.3 安装 Neo4j 数据库
BloodHound 需要 Neo4j 图形数据库来存储和分析数据。
安装命令:
sudo apt install -y neo4j
2. 配置 Neo4j
安装 Neo4j 后,需要进行基本配置以确保与 BloodHound 正常协作。
2.1 启动 Neo4j 服务
sudo systemctl enable neo4j
sudo systemctl start neo4j

2.2 设置 Neo4j 密码
Neo4j 默认使用用户名 neo4j 和密码 neo4j。首次登录需要更改密码。
-
打开浏览器,访问 Neo4j Web 控制台:
http://127.0.0.1:7474 -
使用默认凭据登录(用户名:
neo4j,密码:neo4j)。 -
根据提示设置新密码,并记录下来,供 BloodHound 使用。
二、使用 BloodHound 进行信息收集
在安装和配置完成后,接下来可以使用 bloodhound-python 来进行信息收集,并将数据导入 Neo4j 数据库。
1. 配置并运行 BloodHound-Python
使用 bloodhound-python 进行信息收集时,需要指定目标域、域控制器等信息。
例如,假设你的目标域名是 sfsaf.htb,域控制器是 dc01,并且你希望将数据导出为 zip 文件。你可以运行以下命令:
bloodhound-python -c All -u <用户名> -p '<密码>' -ns 127.0.0.1 -d sfsaf.htb -dc dc01 --zip
-c All:启用所有的信息收集模块。-u <用户名>:指定目标系统的用户名。-p <密码>:指定目标系统的密码。-ns 127.0.0.1:设置 DNS 服务器。-d sfsaf.htb:指定目标域名。-dc dc01:设置域控制器。--zip:将收集到的数据导出为 zip 文件,方便后续导入。
这一过程中可能需要搭建一个伪造的 DNS 服务器。可以使用 dnschef 来实现这一功能:
- 安装 dnschef
sudo apt-get install dnschef
- 配置 dnschef
dnschef --fakeip <Kali_IP> --domain sfsaf.htb
此时,所有对 sfsaf.htb 域的 DNS 请求都会被解析为 <Kali_IP>。
三、启动并使用 BloodHound
当你完成数据收集后,可以通过 BloodHound 的 Web 界面来查看和分析 Active Directory 环境中的权限关系。
1. 启动 BloodHound Web 界面
启动 BloodHound Web 界面非常简单。只需在终端输入以下命令:
bloodhound
成功启动后,访问 Web 界面,默认端口为 7687,地址如下:
http://127.0.0.1:7687
2. 登录 Web 界面
在 Web 界面中,使用你在 Neo4j 中设置的用户名和密码进行登录。
3. 导入数据
bloodhound-python 收集的数据可以直接导入到 Neo4j 数据库中。你可以将 bloodhound-python 生成的 zip 文件 上传并导入到 BloodHound 中进行后续分析。

导入后,Web 界面将会显示 “Database Info” 区域,提供有关数据库当前状态的基本信息,包括用户、计算机、组和关系(或边)的数量。
4. 分析图形数据
导入数据后,BloodHound 会通过图形化的方式呈现出 Active Directory 环境中的权限关系,帮助用户识别潜在的攻击路径和权限提升机会。你可以查看与每个节点(如用户、计算机、组等)相关联的权限和关系。
BloodHound 整体页面功能如下:

BloodHound 功能介绍
BloodHound 提供了丰富的功能来帮助渗透测试人员分析 AD 环境中的权限模型。以下是主要功能介绍:
-
菜单与搜索栏
BloodHound 的主界面包括一个菜单和搜索栏,用户可以通过搜索特定的节点或查询权限路径来进行分析。关键部分包括:- Database Info:显示当前数据库的信息,包括用户、计算机、组和关系的数量。
- Node Info:点击任何一个节点,查看该节点的详细信息,包括用户、计算机、组、权限等。
- Analysis:BloodHound 预置了多种分析查询功能,帮助用户快速识别权限提升路径或横向渗透通道。
-
节点和关系信息
BloodHound 使用图形化的方式展示节点之间的关系,帮助用户识别从普通用户到域管理员的攻击路径。
BloodHound 图标说明
在图形绘制区域中,BloodHound 使用不同的图标来表示不同的节点和状态,帮助用户快速理解环境中的权限关系。
-
节点类型:
- Users(用户):表示 Active Directory 中的用户账户。
- Groups(组):表示用户组,包含多个用户。
- Computers(计算机):表示域内的计算机。
- Domain(域):表示整个 Active Directory 域。
- GPOs(组策略对象):表示组策略对象。
- OUs(组织单位):表示组织单位。

-
图标标记:
每个节点还会有不同的图标标记,表示其特定的状态或权限:- 蓝色位置图标:表示开始节点,通常是权限提升的起始点。
- 白色骷髅头:表示已拥有节点,表明该节点已经被渗透。
- 红色靶子图标:表示目标节点,是攻击者的主要目标。
- 钻石图标:表示高价值目标,攻击者通常会优先获取这些节点。

BloodHound 关系说明
节点之间的关系(也称为 Edges)表示不同的权限或行动路径。BloodHound 使用多种关系类型来描述这些权限。以下是常见关系类型及其含义:
-
HasSession:表示用户与计算机建立会话,凭据保留在内存中,攻击者可以通过 LSASS 注入或凭据转储获取用户凭据。
-
MemberOf:表示用户是某个组的成员,这样的关系帮助攻击者识别哪些用户具有更高的权限。
-
AdminTo:表示本地管理员权限,攻击者可以通过这一关系获取对目标计算机的本地管理员权限。
-
ACL Edges:描述特殊权限,如:
- GenericAll:完全控制目标对象。
- ForceChangePassword:允许重置目标用户密码。
- WriteDacl:修改目标计算机的 DACL 权限。
-
特殊 Edges:
- CanRDP:表示用户具有通过远程桌面协议(RDP)连接目标计算机的权限。
- SQLAdmin:表示用户是目标计算机的 MSSQL 管理员。
- AllowedToAct:表示节点可以使用 S4U2self / S4U2proxy 进程将任何域用户模拟到目标计算机系统。
通过分析这些关系和权限路径,渗透测试人员能够发现潜在的权限提升路径,模拟攻击者的行为,寻找横向渗透和权限升级的机会。
四、参考资源
- BloodHound 官方文档:https://bloodhound.readthedocs.io/
- GitHub 仓库:https://github.com/SpecterOps/BloodHound-Legacy
- 参考文章:https://blog.csdn.net/qq_56426046/article/details/126854991
原文 https://blog.csdn.net/2301_79518550/article/details/145442316