news 2026/9/9 19:53:34

autobloody 4 种认证方式快速上手指南:1 条命令连上域控,自动执行 BloodHound 提权路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
autobloody 4 种认证方式快速上手指南:1 条命令连上域控,自动执行 BloodHound 提权路径

autobloody 4 种认证方式快速上手指南:1 条命令连上域控,自动执行 BloodHound 提权路径

【免费下载链接】claude-quickstartsA collection of projects designed to help developers quickly get started with building deployable applications using the Claude API项目地址: https://gitcode.com/GitHub_Trending/an/claude-quickstarts

autobloody 是一款自动执行 BloodHound 提权路径的 AD 域安全测试工具,上手的第一个门槛就是选对认证方式——一共 4 种:明文密码、Pass-the-Hash、Pass-the-Ticket、证书。

连上域控 LDAP 服务之前,它会先从 Neo4j 读取 BloodHound 关系数据,用 Dijkstra 最短路算法找出从你控制的账号到目标的最优提权路径,再交给 bloodyAD 在真实域控上逐步执行——加组成员、改密码、DCSync、Shadow Credentials,完成后自动清理可逆痕迹。整个流程只有"找路径"和"打路径"两步,而认证方式选哪种,完全取决于你手上握有什么凭据。

🔑 手上有哪种凭据:一张决策表选认证方式

先看拿到了什么,再决定参数,这是最快的路径:

你手上的凭据参数格式适用场景
账号明文密码-p明文字符串最常规的入门场景
只有 NTLM Hash-pLMHASH:NTHASHPass-the-Hash,免破解
Kerberos 票据 ccache-kKRB5CCNAME环境变量指向文件纯 Kerberos 环境、绕开 NTLM 限制
PKI 私钥 + 证书-ckey路径:cert路径证书伪造、AD CS 滥用链路

⚠️--host(域控地址)在所有方式下都是必填;域名-d和用户名-u不填时,会自动从-ds源节点推导。

代码层面:路径查询在 database.py(Neo4j 查询),攻击执行与自动回滚在 automation.py,参数定义全部集中在 main.py 的 argparse 配置(约 54~129 行)。

-p 双用法:明文密码与 Pass-the-Hash

有密码就直接填;只有 NTLM Hash 时不必破解,同样用-p,格式改成:NTHASH

autobloody -p 'Password123!' --host 192.168.10.2 -dp 'neo4jP@ss' -ds 'JOHN.DOE@BLOODY.LOCAL' -dt 'BLOODY.LOCAL'
  • -p:明文或LMHASH:NTHASH,走 NTLM 认证(main.py 帮助文本原话:"Cleartext password or LMHASH:NTHASH for NTLM authentication")
  • --host:域控主机名或 IP
  • -dp:Neo4j 数据库密码
  • -ds/-dt:BloodHound 中的源、目标节点标签,⚠️ 大小写敏感

只有 NT Hash 时 LM 段留空、前面加冒号,仍走 NTLM 通道,由 bloodyAD 统一处理:

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

更巧妙的是执行途中它还能自动换身份:通过 ReadGMSAPassword 读到 GMSA 账号的 NT Hash 后,按:hash格式拼接密码并调用_switchUser换账号继续攻击,细节见 automation.py 中的_readGMSAPassword方法。

🎫 -k 票据认证:先把 ccache 路径放进环境变量

纯 Kerberos 环境、或想绕开 NTLM 限制时用票据:让KRB5CCNAME指向 ccache 文件,再打开-k

export KRB5CCNAME=/path/to/ticket.ccache autobloody -k --host dc.bloody.local -d BLOODY.LOCAL -u john.doe -dp 'neo4jP@ss' -ds 'JOHN.DOE@BLOODY.LOCAL' -dt 'BLOODY.LOCAL'
  • -kstore_true开关,默认False,加上即启用 Kerberos 认证
  • KRB5CCNAME:指向 ccache 票据文件的环境变量,须先导出
  • --host:建议写域名而非 IP,否则 Kerberos 解析可能失败
  • 先用kinitgettgtpkinit.py拿到 TGT;tests/test_functional.py 里有官方用gettgtpkinit.py生成 ccache 再配合测试的完整思路

🪪 -c 证书认证:私钥在前、证书在后

