导读:本期聚焦于老毕创作的《BloodHound权限路径分析怎么用?Active Directory域内权限可视化实战详解》,敬请观看详情。域内横向移动时最头疼的问题就是不知道当前账号能通过哪些路径拿到域管理员权限,BloodHound正是解决这个痛点的利器。它利用图数据库把Active Directory中的用户、组、计算机、会话等信息构建成关系图谱,自动计算出从普通用户到Domain Admins的最短攻击路径。本文从原理讲起,介绍SharpHound数据采集的常用参数,详解节点信息、边缘类型、路径分析等核心功能的用法,并结合实际案例说明如何利用ACL滥用、Kerberoasting等已知攻击手法配合BloodHound快速定位攻击链,帮助渗透测试人员和蓝队人员理解域内权限关系并做好相应的防护与检测。

BloodHound是什么,为什么它能解决权限路径分析难题

在大型Active Directory环境中,域内对象之间的关系极其复杂,用户属于哪些组、某台计算机上有哪些会话、某个OU上委派了什么控制权限,这些信息分散在不同的协议和接口里。传统的渗透测试人员往往只能靠手工枚举,用PowerView一条条查询组成员关系,再凭经验在大脑里拼凑攻击路径。这种方式效率极低,而且一旦域内对象数量达到几千上万个,人工分析几乎不可能穷尽所有可能性。

BloodHound的核心思路是把整个域抽象成一张图。它通过LDAP查询、Session枚举、LocalAdmin枚举等方式采集数据,把用户、组、计算机、域、GPO、容器等作为节点,把MemberOf、AdminTo、HasSession、AllExtendedRights等关系作为边,导入Neo4j图数据库后,就可以用图遍历算法自动计算任意两个节点之间的最短路径。换句话说,它把原本需要渗透测试者脑补的攻击链,变成了一条条清晰可见的可视化路径。

举个例子,当一个普通域用户想要获取Domain Admins权限时,BloodHound可能给出这样一条路径:该用户对某个组拥有GenericAll权限,而该组的成员对某台服务器有本地管理员权限,这台服务器上当前登录着一名域管理员。这种跨多层的间接关系,手工分析很难发现,但对BloodHound来说只是一次图查询而已。

需要强调的是,BloodHound本身是一款防御与攻击双用途的工具。红队用它快速定位攻击路径,蓝队同样可以用它审计域内权限配置,找出不该存在的过度授权。理解它的原理和用法,对攻防双方都有价值。

BloodHound权限路径分析怎么用?Active Directory域内权限可视化实战详解

数据采集:SharpHound的部署与常用参数详解

BloodHound的数据采集依赖SharpHound,它是用C#编写的采集器,编译后是一个独立的exe文件,也可以通过PowerShell脚本方式加载。采集器不需要安装任何额外依赖,直接在域内任意一台机器上以域用户身份运行即可,它会自动探测当前域并开始收集数据。

最基本的采集方式是执行默认的全量收集,命令非常简单:

# 使用exe方式执行全量采集
SharpHound.exe -c All

# 使用PowerShell方式
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All

其中CollectionMethod参数决定了采集的范围,常用的值包括:Default只采集基础的组和信任关系;Session枚举当前各主机上的登录会话;LocalAdmin枚举各主机的本地管理员组成员;ACL采集所有对象的访问控制列表;GPOLocalGroup通过GPO采集本地组配置;ObjectProps采集对象属性;All则包含以上全部。实战中一般建议直接用All,因为会话和本地管理员信息对路径计算非常关键,但这两类数据需要向域内所有主机发起查询,动静相对较大,隐蔽需求高的场景可以分批采集。

采集完成后会在当前目录生成一个压缩的JSON文件包,例如时间戳命名的zip文件,里面包含computers.json、users.json、groups.json等多个数据文件。把这个文件直接拖进BloodHound界面右侧的Upload Data按钮即可导入。增量采集时,也可以使用Loop参数配合采集间隔做周期性收集,方便长期监控域内权限变化。

蓝队视角下,SharpHound的采集行为本身就有一定的检测特征:它会大量调用LDAP查询和SAMR接口枚举会话,域控上会出现明显的查询流量。因此从防御角度,可以关注短时间内对LDAP的大规模分页查询行为,以及对大量主机发起的Session枚举请求,这些往往就是采集器在工作。

核心界面功能:路径查询、节点信息与边缘类型

导入数据后,BloodHound左侧的分析面板提供了一系列预置查询,包括“Map Domain Shortest Paths to Domain Admins”“Find All Paths to Domain Admins”“Shortest Path to High Value Targets”“Find Workstations where Domain Users can RDP”等。其中最常用的就是到Domain Admins的最短路径查询,点击后BloodHound会自动在图上高亮出所有可行的攻击链。

