BloodHound详细使用指南
字数 3304 2025-08-22 12:22:42

BloodHound 详细使用指南

1. BloodHound 介绍

BloodHound 是一款强大的 Active Directory 权限分析工具,它使用图论来揭示 AD 环境中隐藏的、意想不到的关系。攻击者可以使用 BloodHound 识别复杂攻击路径,防御者则可以用它来发现并消除这些路径。

官方文档:https://bloodhound.readthedocs.io/en/latest/index.html

安装要求

  1. 需要先安装 Neo4j 数据库(建议使用管理员权限启动)
  2. 配合 SharpHound 收集器使用

2. 数据收集

使用 SharpHound 收集数据

# 版本1.1.1命令
SharpHound -c all

# PowerShell版本命令
powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"

注意:2.0.1版本可能存在导入问题,建议使用1.1.1版本

3. 边缘信息(Edge Information)

边缘表示两个节点之间的关系:

边缘名称 说明
AdminTo 用户是目标计算机上的本地管理员
MemberOf 主体是某用户组的成员
HasSession 用户在某计算机上拥有会话(用户登录过该主机)
ForceChangePassword 可以在不知道当前密码的情况下重置目标用户密码
AddMembers 能够将任意主体添加到目标安全组
CanRDP 可以登录目标计算机的远程桌面
CanPSRemote 可以通过Enter-PSSession启动与目标计算机的交互式会话
ExecuteDCOM 可以通过在远程计算机上实例化COM对象执行代码
SQLAdmin 用户是目标计算机的SQL管理员
AllowToDelegate 主体目标计算机的服务具有委派权限
GetChanges/GetChangesAll 组合表示主体具有执行DCSync的权限
GenericAll 对某对象具有完全控制权限
WriteDacl 对某对象拥有写DACL的权限
Gplink 组策略链接到的范围
TrustedBy 用于跟踪域信任并映射到访问方向

4. 数据分析查询

域信息查询

  • Domain information: 域信息
  • Find all Domain Admins: 查询所有域管理员
  • Map Domain Trusts: 域信任地图

安全风险查询

  • Find Computers with Unsupported Operating Systems: 查找不支持操作系统的计算机
  • Dangerous Privileges: 危险特权
  • Find Principals with DCSync Rights: 查找拥有DCSync权限的主体
  • Users with Foreign Domain Group Membership: 具有外部域组成员资格的用户
  • Groups with Foreign Domain Group Membership: 具有外部域名组成员资格的组

权限查询

  • Find Computers where Domain Users are Local Admin: 查找域用户是本地管理员的所有计算机
  • Find Computers where Domain Users can read LAPS passwords: 查找域用户可以读取密码的所有计算机
  • Find All Paths from Domain Users to High Value Targets: 查找从域用户到高价值目标的所有路径
  • Find Workstations/Servers where Domain Users can RDP: 查找域用户可以RDP的工作站/服务器

Kerberos相关查询

  • Find Kerberosastable Members of High Value Groups: 查找高价值组中支持Kerberosastable的成员
  • List all Kerberosastable Accounts: 列出所有Kerberosastable用户
  • Find AS-REP Roastable Users(DontReqPreAuth): 查找AS-REP Roastable用户

最短路径查询

  • Shortest Paths to Unconstrained Delegation Systems: 到无约束委派系统的最短路径
  • Shortest Paths from Kerberosastable Users: 从Kerberosastable用户的最短路径
  • Shortest Paths to Domain Admins: 到域管理员的最短路径
  • Shortest Paths to High Value Targets: 到高价值目标的最短路径

5. 节点信息

用户(User)节点信息

  • Sessions: 用户登录的计算机数量
  • Sibling Objects in the Same OU: 同一OU中的同级对象数量
  • Reachable High Value Targets: 可到达的高价值目标数量
  • Effective Inbound GPOs: 适用的GPO数量
  • DisplayName: Active Directory显示名称
  • ObjectID: 用户的SID
  • Password Last Changed: 上次更改密码时间
  • Last Logon: 上次登录时间
  • Enabled: 用户是否启用
  • AdminCount: 是否属于高特权组
  • Cannot Be Delegated: 是否禁止Kerberos委派
  • ASREP Roastable: 是否可被ASREP攻击
  • unconstraineddelegation: 是否允许无约束Kerberos委派