拿到 PKI 签发的证书后,即使不知道密码也能完成认证,这是证书伪造、AD CS 滥用等攻击链的典型入口:

autobloody -c '/path/to/priv.key:/path/to/cert.pem' --host 192.168.10.2 -dp 'neo4jP@ss' -ds 'JOHN.DOE@BLOODY.LOCAL' -dt 'BLOODY.LOCAL'
  • -c:格式为私钥路径:证书路径,key 在前、cert 在后、冒号分隔(帮助文本中给出示例);其余参数同上节

⚠️ certificate、kerberos 与 password 是互斥的三类凭据来源,bloodyAD 会根据传入参数自动选择认证协议,不要同时混用。

🛡️ -s 与 --timeout:加密连接和超时控制

默认明文 LDAP、60 秒超时,多数测试环境够用;审计合规场景建议加-s走加密链路,网络不稳时调大超时:

  • -s, --secure:尝试 LDAP over TLS(LDAPS)加密连接,默认是明文 LDAP
  • --timeout:连接超时秒数,默认 60,差网络下可写--timeout 120;该参数的默认值与解析逻辑在 tests/test_timeout.py 有专门测试覆盖

🚨 常见报错排查:找不到路径、-ds 总报错

高频问题就两类:数据里没有可利用路径、节点标签对不上。

  • "No path exploitable by autobloody found":不是认证失败,而是 BloodHound 数据里没有可自动利用的路径;autobloody 目前仅支持 MemberOf、ForceChangePassword、DCSync、GenericAll、WriteDacl 等十几种边,完整清单见 README.md 的 Limitations 章节
  • -ds/-dt一直报错:必须与 BloodHound 中的 name 属性完全一致且区分大小写,别漏@符号,如JOHN.DOE@BLOODY.LOCAL
  • 4 种方式怎么选:有密码用-p明文,只有 Hash 用-p:NTHASH,有票据用-k,有证书用-c

【免费下载链接】claude-quickstartsA collection of projects designed to help developers quickly get started with building deployable applications using the Claude API项目地址: https://gitcode.com/GitHub_Trending/an/claude-quickstarts

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

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

基于ThinkPHP与Laravel双框架的机票订票系统实战解析

做了小半年的内网项目——基于ThinkPHP和Laravel双框架的交通旅游计划飞机订票系统,最近总算完整上线交付了。之所以把这两个框架一起写在标题里,是因为这个系统本身就玩了个“双核架构”:面向C端用户的查询、下单、支付核心链路跑在Laravel上…

作者头像 李华
网站建设 2026/9/9 19:50:36

Windows批量给文件名加后缀的三种高效方法

Windows批量给文件名加后缀,是很多人迟早会遇到的操作。你可能要给一批截图补上一个日期标记,要给测试文件统一加上_backup后缀,也可能只是想把某个目录下的文档都标记成“待审核”。这篇文章就围绕这个操作,把从最简单到最灵活的…

作者头像 李华
网站建设 2026/9/9 19:49:02

【Springboot毕设全套源码+文档】基于springboot智能在线预约挂号系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/9/9 19:47:19

DAC8562双通道16位DAC开发详解:从SPI驱动到精度校准

简介:这是一份围绕DAC8562双通道16位DAC芯片的模块配套资料,适用于需要产生-12V至12V宽范围模拟电压的硬件开发者,覆盖工业控制、数据采集、测试测量与信号发生器等场景。压缩包共40个文件,约17.57MB,包含原理图PDF、A…

作者头像 李华
网站建设 2026/9/9 19:46:47

动态代理从入门到实战:JDK与CGLIB原理、应用与面试避坑

先从一个我在群里被问过无数次的问题开始:学会反射之后,下一个绕不开的点是什么?我的答案一直是动态代理。而且不只是面试要考,你日常用的Spring、MyBatis、Feign、Retrofit这些框架,底层全都在玩同一个东西。搞清楚动…

作者头像 李华
网站建设 2026/9/9 19:44:50

Qt网络调试助手进阶:消息队列、文件传输与CRC32校验实战

系列走到第四篇,前几篇我们把界面搭了起来、把TCP/UDP收发跑通,很多朋友已经拿这个网络调试助手去跟自己的下位机、服务端做联调了。但用着用着就会发现,问题不是功能少了,而是功能“扛不扛得住真实使用”。界面偶尔卡死、大文件传…

作者头像 李华