news 2026/8/16 18:10:25

autobloody 实战演练:从普通域用户到域管理员的自动化提权完整案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
autobloody 实战演练:从普通域用户到域管理员的自动化提权完整案例

autobloody 实战演练:从普通域用户到域管理员的自动化提权完整案例

【免费下载链接】autobloodyTool to automatically exploit Active Directory privilege escalation paths shown by BloodHound项目地址: https://gitcode.com/gh_mirrors/au/autobloody

autobloody 是一款专为 Active Directory 环境设计的自动化提权工具,它能够读取 BloodHound 数据库中的攻击路径数据,自动规划并执行从普通域用户到域管理员的完整提权链条。本教程将从零开始,带你完成 autobloody 环境搭建、安装配置,并通过一个真实的实战案例,演示如何用一条命令实现 AD 提权自动化,让复杂的域渗透路径利用变得简单、快速、可复现。

autobloody 是什么?为什么安全测试需要它?🛡️

在日常的 Active Directory 安全评估中,安全人员最头疼的事情之一,就是 BloodHound 明明已经画出了攻击路径,却需要手动逐条执行每一个提权步骤——改 ACL、加组成员、改密码……不仅耗时,还容易出错。

autobloody 正是为了解决这个痛点而生的。它的核心功能是:

  • 📊自动读取路径:从 Neo4j(BloodHound 的数据库)中查询提权路径
  • 🧠智能选路:使用 Dijkstra 最短路径算法,找到代价最低、最隐蔽的提权路线
  • 一键执行:自动连接域控并逐步执行所有提权操作,全程无需人工干预
  • 🧹自动清理:除改密码和设置属主外,其余可逆操作执行完成后自动还原现场

两大核心步骤

autobloody 的工作流程非常清晰,整个过程分为两步:

  1. 找路:通过 BloodHound 数据和 Neo4j 查询,找出最优提权路径
  2. 执行:借助 bloodyAD 组件,连接域控 LDAP 服务,自动执行路径上的每一个攻击动作

这也意味着,autobloody 的认证方式非常灵活,支持明文密码、Pass-the-Hash(哈希传递)、Pass-the-Ticket(票据传递)以及证书认证,覆盖了主流的域内认证场景。

实战前的环境准备清单 📋

在开始自动化提权之前,我们需要搭建一套完整的测试环境,建议在授权的靶场或实验域中进行:

组件作用说明
BloodHound攻击路径分析用于展示域内提权路径关系图
Neo4j图形数据库存储 BloodHound 收集的节点与边数据
SharpHound / bloodhound.py数据收集器将 AD 中的用户、组、ACL 等信息采集入库
一台域控 (DC)提权目标环境autobloody 通过 LDAP 连接它执行操作
Python 3运行环境autobloody 依赖 Python 3 运行

💡小提示:为了让路径计算更快,建议在 Neo4j 中安装 GDS(Graph Data Science)图算法插件。如果没有安装也不用担心,autobloody 会自动降级使用原生 CYPHER 查询,只是速度稍慢,功能完全不受影响。

另外,别忘了先把域内的数据导入 BloodHound,并确保 Neo4j 服务正在运行——这是整个自动化流程的数据基础。

一键安装步骤:3 分钟完成部署 🚀

autobloody 的安装非常简单,推荐直接使用 pip 安装:

pip install autobloody

当然,如果你希望体验最新代码,也可以克隆仓库后本地安装:

git clone --depth 1 https://gitcode.com/gh_mirrors/au/autobloody pip install .

安装完成后,在终端输入autobloody -h即可查看完整的帮助信息,所有参数一目了然,具体参数说明可以在 autobloody/main.py 源码中查看。

完整实战案例:普通域用户 → 域管理员 👑

下面我们进入最激动人心的环节——用一个真实的实战案例,演示 autobloody 如何帮助一名普通域用户完成到域管理员的自动化提权。

场景设定

  • 起点(源对象)JOHN.DOE@BLOODY.LOCAL——我们掌握的一个普通域用户
  • 终点(目标对象)BLOODY.LOCAL——整个域(即域管理员权限)
  • BloodHound 数据库中:已经存在从 JOHN.DOE 到域的提权路径(例如通过组成员关系、ACL 滥用等边连接)

第一步:查询提权路径

autobloody 会首先连接 Neo4j,利用 GDS 的 Dijkstra 算法在图中寻找源节点到目标节点的最短(代价最低)路径。这一步只需要指定 Neo4j 的连接信息和源、目标节点的名称:

autobloody --host 192.168.10.2 -dp 'neo4jP@ss' \ -ds 'JOHN.DOE@BLOODY.LOCAL' -dt 'BLOODY.LOCAL'

⚠️重点提醒-ds(源节点)和-dt(目标节点)的值是大小写敏感的,必须与 BloodHound 中的 name 属性完全一致,否则会提示找不到路径。

执行后,autobloody 会输出类似这样的信息:[+] Done, 3 edges have been found between JOHN.DOE@BLOODY.LOCAL and BLOODY.LOCAL,表示找到了 3 条边组成的提权链路。

第二步:模拟执行(安全预览)

autobloody 默认不会直接动手,而是先进入模拟模式,把将要执行的每一个操作清晰列出来,例如:

