BloodHound详细使用指南
字数 3304 2025-08-22 12:22:42
BloodHound 详细使用指南
1. BloodHound 介绍
BloodHound 是一款强大的 Active Directory 权限分析工具,它使用图论来揭示 AD 环境中隐藏的、意想不到的关系。攻击者可以使用 BloodHound 识别复杂攻击路径,防御者则可以用它来发现并消除这些路径。
官方文档:https://bloodhound.readthedocs.io/en/latest/index.html
安装要求
- 需要先安装 Neo4j 数据库(建议使用管理员权限启动)
- 配合 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. 使用技巧
路径分析
- 标记一个终点节点(如域管理员)
- 选择一个开始节点(如普通用户)
- 查询两个节点之间的路径
快捷键
- 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环境中的权限关系,发现潜在的攻击路径和安全风险。