ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

autobloody 支持哪些 BloodHound 边?14 种可利用攻击关系的详细清单

autobloody 支持哪些 BloodHound 边?14 种可利用攻击关系的详细清单 autobloody 支持哪些 BloodHound 边14 种可利用攻击关系的详细清单【免费下载链接】autobloodyTool to automatically exploit Active Directory privilege escalation paths shown by BloodHound项目地址: https://gitcode.com/gh_mirrors/au/autobloodyautobloody 是一款开源的Active Directory 提权自动化工具它能直接读取 BloodHound 数据库中已发现的攻击路径并自动执行每一步利用动作。很多安全初学者第一次接触它时都会问autobloody 到底支持哪些 BloodHound 边Edge本文为你整理当前版本支持的全部 14 种可利用攻击关系并用通俗易懂的方式解释每条边的作用、利用方式与风险等级帮你快速上手这个 AD 提权神器。一、先搞懂什么是 BloodHound 边️BloodHound 通过 SharpHound 等采集器收集 Active Directory 环境中的对象用户、组、计算机、域、OU、GPO 等及其相互关系这些关系在图形数据库中被称为边Edge例如A - MemberOf - B表示用户 A 是组 B 的成员A - GenericAll - B表示 A 对 B 拥有完全控制权autobloody 会调用 Neo4j 图数据库中的 Dijkstra 最短路径算法在你拥有的源对象Source和想要拿下的目标对象Target之间找出一条成本最低、最易利用的边链然后借助底层 bloodyAD 库自动执行攻击。相关逻辑可参考 database.py 中的路径查找实现。 简单理解BloodHound 负责画地图找路autobloody 负责沿着路自己走过去。二、14 种支持的 BloodHound 边完整清单 官方在 README.md 中明确列出了当前支持自动利用的全部边。为了便于记忆我把它们分成4 大类‍‍ 第一类组成员关系类3 种边名称目标对象攻击效果MemberOfGroup把目标加入高权限组AddSelfGroup把自身加入目标组AddMembersGroup向组中添加指定成员这类边是提权链中最常见的跳板攻击者通过把自己或受控账户加入 Domain Admins 等高权限组一步跨越权限边界。执行逻辑位于 automation.py 的_addMember方法利用完成后还会自动调用remove.groupMember进行清理还原降低被发现的概率。 第二类凭据获取类4 种边名称目标对象攻击效果ForceChangePasswordUser / Computer直接重置目标密码ReadGMSAPasswordGMSA 账户读取托管服务账户密码哈希DCSyncDomain模拟域控复制离线导出 NTDS.ditGetChanges / GetChangesAllDomain授予目录复制变更权限配合 DCSync 使用这类边的含金量最高ForceChangePassword会强制把目标密码改成默认值AutoBl00dy123!定义在PASSWORD_DEFAULT常量中随后用新密码接管目标身份ReadGMSAPassword会直接读取msDS-ManagedPassword属性拿到 GMSA 账户的 NT 哈希DCSync与GetChanges/GetChangesAll是域渗透的王牌组合拿到后 autobloody 会提示你用secretsdump.py离线 dump 整个域的密码哈希。️ 第三类ACL 权限控制类6 种边名称目标对象攻击效果GenericAll任意对象完全控制目标等价于所有权限GenericWrite任意对象可写目标任意属性WriteDacl任意对象可修改目标的 DACL 访问控制列表WriteOwner任意对象可夺取目标对象的所有权Owns任意对象你已经是目标的所有者AllExtendedRights任意对象拥有目标全部扩展权限ACL 类是攻击面最广的一类autobloody 会根据目标类型选择不同的后续动作目标是用户或计算机时优先尝试Shadow Credentials影子凭据攻击失败则回退到强制改密见_shadowCredentialsOrForceChange方法目标是组或域时先通过add.genericAll或set.owner改写 ACL再顺势执行加成员、加 DCSync 权限等后续操作目标是OU / GPO时通过_ownerContainer先夺所有权、再授予 GenericAll实现容器级控制。️ 第四类层级结构类1 种边名称目标对象攻击效果ContainsOU / 容器利用包含关系获得对子对象的控制Contains表示一个容器包含其子对象。当攻击者对一个 OU 或容器拥有写入权限时就可以通过它影响到 OU 内继承权限的所有子对象是横向扩展的重要路径。三、autobloody 如何挑选最优攻击路径光知道支持哪些边还不够理解选路逻辑才能用好它。在 database.py 的_setWeight方法中每种边都被赋予了一个bloodycost成本值规则如下成本越低 越优先尝试例如MemberOf成本为 0无需写 LDAP最安全域级DCSync/GenericAll成本为 1写操作越多成本越高如WriteOwner需要 3 次写入成本相应提高可能影响业务的操作成本更高如强制改密会干扰正常服务因此ForceChangePassword的成本被设为 110000没被赋权重的边默认成本为 9999999999等价于不可利用。autobloody 会在这张加权图上运行 Dijkstra 算法找到源到目标之间总成本最低的边链然后按顺序执行。整个执行与回滚cleanup机制都封装在 automation.py 中。⚠️ 注意如果路径中出现了未被支持的边例如 GPO 相关的 LinkGPO 等autobloody 会报错提示该路径无法由 autobloody 单独利用需要配合其他工具完成。四、快速上手一条命令跑通攻击链 安装后pip install autobloody配合已导入数据的 Neo4j 数据库一条命令即可完成从源账户到目标对象的自动提权autobloody -p Password123! --host 192.168.10.2 -dp neo4jPss -ds JOHN.DOEBLOODY.LOCAL -dt BLOODY.LOCAL-ds指定源对象你拥有的账户-dt指定目标对象你想拿下的对象默认会先进入模拟模式simulate展示即将执行的动作确认后输入y才会真正执行加上-y参数可直接执行命令行参数定义可参考 main.py。五、使用建议与注意事项 ⚠️仅限授权测试autobloody 是红队与安全评估工具请务必在获得授权的环境中使用切勿用于非法入侵部分操作不可还原README 明确指出除了ForceChangePassword和setOwner之外其他操作都会在利用后自动清理还原但改密与夺权操作会留下痕迹性能优化在 Neo4j 中安装 GDS 图数据科学插件可以大幅提升路径查找速度没有它 autobloody 会退回较慢的原生 CYPHER 查询掌握 14 种边 掌握 AD 提权地图把这张清单当作你的检查表结合 BloodHound 的图形界面分析你就能快速判断一条提权路径是否可以被 autobloody 全自动打通。希望这份BloodHound 边详细清单能帮你更高效地使用 autobloody。如果你在实战中遇到路径不可利用的提示不妨对照上面的分类检查一下——也许只是这条链上混入了一条暂时不支持的关系而已。【免费下载链接】autobloodyTool to automatically exploit Active Directory privilege escalation paths shown by BloodHound项目地址: https://gitcode.com/gh_mirrors/au/autobloody创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表