前置知识

Kerberos协议认证过程

一些名词

DC(Domain Controller):域控制器,简称DC,一台计算机,实现用户、计算机的统一管理。

KDC(Key Distribution Center):秘钥分发中心,简称KDC,默认安装在域控里,包括AS和TGS。

AS(Authentication Service):身份验证服务,简称AS,用于KDC对Client认证。

TGS(Ticket Grantng Service):票据授予服务,简称TGS,用于KDC向Client和Server分发Session Key(临时秘钥)。

TGT(Ticket Granting Ticket):认证票据,用于验证Client的身份

**ST(Server Ticket):**服务票据

AD(Active Directory):活动目录,简称AD,用于存储用户、用户组、域相关的信息。

**Client:**用户

**Server:**可以是某台计算机,也可以是某个域内服务

**krbtgt用户:**创建域控时自动生成的用户

Details

整个流程大致如下

image.png

整个kerberos攻击流程主要关注decrypt和encrypt过程,如果知道Krbtgt的NTLM-Hash,那就可以伪造TGT票据,申请任意的ST票据从而访问任意服务,这也是黄金票据攻击的原理。

票据攻击

黄金票据

这个攻击的出发点是在Client和DC交互这一过程的第一部分中,AS会对通过验证的Client发送AS_REP,这里面的TGT是由Krbtgt的NTLM-Hash加密的,当拥有Krbtgt的HTLM-Hash之后可以对其进行解密,从而绕过对任意用户的账号策略,让用户成为任意组的成员,可用于Kerberos认证的任何服务。