黄金票据攻击的完整操作步骤

1 人参与

在域渗透的终极阶段,攻击者往往不再满足于普通的域管权限,而是寻求一种能够持久控制、甚至对抗密码重置的“上帝视角”。黄金票据正是这种思维的产物,它通过伪造KRBTGT账户的TGT票据,赋予了攻击者随时访问域内任何服务的特权。这一过程听起来玄乎,实际操作中却充满了技术细节的严苛要求。

前置条件与核心要素获取

想要铸造一张“黄金票据”,前提必须已经拿下了域控权限,或者至少拥有域管组用户的控制权。这不是一种从外部直接打入的攻击,而是内网横向移动后的权限维持手段。操作的核心在于获取KRBTGT账户的NTLM哈希值。KRBTGT是KDC服务账户,它的哈希就像印钞机的模板,掌握了它,就能随意签发合法的“通行证”。

通常使用Mimikatz的lsadump::dcsync模块来导出这个关键哈希。这个模块非常高效,它通过模拟域控同步协议,直接从目标域控请求指定账户的信息,无需直接登录域控操作,隐蔽性相对较高。除了哈希,还需要提取域的SID(安全标识符)。这里有个细节极易踩坑:SID必须去掉最后一段RID(通常是-500或类似数字),只保留域标识符部分,否则生成的票据将无法通过验证。

票据生成与参数配置

拿到“印钞模板”后,下一步就是生成票据。这一步不需要连接网络,纯本地计算,隐蔽性极强。使用kerberos::golden命令时,参数配置必须精准无误。

  • /domain: 指定目标域名,如corp.com
  • /sid: 填入处理后的域SID。
  • /krbtgt: 填入刚才导出的KRBTGT NTLM哈希。
  • /user: 这里可以随意伪造一个用户名,通常伪造Administrator,或者编造一个不存在的管理员账户,这取决于攻击者是想混淆视听还是直接使用已知高权账户。
  • /ptt: 这是一个非常实用的参数,表示Pass-The-Ticket,生成后直接注入内存,省去了手动导入的步骤。

如果域内配置了某些特定的组策略或需要绕过特定的检测机制,可能还需要利用/sids参数添加高权限组的SID,比如域管组或企业管理员组的SID,这能让伪造的用户瞬间获得跨域或更高层级的权限。

注入与验证攻击

票据生成完毕,若未使用/ptt参数,则需要手动将其注入内存。Mimikatz提供了kerberos::ptt命令,能够将生成的.kirbi格式票据加载到当前会话中。注入成功后,打开一个新的命令行窗口,你会发现当前的上下文环境已经发生了质变。

验证攻击是否成功,最直接的方法是尝试访问域控的C盘共享目录(\DCC$),或者使用PsExec直接向域控下发指令。如果能够无密码直接进入,说明这张“黄金票据”已经生效。此时,即便域管修改了所有用户的密码,只要KRBTGT的密码没有被重置(通常很少有管理员会定期重置这个服务账户),这张票据就依然有效,攻击者随时可以卷土重来。

这种攻击方式之所以令人防不胜防,关键在于它绕过了KDC的验证逻辑,直接利用了Kerberos协议对票据签发者的绝对信任。对于防御者而言,定期重置KRBTGT密码虽然痛苦,却是切断这条“黄金”后路的唯一手段。

参与讨论

1 条评论
  • 月影独语

    这操作门槛也太高了吧,没域控权限根本玩不转啊🤔

    回复