BloodHound 不会用?一文看懂域攻击路径怎么看
免责声明本文仅用于授权渗透测试、红蓝对抗、安全审计学习只允许在获得书面授权的靶场环境操作。未经授权扫描、采集企业 Active Directory 数据属于违法行为请遵守网络安全相关法律法规。前言很多同学学域渗透安装好 BloodHound跑一遍 SharpHound 导入数据点一下 “查找到域管理员的最短路径”屏幕上密密麻麻一堆圆圈箭头看得一头雾水。看着漂亮的可视化图谱但是看不懂箭头含义分不清哪条路径真实可利用哪些路径是干扰项拿到图不知道下一步该执行什么攻击命令。网上大量教程只教你怎么安装工具、怎么跑采集器很少完整讲节点、箭头边到底代表什么权限一条攻击路径如何逐跳解析哪些路径高危可直接利用哪些路径只是理论存在实际无法利用从 BloodHound 图谱映射到实际攻击命令新手常见踩坑数据不全导致虚假攻击路径蓝队视角如何利用 BloodHound 做 AD 安全审计。BloodHound 本质不是漏洞扫描器它是AD 权限关系可视化图谱工具它不会发现 CVE 漏洞只会把域内权限、组成员、ACL、委派、会话关系全部抽象成图数据库把人为配置错误直观展示出来。核心误区BloodHound 显示存在路径 ≠ 100% 可以直接利用。采集数据缺失、会话过期、网络不通都会造成图谱与现实环境不一致。必须理解每一条边代表的权限而不是直接迷信图上结果。本文万字长文从基础安装采集、节点与边详解、真实攻击路径逐跳拆解、内置查询、Cypher 常用语句、实战踩坑、红队使用流程、蓝队审计加固完整讲透 BloodHound 攻击路径阅读方法。适合内网渗透学习者、红队、安全运维、等保测评工程师阅读。一、BloodHound 整体工作原理BloodHound 分为三大部分采集器SharpHound /bloodhound‑python在域环境内使用普通域账号权限通过 LDAP、SMB 协议读取 AD 对象信息导出一批 json 文件打包成 zip 压缩包。⚠️绝大多数数据采集普通域账号权限就足够不需要域管理员。图数据库 Neo4j存储所有用户、计算机、组、OU、GPO 对象以及对象之间关系。BloodHound CE 前端 GUI导入 zip 数据包图形化展示节点、边执行内置查询、自定义 Cypher 查询绘制攻击路径图。完整工作流域环境执行采集器 → 获取 zip 数据包 → BloodHound 导入 zip → 分析图谱寻找攻击路径 → 根据每一条 “边” 对应的权限选择对应攻击工具执行利用。重点采集质量决定分析结果好坏。如果 SMB 访问不通、防火墙拦截 445 端口计算机本地组、会话信息采集不全图谱就会出现大量虚假路径这是新手最容易踩坑的地方。1.1 数据采集两种方式Windows 采集 SharpHound.exe域内机器执行普通域用户即可。SharpHound.exe -c All --zipfilename domain_data.zip‑c All代表采集全部类型数据ACL、会话、本地组、域信任关系、GPO、容器信息。输出结果会保存到当前目录 zip 压缩包把 zip 拷贝出来导入 BloodHound不要导入零散 json 文件会造成数据错乱重复节点。注意‑c All在大型生产域会产生大量流量容易被 EDR 告警红蓝对抗中可以拆分采集模块。Linux 采集 bloodhound‑pythonkali不需要进入内网 Windows 主机只要拥有合法普通域账号密码网络可达域控即可远程采集。bloodhound‑python -u user01company.local -p Password123! -d company.local -dc 192.168.10.10 -c All --zip‑ns指定 DNS 服务器为域控 IP解决解析失败问题。1.2 导入数据基础操作启动 Neo4j 数据库打开 BloodHound‑CE 客户端登录数据库Upload Data选择采集出来的 zip 包上传导入等待解析完成开始分析。新手踩坑点多次导入同一个域数据包数据会叠加旧的过期会话不会自动清理需要清空数据库再重新导入。二、基础概念节点 (Node) 与边 (Edge)看懂图谱的核心BloodHound 图由两部分构成节点圆圈 边带方向箭头。箭头方向非常关键A →[边名称]→ B含义A 对 B 拥有某种权限A 可以操作 B。不要看反箭头方向90% 新手分析路径出错就是搞反箭头。2.1 常见节点类型节点图标节点类型含义人形User域用户账号员工账号、服务账号电脑Computer域内计算机对象工作站、服务器、域控 DC双人人形Group安全组Domain Admins 等高权限组文件夹OU组织单元域内 OU可设置 ACL、链接 GPO文档GPO组策略对象域名图标Domain域对象根域、子域节点属性小提示hasspn:true该账号存在 SPN可 Kerberoastdontreqpreauth:true账号不需要预认证可 AS‑REP Roastowned:true红队手动标记为已经被攻陷的节点用来计算从受控起点到 DA 的路径。2.2 高频核心边箭头关系详解【重中之重】每一条箭头对应一种 AD 权限关系读懂边你才知道这条路径到底能干什么对应什么攻击手法。1MemberOfUser →[MemberOf]→ Group含义用户 A 是这个组的成员继承该组全部权限。该关系是可传递。例user01 MemberOf IT_GroupIT_Group MemberOf Domain Admins。间接 user01 属于域管理员。2AdminToUser →[AdminTo]→ Computer含义该用户是这台机器的本地管理员。攻击含义如果拿到该用户凭证可以 SMB 登录这台机器dump lsass 内存抓取本机会话凭证。注意AdminTo 数据依赖 SharpHound 扫描目标机器 SAM 本地组目标 445 端口防火墙拦截就采集不到图谱会缺失这条边。3HasSessionComputer ←[HasSession]← User箭头方向User →HasSession→ Computer含义这个用户现在登录在这台计算机上机器内存 lsass 存在该用户凭证。红队价值如果我们拿下这台机器就可以 dump 内存拿到这个用户的 hash。坑HasSession 采集是快照采集完成之后用户注销会话实际已经消失但是图谱仍然保留这条边形成虚假攻击路径。4ACL 权限类边配置错误高频GenericAllA‑[GenericAll]‑BA 对 B 对象拥有完全控制权限。如果 B 是用户可以重置密码、添加 SPN触发 Kerberoast如果 B 是组可以随意往组里面添加成员如果 B 是计算机可以修改计算机对象全部属性配置 RBCD。GenericWriteA‑[GenericWrite]‑BA 可以改写 B 对象大部分非保护属性。最经典利用给目标用户写入 SPN触发 Kerberoast 攻击。WriteDaclA‑[WriteDacl]‑BA 可以修改 B 对象的 ACL 访问控制列表。高危场景普通用户对域根对象拥有 WriteDacl给自己账号添加 DCSync 复制权限直接导出全部域哈希。WriteOwnerA‑[WriteOwner]‑BA 可以夺取对象所有权拿到所有权之后就可以写入任意 ACE 权限。5委派相关边AllowedToDelegate非约束委派 Unconstrained DelegationComputer‑[AllowedToDelegate]‑User该计算机开启非约束委派。任何登录这台机器的用户TGT 票据会被保存在机器内存。拿下该机器就可以窃取登录用户 TGT 票据。AllowedToActOnBehalfOfOtherIdentityRBCD 基于资源的约束委派ComputerB‑[AllowedToActOnBehalfOfOtherIdentity]‑ComputerA含义目标机器 B 允许机器 A 代表其他用户向自己发起服务请求。攻击链路攻击者控制 ComputerA就可以 S4U2Self/S4U2Proxy 伪造任意用户访问 B。6ContainsOU‑[Contains]‑User/ComputerOU 下面包含用户或者计算机对象。配合 OU 对象的 GenericAll/GenericWriteOU 下所有对象继承风险。⚠️重点提醒BloodHound 图谱只会展示权限关系不会告诉你防火墙是否放通 445、3389网络是否互通。图谱有路现实网络不通攻击依然失败。三、内置查询功能快速寻找攻击路径打开 BloodHound 的 Analysis 分析面板里面大量预制查询是日常分析最常用功能。高频内置查询列表Find Shortest Paths to Domain Admins查找所有对象到域管理员组的最短路径红队最常用。输出图谱展示哪些普通用户可以经过几跳到达 Domain Admins 组。Shortest Paths from Owned Principals to Domain Admins从我们标记 owned已沦陷账号出发找通往域管理员路径。实战流程拿到普通域账号右键标记 Owned执行这条查询直接看当前立足点能怎么提权到 DA。Kerberoastable Users列出域内所有 hasspntrue 账号可做 Kerberoast 爆破。AS‑REP Roastable Users列出 dontreqpreauthtrueAS‑REP Roast 目标账号。Computers with Domain Admin Sessions找哪台机器上面现在存在域管理员登录会话。如果拿下这台机器dump 内存直接拿到域管凭证。Users with Local Admin Access to Computers哪些账号对大量机器拥有本地管理员 AdminTo 权限。Find Dangerous Delegations扫描所有危险委派非约束委派、RBCD 配置错误对象。All GPOs modify local groups查找可以修改计算机本地组的组策略对象。新手常见错误直接跑 Find Shortest Paths to Domain Admins出来几十条路径全部当成可利用不去区分每一条边代表的前提条件。四、实战逐跳拆解真实攻击路径案例下面拿企业环境真实常见的 4 条攻击链模拟 BloodHound 图谱逐跳解读每一步含义、攻击条件、对应工具命令真正做到看图就知道怎么打。案例路径 1普通用户 → GenericWrite → 高权限服务账号 → MemberOf → Domain Admins图谱箭头链路user01(普通域用户) ‑[GenericWrite]‑ svc_app01(服务账号) ‑[MemberOf]‑ Domain Admins逐跳解析第一跳user01‑GenericWrite‑svc_app01user01 拥有对 svc_app01 账号 GenericWrite 写属性权限利用给 svc_app01 新增自定义 SPN之后 Kerberoast 请求该账号 TGS 票据本地 hashcat 爆破密码。# Powerview设置SPN Set‑DomainObject -Identity svc_app01 -Set {serviceprincipalnamefake/test01}拿到 TGS hash 离线爆破拿到 svc_app01 明文或者 NTLM 哈希。第二跳svc_app01‑MemberOf‑Domain Admins该服务账号属于域管理员组。拿到 svc_app01 凭证就拥有域管理员权限完成提权。前提条件AD 采集完整ACL 数据采集成功不需要本机管理员权限普通域账号即可完成这套攻击。案例路径 2普通用户 → 创建计算机账号 → RBCD 权限 → 域控计算机对象链路user01 →(创建机器账号comp$)→ comp$ ‑[AllowedToActOnBehalfOfOtherIdentity]‑ DC01$逐跳解析AD 默认普通域用户可以创建最多 10 台计算机账号MachineAccountQuota10user01 对 DC01 计算机对象拥有 GenericWrite写入 RBCD 属性把 comp$ 设置为允许代表身份访问 DC01使用 Rubeus S4U 协议伪造 Administrator 域管理员票据访问域控DCSync 导出全部哈希。攻击命令示意#创建恶意机器账号 New‑MachineAccount.ps1 -MachineAccount evilpc$ -Password xxxx #设置RBCD属性给DC01 Set‑RBCD.ps1 -TargetComputer DC01$ -DelegateComputer evilpc$ #S4U伪造域管票据注入内存 Rubeus.exe s4u /user:evilpc$ /rc4:xxx /impersonateuser:Administrator /msdsspn:cifs/dc01.company.local /ptt前提条件MachineAccountQuota 不为 0用户对目标计算机对象拥有 GenericWrite网络连通域控 88、445 端口。案例路径 3HasSession 会话攻击链链路user01(我们控制)‑[AdminTo]‑PC‑Work02 ‑[HasSession]‑ Administrator(域管理员)解析user01 账号是 PC‑Work02 这台工作站本地管理员域管理员 Administrator 此时登录在 PC‑Work02 机器上攻击逻辑我们拿下 PC‑Work02dump lsass 内存直接抓取内存里面域管理员凭证。⚠️巨大坑点HasSession 是采集一瞬间快照。采集完之后管理员已经注销下线但 BloodHound 依旧保留这条路径。图谱有路现实已经失效属于虚假路径。所以看到 HasSession 路径一定要再次验证目标机器确认用户会话真实存在不要直接相信图谱。案例路径 4WriteDacl 高危 ACL 路径链路helpdesk_user ‑[WriteDacl]‑ COMPANY.LOCAL(Domain根对象)解析helpdesk_user 账号拥有域根对象 WriteDacl 权限。利用修改域根 ACL给自己账号增加 DS‑Replication‑Get‑Changes 权限直接执行 DCSync 导出域全部账号哈希。经典 Exchange 权限遗留漏洞就会产生该路径。五、Cypher 查询高阶筛选攻击路径BloodHound 内置查询不够用时可以写 Cypher 语句直接查询 Neo4j 图数据库精准筛选风险对象。注意Cypher 查询中 name 属性全部大写末尾带上 域名大小写敏感。常用 Cypher 示例查询所有可以 Kerberoast 的用户MATCH (u:User {hasspn:true}) RETURN u.name, u.serviceprincipalnames查询所有 AS‑REP Roast 账号MATCH (u:User {dontreqpreauth:true}) RETURN u.name查询普通启用用户3 跳以内到达 Domain Admins 的全部最短路径MATCH pshortestPath((u:User {enabled:true})‑[*1..3]‑(g:Group {name:DOMAIN ADMINSCOMPANY.LOCAL})) WHERE NOT u.name STARTS WITH DOMAIN ADMINS RETURN p查询对域对象拥有 WriteDacl 权限所有主体MATCH p(n)‑[:WriteDacl]‑(d:Domain) RETURN p查询存在 RBCD 配置的计算机对象MATCH p(c1:Computer)‑[:AllowedToActOnBehalfOfOtherIdentity]‑(c2:Computer) RETURN p标记节点为已沦陷 ownedMATCH (u:User {name:USER01COMPANY.LOCAL}) SET u.ownedtrue写 Cypher 小技巧‑[*1..3]‑代表路径跳数 1‑3 跳跳数不要写太大否则数据库查询压力巨大软件卡顿卡死。六、红队完整实战工作流程BloodHound 标准使用流程很多人拿到 zip 直接点最短路径缺少完整分析流程正确流程如下数据采集使用普通域账号执行 SharpHound /bloodhound‑python 获取 zip 数据包。大型域建议分多次采集避免流量过大告警。导入 BloodHound CE检查采集状态查看是否大量计算机对象 status 为 RPC 不可达代表 445 端口不通本地组、会话数据残缺。标记 Owned把已经获取控制权的账号右键标记 Owned。执行查询Shortest Paths from Owned Principals to Domain Admins查看从当前立足点出发所有可达攻击链路。逐条分析每一条攻击路径拆解每一跳边确认每一条边代表权限判断该攻击需要什么前置条件是否需要本机管理员网络是否需要 445是否依赖会话区分ACL 配置缺陷、委派缺陷、会话类路径优先选择高成功率链路优先级 1ACL GenericAll / GenericWrite / WriteDaclRBCD 委派不需要会话只要 AD 配置错误就存在优先级 2Kerberoast / AS‑REP Roast优先级 3HasSession 会话路径风险快照过期优先二次验证根据边类型选择对应工具执行利用拿到新的高权限账号再次标记 Owned重新查询路径迭代继续向内渗透。重要提醒图谱只能给线索每一条攻击路径都要人工验证不能直接拿来当成漏洞报告结论。七、新手高频踩坑虚假攻击路径来源很多初学者遇到BloodHound 画出一条看起来完美路径实际复现完全失败主要原因有下面几点。坑 1445/SMB 防火墙拦截采集数据残缺SharpHound 获取计算机本地管理员组 AdminTo、HasSession 会话依赖 SMB/RPC 访问目标机器。如果目标主机防火墙阻止 445 端口采集返回 RPC Server Unavailable。图谱里面不会生成 AdminTo、HasSession 边。现象明明某账号是机器本地管理员图谱没有 AdminTo 边后果真实存在的攻击路径看不到或者产生残缺误导图谱。坑 2HasSession 会话是采集瞬间快照会话已经过期采集那一刻管理员登录机器SharpHound 记录 HasSession过一段时间管理员注销下线。AD 对象权限不会变化但是登录会话已经消失图谱依旧保留旧边。解决方案遇到 HasSession 路径不能直接相信图谱需要手动验证目标机器当前登录用户。坑 3多次导入数据包旧过期数据叠加多次导入 zipNeo4j 数据库不会自动清理旧会话、旧权限。新旧数据混杂出现已经修复的漏洞还显示存在路径。处理每次重新采集环境清空整个 Neo4j 数据库再导入新 zip 包。坑 4只看路径跳数忽略网络连通性BloodHound 只分析 AD 权限关系完全不管防火墙、ACL 策略、网段隔离。图谱显示 A 可以访问 B但是两个机器分属不同 VLAN网络根本不通攻击无法执行。坑 5混淆箭头方向把 A‑B 理解成 B‑AX‑[GenericAll]‑YX 拥有 Y 全部控制权限。新手看反箭头以为 Y 控制 X整个攻击分析全部颠倒。坑 6把 BloodHound 当成漏洞扫描器BloodHound 不会扫描 CVE它只解析 AD 对象 ACL、组、委派关系。比如 MS14‑068、PrintNightmare 这类 CVE 漏洞BloodHound 完全检测不到。它只能发现配置错误不能发现代码漏洞。八、蓝队视角使用 BloodHound 做 AD 安全审计加固BloodHound 不仅仅是红队工具蓝队运维同样可以用来审计 AD 风险提前把攻击者可以利用攻击路径全部消除。蓝队审计检查清单检查高危 ACL查找普通域用户、普通组拥有对象 GenericAll / GenericWrite / WriteDacl重点检查域根、OU、高权限用户、域控计算机对象。审计 Kerberoast 账号 hasspntrue业务服务账号使用高强度复杂密码杜绝弱密码定期轮换。清理 AS‑REP Roast 账号关闭不必要 dontreqpreauth 标志位。审计委派扫描所有非约束委派、危险 RBCD 资源约束委派配置。修改域默认配置 MachineAccountQuota把默认值 10 改为 0禁止普通用户创建计算机账号阻断 RBCD 攻击前置条件。检查哪些普通账号拥有大量机器 AdminTo 本地管理员权限遵循最小权限原则。检查域管理员账号是否大量工作站上存在 HasSession 会话高权限账号禁止登录普通办公机器。审计思路找出所有通往 Tier‑0域控、域管理员组的攻击路径从源头破坏路径上的 “边”权限关系切断攻击者提权链路。九、学习误区总结误区 1BloodHound 画出来路径就一定能复现成功错误。HasSession 会话过期、网络隔离、防火墙拦截、采集不全都会导致图谱与现实不一致。图谱是线索必须人工验证。误区 2看不懂边只看圆圈连线不研究箭头含义很多同学只会点 “查找最短路径”不去搞懂 GenericAll、GenericWrite、RBCD 每条边代表什么权限不知道该用什么工具利用等于拿到图也不会实战。误区 3生产环境直接用 SharpHound‑c All 疯狂采集大型企业域全量采集产生大量 LDAP 查询会触发安全设备告警。红蓝对抗建议分模块采集规避 EDR 检测。误区 4只要没有到达 Domain Admins 路径环境就是安全错误。很多路径不到 DA但是可以到达业务服务器、关键应用账号同样造成严重业务危害。不要只盯着 Domain Admins。误区 5把 BloodHound 输出直接复制到漏洞报告BloodHound 输出只是图关系漏洞报告必须写清楚哪一个账号对哪个对象拥有哪项高危 ACL 权限复现步骤修复方案不能直接贴一张图谱完事。总结BloodHound 是域渗透的神器但是它只是权限关系可视化工具不是一键漏洞利用工具。看懂攻击路径的关键不是看懂花花绿绿的图形而是理解节点含义、箭头边代表的 AD 权限、箭头方向。完整分析流程采集数据→导入数据包→标记已沦陷节点→查询攻击路径→逐跳解析每一条边权限→判断攻击前置条件→验证路径真实性→选择对应攻击工具执行。同时要记住图谱存在虚假路径的多种场景SMB 采集失败、HasSession 快照过期、旧数据叠加、网络隔离。不能完全迷信图形输出。对于红队利用 BloodHound 快速定位 AD 配置错误把抽象的 AD 权限转化为清晰攻击链路对于蓝队定期用 BloodHound 做 AD 安全审计提前清理高危 ACL、危险委派切断通往域管理员的攻击路径做到纵深防御。掌握阅读 BloodHound 攻击路径是从 CTF 靶场走向真实企业域渗透最重要的能力之一。最后关于网络安全技术储备学好网络安全不论是就业还是做副业赚钱都不错但要学会网络安全还是要有一个学习规划。最后大家分享一份全套的网络安全学习资料给那些想学习网络安全的小伙伴们一点帮助对于0基础小白入门如果你是零基础小白想快速入门网络安全是可以考虑的。一方面是学习时间相对较短学习内容更全面更集中。二方面是可以找到适合自己的学习方案包括网安成长学习路线图、SRC黑客文档、护网行动、黑客必读书单、面试题、学习视频等教程。带你从零基础系统性的学好网络安全需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】1.成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。2.网安入门到进阶视频教程很多朋友都不喜欢晦涩的文字我也为大家准备了视频教程其中一共有21个章节每个章节都是当前板块的精华浓缩。全套教程文末领取哈3.SRC黑客文档大家最喜欢也是最关心的SRC技术文籍黑客技术也有收录SRC技术文籍黑客资料由于是敏感资源这里不能直接展示哦全套教程文末领取哈4.护网行动资料其中关于HW护网行动也准备了对应的资料这些内容可相当于比赛的金手指5.黑客必读书单随着互联网技术的飞速发展网络安全已经成为了当今科技领域的一大热点。这些SQL注入、CCNA、Web渗透、Linux服务器等以其强大的语言理解和防御能力正在守护着我们网络世界。 那以下这些PDF籍就是非常不错的学习资源。6.网络安全岗面试题合集当你自学到这里你就要开始思考找工作的事情了而工作绕不开的就是真题和面试题。这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】