组(Group)信息

  • First Degree Group Memberships: 用户直接所属的组
  • Unrolled Group Membership: 用户实际所属的所有组(包括嵌套组)
  • Foreign Group Membership: 其他域中的组成员资格

计算机(Computer)节点信息

  • COMPUTERNAME.DOMAIN.COM: 完全限定名称
  • Sessions: 登录到此计算机的用户总数
  • OS: 操作系统信息
  • Enabled: 计算机对象是否启用
  • Allows Unconstrained Delegation: 是否信任计算机执行无约束委派
  • serviceprincipalnames: 计算机上的SPN列表

6. 使用技巧

路径分析

  1. 标记一个终点节点(如域管理员)
  2. 选择一个开始节点(如普通用户)
  3. 查询两个节点之间的路径

快捷键

  • CTRL: 按三下循环切换边缘显示模式(默认/始终显示/始终隐藏)
  • 空格: 快速弹出当前绘图内的节点信息
  • 删除键: 回退操作
  • S键: 展开或收起搜索框

搜索语法

搜索时可携带类型前缀:

  • Group: 组
  • Domain: 域名
  • Computer: 电脑
  • User: 用户
  • Container: 容器

路径查询

  • 可以搜索两个节点之间的路径信息
  • 如果路径不通则没有结果
  • 开启设置可查看查询语法

7. 最佳实践

  1. 先使用SharpHound -c all收集完整数据
  2. 从"Find all Domain Admins"开始分析
  3. 使用"Shortest Paths"功能查找关键攻击路径
  4. 重点关注"AdminTo"、"DCSync Rights"等高危权限
  5. 检查"Kerberosastable"和"ASREP Roastable"用户
  6. 分析"Unconstrained Delegation"系统

通过以上方法,可以全面了解AD环境中的权限关系,发现潜在的攻击路径和安全风险。