[+] [Membership] on group Domain Admins for JOHN.DOE [+] [Add DCSync right] to BLOODY.LOCAL

这个功能非常适合在正式执行前评估攻击影响,确认无误后输入y即可继续。这一逻辑可以在 autobloody/automation.py 中看到实现细节。

第三步:一键自动化提权

如果对预览结果满意,也可以加上-y参数跳过确认,直接全自动执行:

autobloody --host 192.168.10.2 -dp 'neo4jP@ss' \ -ds 'JOHN.DOE@BLOODY.LOCAL' -dt 'BLOODY.LOCAL' \ -d BLOODY.LOCAL -u john.doe -p 'Password123!' -y

执行过程中,autobloody 会自动完成添加组成员、修改 ACL、重置密码等一系列操作,并在必要时自动切换身份(例如通过 ForceChangePassword 拿到目标账号密码后,无缝切换为该账号继续后续步骤)。当路径走到 DCSync 环节时,工具会提示你可以使用 secretsdump.py 直接导出 NTDS 数据库,彻底掌控整个域。

最后输出[+] Done, attack path executed,宣告提权成功!🎉

第四步:自动清理现场

值得一提的是,autobloody 会在执行过程中记录所有"可逆"操作(如添加组成员、授予 GenericAll 权限等),并在攻击路径完成后自动回滚,最大限度减少对生产环境的干扰。这个"污点清理"机制同样实现在 autobloody/automation.py 中。

autobloody 的工作原理:最短路径算法解析 🧮

也许你会好奇,autobloody 是如何在复杂的域权限关系图中找到那条最"划算"的提权路径的?答案藏在 autobloody/database.py 中。

BloodHound 数据库中的每一条边(如 MemberOf、GenericAll、WriteOwner)本身没有权重,但它们的"攻击代价"是不同的。autobloody 会为不同类型的边和节点赋予不同的代价(bloodycost),例如:

  • MemberOf加入组:代价为 0(纯查询,无副作用)
  • DCSync / GenericAll直达域:代价为 1(收益最高、代价最低)
  • ReadGMSAPassword读取密码:代价为 10
  • ForceChangePassword改密码:代价较高(可能影响业务)

然后利用Dijkstra 算法在加权图上计算源节点到目标节点的最短路径,从而找到代价最小、最隐蔽的攻击链路。这正是"自动化提权"的精髓——不再靠人工肉眼在 BloodHound 图上找路,而是让算法帮我们选出最优解。

支持的提权边一览 🔍

目前 autobloody 已支持以下 BloodHound 边的自动利用:

类别支持的边
组成员类MemberOf、AddMembers、AddSelf
凭据获取类ForceChangePassword、ReadGMSAPassword、DCSync
ACL 滥用类GenericAll、GenericWrite、WriteDacl、WriteOwner、Owns、AllExtendedRights
其他GetChanges/GetChangesAll、Contains

如果你用 BloodHound 找到了路径,但 autobloody 提示"路径不可利用",通常是因为路径中包含了尚未支持的边类型,需要借助其他工具手动完成该环节。

常见问题与实战技巧 💡

1. 路径查询太慢怎么办?

给 Neo4j 安装 GDS 插件可以显著提速,autobloody 会自动检测插件是否存在并切换算法实现。

2. 通过 proxychains 使用时连不上 Neo4j?

autobloody 内置了代理绕过机制(见 autobloody/proxy_bypass.py),在 Linux/macOS 下会自动识别 proxychains 环境并绕过代理直连 Neo4j,避免不必要的网络干扰。

3. 连接超时如何调整?

默认连接超时为 60 秒,网络环境不佳时可以通过--timeout参数适当调大,例如--timeout 120

4. 想要更多日志输出?

使用-v输出 INFO 级别日志,使用-vv输出 DEBUG 级别日志,方便排查问题。更多用法细节可参考项目根目录的 README.md。

写在最后 ✍️

autobloody 将 Active Directory 提权从"手工活"变成了"一条命令",让安全测试人员可以把精力聚焦在路径分析与风险判断上,而不是机械地执行攻击步骤。当然,请务必牢记:本文所有内容仅限在授权的测试环境中使用,任何未经授权的利用行为都是违法的。

希望这篇 autobloody 实战演练能帮你快速上手这款优秀的自动化提权工具。如果觉得有用,欢迎收藏转发,也欢迎在实际项目中验证这套完整提权流程!🚀

【免费下载链接】autobloodyTool to automatically exploit Active Directory privilege escalation paths shown by BloodHound项目地址: https://gitcode.com/gh_mirrors/au/autobloody

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 17:57:10

微信聊天记录导出终极指南:把每一句舍不得删的对话永久保存

微信聊天记录导出终极指南:把每一句舍不得删的对话永久保存 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/…

作者头像 李华
网站建设 2026/8/16 17:57:01

ComfyUI WanVideo显存不足终极指南:6个实测有效的优化技巧

ComfyUI WanVideo显存不足终极指南:6个实测有效的优化技巧 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 用 ComfyUI 跑 WanVideo 视频生成模型,最崩溃的瞬间是什么&…

作者头像 李华