利用BloodHound分析域中的攻击路径
字数 2154 2025-08-25 22:58:34
BloodHound域攻击路径分析工具使用指南
1. BloodHound简介
BloodHound是一款基于JavaScript的单页Web应用程序,构建在Linkurious框架上,使用Electron编译,后端数据库采用Neo4j。它通过可视化图形展示Active Directory环境中隐藏的、通常是无意的权限关系。
主要功能:
- 红队:轻松识别高度复杂的攻击路径
- 蓝队:识别和防御潜在的攻击路径
- 可视化展示域内权限关系
2. 环境搭建
2.1 Neo4j安装
BloodHound依赖Neo4j数据库,需先安装Neo4j:
- 下载地址:https://neo4j.com/download-center/#community
- 安装最新JDK(Neo4j依赖)
- 运行Neo4j:
- Windows:
neo4j.bat console - Linux:
./neo4j console
- Windows:
2.2 远程访问配置
修改conf/neo4j.conf配置文件:
dbms.default_listen_address=0.0.0.0
dbms.default_advertised_address=0.0.0.0
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.http.listen_address=0.0.0.0:7474
2.3 BloodHound安装
- 下载地址:https://github.com/BloodHoundAD/BloodHound/releases
- Kali Linux安装:
apt-get update apt-get dist-upgrade apt-get install bloodhound - 启动命令:
./BloodHound --no-sandbox
3. 数据采集
使用SharpHound工具收集域内信息:
3.1 收集命令
SharpHound.exe -c all
支持收集的信息类型:
- Group
- LocalGroup
- GPOLocalGroup
- Session
- LoggedOn
- ObjectProps
- ACL
- ComputerOnly
- Trusts
- Default
- RDP
- DCOM
- DCOnly
3.2 数据上传
将SharpHound生成的JSON文件逐个上传至BloodHound界面。
4. 主要功能模块
4.1 数据库信息面板
显示域内基本信息:
- 用户数量
- 主机数量
- 组数量
- 会话数量
- ACL数量
- 关系数量
4.2 节点信息面板
点击节点可查看详细信息,如:
- 用户属性
- 组成员关系
- 权限分配
4.3 查询模块(Queries)
4.3.1 查找所有域管理员
列出域内所有具有管理员权限的账户
4.3.2 查找到域管理员的最短路径
分析从当前权限提升到域管理员的最短路径
4.3.3 查找具有DCSync权限的主体
识别能够执行DCSync操作的用户和计算机
4.3.4 具有外部域组成员身份的用户/组
发现跨域信任关系中的潜在风险
4.3.5 域信任地图
可视化展示域间信任关系
4.3.6 到达无约束委托系统的最短路径
分析利用无约束委派进行权限提升的路径
4.3.7 到达Kerberoastable用户的最短路径
识别可进行Kerberoasting攻击的目标
4.3.8 从Kerberoastable用户到域管理员的最短路径
分析从服务账户到域管理员的攻击链
4.3.9 到达自拥有主体的最短路径
查找可控制自身权限配置的账户
4.3.10 从拥有的主体到域管理员的最短路径
分析从可控账户到域管理员的攻击路径
4.3.11 到达高价值目标的最短路径
识别关键系统/账户的攻击路径
5. 典型攻击路径分析
5.1 通过SID History提权
- 识别具有SID History属性的用户
- 检查SID History是否包含域管理员RID(500)
- 利用该用户获取域管理员权限
验证方法:
Get-ADUser <username> -Properties sidhistory
5.2 通过约束委派提权
- 识别具有约束委派权限的账户
- 检查目标主机上是否有高权限会话
- 通过约束委派获取主机权限
- 从内存中提取高权限凭证
5.3 通过GPO修改提权
- 识别对GPO有写权限的账户
- 修改Default Domain Policy等关键GPO
- 通过计划任务等方式在域控上执行代码
5.4 通过Kerberoasting攻击
- 识别注册了SPN的服务账户(Kerberoastable用户)
- 请求服务票据并离线破解
- 获取服务账户凭证后进一步利用
5.5 通过DCSync攻击
- 识别具有DCSync权限的主体
- 使用以下三条关键ACE:
- DS-Replication-Get-Changes (1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)
- DS-Replication-Get-Changes-All (1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)
- DS-Replication-Get-Changes-In-Filtered-Set (89e95b76-444d-4c62-991a-0facbeda640c)
- 使用PowerView添加DCSync权限:
Add-DomainObjectAcl -TargetIdentity "DC=test,DC=local" -PrincipalIdentity username -Rights DCSync -Verbose - 导出域内所有用户hash
6. 防御建议
- 定期审计域内权限分配
- 限制约束委派和无约束委派的使用
- 监控SID History属性的异常使用
- 严格控制DCSync权限分配
- 加强服务账户密码强度
- 实施最小权限原则
7. 总结
BloodHound是红蓝对抗中不可或缺的工具,能够:
- 自动化发现复杂攻击路径
- 可视化展示权限关系
- 提高渗透测试效率
- 辅助防御体系建设
在大型域环境中,BloodHound的分析能力尤为突出,但最终仍需安全人员结合专业知识进行判断和决策。