BloodHound 详细使用指南 1. BloodHound 介绍 BloodHound 是一款强大的 Active Directory 权限分析工具,它使用图论来揭示 AD 环境中隐藏的、意想不到的关系。攻击者可以使用 BloodHound 识别复杂攻击路径,防御者则可以用它来发现并消除这些路径。 官方文档:https://bloodhound.readthedocs.io/en/latest/index.html 安装要求 需要先安装 Neo4j 数据库(建议使用管理员权限启动) 配合 SharpHound 收集器使用 2. 数据收集 使用 SharpHound 收集数据 注意:2.0.1版本可能存在导入问题,建议使用1.1.1版本 3. 边缘信息(Edge Information) 边缘表示两个节点之间的关系: | 边缘名称 | 说明 | |---------|------| | AdminTo | 用户是目标计算机上的本地管理员 | | MemberOf | 主体是某用户组的成员 | | HasSession | 用户在某计算机上拥有会话(用户登录过该主机) | | ForceChangePassword | 可以在不知道当前密码的情况下重置目标用户密码 | | AddMembers | 能够将任意主体添加到目标安全组 | | CanRDP | 可以登录目标计算机的远程桌面 | | CanPSRemote | 可以通过Enter-PSSession启动与目标计算机的交互式会话 | | ExecuteDCOM | 可以通过在远程计算机上实例化COM对象执行代码 | | SQLAdmin | 用户是目标计算机的SQL管理员 | | AllowToDelegate | 主体目标计算机的服务具有委派权限 | | GetChanges/GetChangesAll | 组合表示主体具有执行DCSync的权限 | | GenericAll | 对某对象具有完全控制权限 | | WriteDacl | 对某对象拥有写DACL的权限 | | Gplink | 组策略链接到的范围 | | TrustedBy | 用于跟踪域信任并映射到访问方向 | 4. 数据分析查询 域信息查询 Domain information: 域信息 Find all Domain Admins: 查询所有域管理员 Map Domain Trusts: 域信任地图 安全风险查询 Find Computers with Unsupported Operating Systems: 查找不支持操作系统的计算机 Dangerous Privileges: 危险特权 Find Principals with DCSync Rights: 查找拥有DCSync权限的主体 Users with Foreign Domain Group Membership: 具有外部域组成员资格的用户 Groups with Foreign Domain Group Membership: 具有外部域名组成员资格的组 权限查询 Find Computers where Domain Users are Local Admin: 查找域用户是本地管理员的所有计算机 Find Computers where Domain Users can read LAPS passwords: 查找域用户可以读取密码的所有计算机 Find All Paths from Domain Users to High Value Targets: 查找从域用户到高价值目标的所有路径 Find Workstations/Servers where Domain Users can RDP: 查找域用户可以RDP的工作站/服务器 Kerberos相关查询 Find Kerberosastable Members of High Value Groups: 查找高价值组中支持Kerberosastable的成员 List all Kerberosastable Accounts: 列出所有Kerberosastable用户 Find AS-REP Roastable Users(DontReqPreAuth): 查找AS-REP Roastable用户 最短路径查询 Shortest Paths to Unconstrained Delegation Systems: 到无约束委派系统的最短路径 Shortest Paths from Kerberosastable Users: 从Kerberosastable用户的最短路径 Shortest Paths to Domain Admins: 到域管理员的最短路径 Shortest Paths to High Value Targets: 到高价值目标的最短路径 5. 节点信息 用户(User)节点信息 Sessions : 用户登录的计算机数量 Sibling Objects in the Same OU : 同一OU中的同级对象数量 Reachable High Value Targets : 可到达的高价值目标数量 Effective Inbound GPOs : 适用的GPO数量 DisplayName : Active Directory显示名称 ObjectID : 用户的SID Password Last Changed : 上次更改密码时间 Last Logon : 上次登录时间 Enabled : 用户是否启用 AdminCount : 是否属于高特权组 Cannot Be Delegated : 是否禁止Kerberos委派 ASREP Roastable : 是否可被ASREP攻击 unconstraineddelegation : 是否允许无约束Kerberos委派 组(Group)信息 First Degree Group Memberships : 用户直接所属的组 Unrolled Group Membership : 用户实际所属的所有组(包括嵌套组) Foreign Group Membership : 其他域中的组成员资格 计算机(Computer)节点信息 COMPUTERNAME.DOMAIN.COM : 完全限定名称 Sessions : 登录到此计算机的用户总数 OS : 操作系统信息 Enabled : 计算机对象是否启用 Allows Unconstrained Delegation : 是否信任计算机执行无约束委派 serviceprincipalnames : 计算机上的SPN列表 6. 使用技巧 路径分析 标记一个终点节点(如域管理员) 选择一个开始节点(如普通用户) 查询两个节点之间的路径 快捷键 CTRL : 按三下循环切换边缘显示模式(默认/始终显示/始终隐藏) 空格 : 快速弹出当前绘图内的节点信息 删除键 : 回退操作 S键 : 展开或收起搜索框 搜索语法 搜索时可携带类型前缀: Group : 组 Domain : 域名 Computer : 电脑 User : 用户 Container : 容器 路径查询 可以搜索两个节点之间的路径信息 如果路径不通则没有结果 开启设置可查看查询语法 7. 最佳实践 先使用 SharpHound -c all 收集完整数据 从"Find all Domain Admins"开始分析 使用"Shortest Paths"功能查找关键攻击路径 重点关注"AdminTo"、"DCSync Rights"等高危权限 检查"Kerberosastable"和"ASREP Roastable"用户 分析"Unconstrained Delegation"系统 通过以上方法,可以全面了解AD环境中的权限关系,发现潜在的攻击路径和安全风险。