BloodHound项目中的边(Edges)关系深度解析
BloodHound 项目地址: https://gitcode.com/gh_mirrors/blo/Bloodhound
什么是BloodHound中的边(Edges)
在BloodHound项目中,边(Edges)是图数据结构中的核心概念之一,它表示不同节点(Node)之间的连接关系。这些边代表了Active Directory环境中各种安全主体之间的权限关系和交互方式,是分析攻击路径的关键要素。
边的方向性含义
边的方向在BloodHound中具有特殊意义,它始终表示攻击方向或权限提升方向。例如,如果一个用户节点通过"MemberOf"边指向一个组节点,表示该用户是该组的成员,继承了该组的所有权限。
主要边类型及其安全影响
1. AdminTo边
安全含义:表示主体对目标计算机具有本地管理员权限。
攻击利用方式:
- 远程代码执行:可通过RDP、WMI、WinRM、服务控制管理器等多种方式
- 凭据窃取:使用mimikatz等工具提取其他登录用户的凭据
- 令牌模拟:注入其他用户进程或窃取进程令牌
- 安全控制绕过:可禁用主机安全防护措施
操作安全考虑:
- PsExec会产生4697事件日志
- EDR可能检测lsass注入行为
- 多种横向移动技术都会留下可检测痕迹
2. MemberOf边
安全含义:表示主体是目标安全组的成员。
攻击利用特点:
- 无需额外操作即可继承组权限
- 嵌套组成员资格会传递权限
- 是权限提升路径分析的基础
3. HasSession边
安全含义:表示用户在目标计算机上有活动会话。
攻击利用方式:
- 凭据转储:从内存中提取用户凭据
- 令牌操作:窃取或模拟用户令牌
- 键盘记录:捕获用户输入
- 剪贴板监控:获取复制的内容
注意事项:
- 会话状态是瞬时的
- 凭据可能已被保护
- 操作可能触发安全警报
4. HasSIDHistory边
安全含义:源主体的SID历史中包含目标主体的SID。
攻击利用特点:
- Kerberos票证会自动包含历史SID
- 跨域信任时需注意SID过滤
- 默认情况下多数域信任不启用SID过滤
5. ForceChangePassword边
安全含义:主体可以重置目标用户的密码而无需知道当前密码。
攻击利用方法:
- 使用net.exe命令重置密码
- 使用PowerView的Set-DomainUserPassword函数
- 创建PSCredential对象进行认证
操作安全考虑:
- 生成4724事件日志
- 可能影响服务账户运行
- 命令行执行可能被记录
6. AddMembers边
安全含义:主体可以向目标安全组添加任意成员。
攻击利用方法:
- 使用net.exe命令添加成员
- 使用PowerView的Add-DomainGroupMember函数
- 通过PSCredential对象进行认证
操作安全考虑:
- 组修改操作会产生日志
- PowerShell v5+有额外安全检测
- 高权限组变更更易被发现
防御建议
- 定期审计边关系,特别是高权限边
- 监控敏感操作日志(如4724、4697等)
- 实施最小权限原则,减少不必要的边
- 启用SID过滤防止跨域权限滥用
- 加强主机防护防止凭据窃取
通过深入理解BloodHound中的边关系,安全团队可以更有效地识别权限配置风险,预测潜在攻击路径,并采取针对性的防御措施。
BloodHound 项目地址: https://gitcode.com/gh_mirrors/blo/Bloodhound
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考