使用 BloodHound 利用活动目录漏洞
概述
BloodHound 是基于图论的活动目录侦察工具,使用图论揭示 AD 环境中隐藏的和意外的关系。红队使用 BloodHound 识别从已控制账户到域管理员等高价值目标的攻击路径,发现几乎无法手动找到的权限提升链。SharpHound 是官方数据收集器,收集 AD 对象、关系、ACL、会话和组成员关系。
目标
- 使用 SharpHound 或 BloodHound.py 收集活动目录关系数据
- 可视化从已控制账户到域管理员的攻击路径
- 识别错误配置的 ACL、组成员关系和委派设置
- 发现到高价值目标的最短攻击路径
- 映射 Kerberos 委派配置以便滥用
- 记录所有已识别的权限提升链
MITRE ATT&CK 映射
- T1087.002 - 账户发现:域账户
- T1069.002 - 权限组发现:域组
- T1482 - 域信任发现
- T1615 - 组策略发现
- T1018 - 远程系统发现
- T1033 - 系统所有者/用户发现
- T1016 - 系统网络配置发现
实施步骤
阶段一:使用 SharpHound 收集数据
- 将 SharpHound 收集器传输到已控制的主机
- 使用适当的方法执行收集(All、DCOnly、Session、LoggedOn)
- 在多域环境中从所有可达域收集
- 将 ZIP 数据文件导出到分析工作站
- 将数据导入 BloodHound CE 或传统版
阶段二:攻击路径分析
- 标记已控制的主体(已控制账户)
- 查询到域管理员的最短路径
- 识别具有管理员权限的 Kerberoastable 账户
- 查找 AS-REP Roastable 账户
- 分析基于 ACL 的攻击路径(GenericAll、GenericWrite、WriteDACL、ForceChangePassword)
- 审查 GPO 滥用机会
阶段三:利用规划
- 按复杂性和隐蔽性对攻击路径进行优先级排序
- 识别攻击链中每个步骤所需的工具
- 为每种技术规划 OPSEC 注意事项
- 执行已识别的攻击链
- 在每个步骤记录证据
工具与资源
| 工具 | 用途 | 平台 |
|---|---|---|
| BloodHound CE | 图可视化和分析 | 基于 Web |
| SharpHound | AD 数据收集(.NET) | Windows |
| BloodHound.py | AD 数据收集(Python) | Linux/Windows |
| Cypher 查询 | 自定义图查询 | Neo4j/BloodHound |
| PlumHound | 自动化 BloodHound 报告 | Python |
| Max(BloodHound) | BloodHound 自动化 | Python |
关键 BloodHound 查询
| 查询 | 用途 |
|---|---|
| 到域管理员的最短路径 | 查找到 DA 的最快路线 |
| 查找具有到 DA 路径的 Kerberoastable 用户 | 通向 DA 的 SPN 账户 |
| 查找 AS-REP Roastable 用户 | 没有预认证的账户 |
| 从已控制主体的最短路径 | 从已控制账户的路径 |
| 查找具有不受支持操作系统的计算机 | 供利用的旧系统 |
| 查找具有 DCSync 权限的用户 | 可以复制 AD 的账户 |
| 查找修改本地组成员资格的 GPO | 基于 GPO 的权限提升 |
验证标准
- 已从所有域收集 SharpHound 数据
- 已识别从已控制账户到 DA 的攻击路径
- 已记录基于 ACL 的攻击路径
- 已识别 Kerberoastable 和 AS-REP Roastable 账户
- 已创建包含优先路径的利用计划
- 已捕获证据截图用于报告