BloodHound:用图论挖出 Active Directory 里隐藏的攻击路径
文章目录
- BloodHound:用图论挖出 Active Directory 里隐藏的攻击路径
- 它到底能干什么
- 为什么安全团队需要这个
- 新版本的变化
- 实际使用感受
- 谁适合用
BloodHound:用图论挖出 Active Directory 里隐藏的攻击路径
做安全的人都知道,Active Directory(AD)环境一旦规模大了,权限关系就变得极其复杂。用户、组、计算机、GPO 之间存在大量隐式关系,靠人肉审计几乎不可能理清。BloodHound 就是为了解决这个问题而生的——它用图论的方法,把 AD 环境里的所有关系建模成一张图,然后自动计算出攻击路径。
这个项目在 GitHub 上有超过 1 万 Star,由安全研究员 _wald0、CptJesus 和 harmj0y 创建,后来由 SpecterOps 团队维护。说白了,这是一个从红队视角出发的安全工具,但蓝队用它来做防御审计同样有效。
它到底能干什么
BloodHound 的核心能力是回答一个问题:从 A 点到 B 点,攻击者怎么走?
比如你想知道,一个普通域用户有没有办法拿到域管理员权限。传统做法是手动检查组策略、ACL、信任关系,费时费力还容易遗漏。BloodHound 的做法是把整个 AD 环境的数据采集下来,导入图形数据库(Neo4j),然后跑最短路径算法,几秒钟就能告诉你答案。
它能发现的攻击路径包括但不限于:
- 用户到域管理员的最短提权路径
- 计算机之间的横向移动路径
- GPO 策略中的权限配置问题
- 信任关系带来的跨域攻击可能
采集数据的方式是通过 PowerShell 脚本或 SharpHound 客户端,拿到 AD 的 LDAP 数据和本地权限信息,然后导入数据库。
为什么安全团队需要这个
举个实际场景。某公司有 5000 个域用户,200 台服务器,组策略几十条。安全团队想知道:如果某个普通员工的账号被钓鱼了,攻击者能走多远?
用 BloodHound 跑一遍,可能发现这个账号属于某个看起来无害的组,但这个组有权限修改某个 GPO,而这个 GPO 又应用到了域控制器。三步之内就能拿到最高权限。
这种路径靠人工审计很难发现,因为每一步单独看都"合理",但组合起来就是一条完整的攻击链。BloodHound 的价值就在于把这些隐式关系显式化。
新版本的变化
这里要说一个重要的事情:BloodHound Legacy(也就是 v4 版本)已经停止维护了。最后一个更新是 2023 年,仓库很快会被归档。
SpecterOps 团队推出了全新的 BloodHound Community Edition,完全免费,功能上比 Legacy 版更强。如果你现在要开始用,直接上 Community Edition 就行,别再用老版本了。
新版本的改进主要在几个方面:采集效率更高,查询速度更快,界面也做了重新设计。对于安全团队来说,升级几乎没有学习成本,旧的数据也能迁移过去。
实际使用感受
作为一个安全工具,BloodHound 的定位很精准。它不做漏洞扫描,不做渗透测试,只做一件事:攻击路径分析。这种专注让它在细分领域几乎没有对手。
图形化的展示方式也比纯文本报告直观得多。给管理层汇报的时候,一张攻击路径图比十页 Word 文档有说服力。
当然也有局限。数据采集需要在域环境内执行,不能远程扫描。大规模环境的数据导入和查询也需要一定的硬件资源,Neo4j 吃内存不轻。但对于中大型企业来说,这些都不是问题。
谁适合用
两类人最需要这个:
一是红队成员。用 BloodHound 做前期侦察,快速摸清域环境的攻击面,比手动枚举高效太多。
二是蓝队和安全运维。定期跑一遍 BloodHound,看看自己的 AD 环境里有没有暴露的攻击路径,提前修补。很多企业做完这个检查之后才发现,原来自己离被攻破只差一步。
BloodHound 用的是 GPLv3 协议,代码完全开源。安全团队可以直接部署在内网环境,数据不出域,合规性有保障。
oodHound 用的是 GPLv3 协议,代码完全开源。安全团队可以直接部署在内网环境,数据不出域,合规性有保障。