选中任意节点后,右侧会展示该对象的详细属性,比如用户的SID、SPN、是否启用了预认证、所属组等。节点下方的Outbound Control Rights和Inbound Control Rights非常有用,前者列出该用户能控制哪些对象,后者列出谁能控制该用户。例如发现某个普通账号的Inbound列表里出现了IT部门的一个二级管理员组,就意味着拿下了那个组的任何成员就等于拿下了这个账号。

节点之间的关系用不同的边表示,理解这些边的含义是正确利用BloodHound的前提。常见的边类型及其利用方式如下:

边类型含义利用方式
MemberOf用户或组属于某个组间接继承目标组的所有权限
AdminTo对目标主机有本地管理员权限可远程执行命令、提取凭据
HasSession目标用户在主机上有登录会话抓取内存凭据获取该用户身份
AllExtendedRights对对象拥有扩展控制权可重置密码、修改DCSync相关属性
GenericAll对对象的完全控制权可重置密码、添加组成员
WriteDacl可修改对象DACL给自己授予任意权限
ForceChangePassword可强制重置目标密码直接改密码接管账号
GetChangesAll具备目录复制权限执行DCSync导出全部哈希
AllowedToDelegate可约束委派到目标服务利用委派伪造身份访问服务

查询路径时还有一个实用技巧:在图上任意节点右键选择Set as Start,再选另一个节点Set as End,然后执行Find Shortest Path,即可查询任意两点间的路径。这在验证某个具体账号能否打到特定高价值目标时非常方便。此外,右键节点还可以执行Mark as High Value或Mark as Owned操作,把已拿下和需要重点保护的资产标记出来,路径查询会自动围绕这些标记展开。

实战案例:从普通域用户到Domain Admin的完整路径

假设在一次授权渗透测试中,我们通过钓鱼拿到一个普通域账号dev_ops的凭据。先在受控机器上运行SharpHound全量采集,导入BloodHound后执行到Domain Admins的最短路径查询,很快发现了一条三级跳的路径。

具体来说,dev_ops属于DevOps组,而这个组的成员对一台名为WEB-PROD-01的服务器拥有GenericAll权限,意味着可以完全接管这台机器;同时HasSession的边显示域管理员账号adm_jerry当前正登录在WEB-PROD-01上。于是攻击链就非常清晰了:先用GenericAll对机器对象执行基于资源的约束委派攻击拿到SYSTEM权限,再用mimikatz从内存中抓取adm_jerry的凭据,最后验证该凭据对域控有效,整个域就到手了。

# 利用GenericAll对机器对象执行基于资源的约束委派(RBCD)
# 1. 设置 dev_ops 对 WEB-PROD-01 机器账户的 msDS-AllowedToActOnBehalfOfOtherIdentity
rbcd.py -delegate-to 'WEB-PROD-01$' -delegate-from 'evil_svc' -action write \
    'domain.local/dev_ops:Password123'

# 2. 为 evil_svc 账户配置SPN后请求服务票据并模拟管理员访问
getST.py -spn cifs/WEB-PROD-01.domain.local -impersonate administrator \
    'domain.local/evil_svc:Password123'

这个案例说明了BloodHound的价值:dev_ops到Domain Admin之间的三层关系分散在组策略、机器ACL和会话信息三个完全不同的数据源里,任何单独一项看起来都不起眼,但组合起来就是一条完整的提权链。没有图数据库的辅助,靠人工翻查几乎不可能发现这种跨对象的间接路径。

蓝队视角:如何利用BloodHound加固域内权限配置

BloodHound绝不仅仅是攻击工具,防御人员完全可以用同样的数据分析自己域内的权限暴露面。建议定期采集数据并重点关注几类高风险查询结果:非管理员用户能RDP到工作站的列表、能执行DCSync的账号数量、拥有本地管理员权限的组员规模、以及到高价值目标的路径数量。

常见的加固动作包括:清理历史遗留的过度授权,很多环境中二级管理员组长期没人维护,导致权限层层扩散;限制Domain Admin仅登录域控,避免会话出现在业务服务器上被抓取凭据;对包含敏感权限的组启用受保护用户策略;利用层级标记把核心资产标记为High Value,持续监控指向这些节点的路径变化。

检测层面,可以部署定期的SharpHound采集任务作为基线对比工具,每次采集后对比路径数量的增减。如果某次变更后指向Domain Admins的路径突然增多,就能第一时间发现配置错误。同时也要监控攻击者可能的采集行为,例如LDAP查询频率异常、SAMR枚举海量主机等流量特征,在侦察阶段就发现异常。

总的来说,BloodHound把复杂的域权限关系变成了直观可分析的图结构,攻方用它找路,守方用它堵路。掌握它的采集、查询和分析方法,再结合对各类边缘类型背后攻击手法的理解,无论是红队评估还是域安全加固,都能做到心中有图、有的放矢。

BloodHound权限路径分析域渗透修改时间:2026-09-07 23:33:41

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260907/52494.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。