利用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:

  1. 下载地址:https://neo4j.com/download-center/#community
  2. 安装最新JDK(Neo4j依赖)
  3. 运行Neo4j:
    • Windows: neo4j.bat console
    • Linux: ./neo4j console

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安装

  1. 下载地址:https://github.com/BloodHoundAD/BloodHound/releases
  2. Kali Linux安装:
    apt-get update
    apt-get dist-upgrade
    apt-get install bloodhound
    
  3. 启动命令:./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提权

  1. 识别具有SID History属性的用户
  2. 检查SID History是否包含域管理员RID(500)
  3. 利用该用户获取域管理员权限

验证方法:

Get-ADUser <username> -Properties sidhistory

5.2 通过约束委派提权

  1. 识别具有约束委派权限的账户
  2. 检查目标主机上是否有高权限会话
  3. 通过约束委派获取主机权限
  4. 从内存中提取高权限凭证

5.3 通过GPO修改提权

  1. 识别对GPO有写权限的账户
  2. 修改Default Domain Policy等关键GPO
  3. 通过计划任务等方式在域控上执行代码

5.4 通过Kerberoasting攻击

  1. 识别注册了SPN的服务账户(Kerberoastable用户)
  2. 请求服务票据并离线破解
  3. 获取服务账户凭证后进一步利用

5.5 通过DCSync攻击

  1. 识别具有DCSync权限的主体
  2. 使用以下三条关键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)
  3. 使用PowerView添加DCSync权限:
    Add-DomainObjectAcl -TargetIdentity "DC=test,DC=local" -PrincipalIdentity username -Rights DCSync -Verbose
    
  4. 导出域内所有用户hash

6. 防御建议

  1. 定期审计域内权限分配
  2. 限制约束委派和无约束委派的使用
  3. 监控SID History属性的异常使用
  4. 严格控制DCSync权限分配
  5. 加强服务账户密码强度
  6. 实施最小权限原则

7. 总结

BloodHound是红蓝对抗中不可或缺的工具,能够:

  • 自动化发现复杂攻击路径
  • 可视化展示权限关系
  • 提高渗透测试效率
  • 辅助防御体系建设

在大型域环境中,BloodHound的分析能力尤为突出,但最终仍需安全人员结合专业知识进行判断和决策。

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 2.2 远程访问配置 修改 conf/neo4j.conf 配置文件: 2.3 BloodHound安装 下载地址:https://github.com/BloodHoundAD/BloodHound/releases Kali Linux安装: 启动命令: ./BloodHound --no-sandbox 3. 数据采集 使用SharpHound工具收集域内信息: 3.1 收集命令 支持收集的信息类型: 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) 利用该用户获取域管理员权限 验证方法: 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权限: 导出域内所有用户hash 6. 防御建议 定期审计域内权限分配 限制约束委派和无约束委派的使用 监控SID History属性的异常使用 严格控制DCSync权限分配 加强服务账户密码强度 实施最小权限原则 7. 总结 BloodHound是红蓝对抗中不可或缺的工具,能够: 自动化发现复杂攻击路径 可视化展示权限关系 提高渗透测试效率 辅助防御体系建设 在大型域环境中,BloodHound的分析能力尤为突出,但最终仍需安全人员结合专业知识进行判断和决策。