跳至正文

kerbreos认证过程与票据伪造

  • client:AS,我输入密码了,你看看对不对?

  • AS:好的,数据库中有你,验证通过了,给你个会话凭证,你可以去申请访问TGS服务了。另外,别忘了把TGT捎给TGS,TGT中有我确认你是良民的凭证哦。你是不能查看到TGT中内容的,因为只有TGS服务有密钥。

  • client:好的,我用密码解密,得到了AS颁发的会话凭证,我用会话凭证加密一个我的身份的证明,把它跟TGT一起传给TGS服务,这样TGS服务解密TGT后,就可以继续解密我的身份信息了,TGS会知道是AS确认的良民在向它发起请求。

  • TGS:我使用自身密钥成功解密了TGT,我知道了AS验证通过了client,得到了AS颁发的会话凭证,我成功使用这个会话凭证解密了client发给我的身份证明,确实是良民在向我发起请求,现在我也给client发个会话凭证,这样client可以拿着会话凭证去访问域内其他服务器了,顺便别忘了,把service捎给其他的服务器,service中有我允许client与其他服务器会话的凭证,那将告诉其他服务器client确实是可以进行下一步工作的良民。client是不能看到service的,因为我用service密钥加密了,只有服务器能解密。

  • client:好的,我用TGS密钥解密了TGS发给我的会话凭证,我将用它加密我的身份证明信息,把它与service一起发给其他服务器,这样其他服务器解密service后,就可以继续解密我的身份信息了,其他服务器会知道,AS和TGS都是允许我向它们发起请求的。

  • service:我是用自身的service密钥成功解密了service,得到了TGS服务允许client与我通信的会话凭证,我用这个会话凭证解密了client身份信息,这与TGS服务发来的service中储存的client信息是相同的,恭喜client验证通过了,所有其他的服务器的资源,client都能访问了。
    *注:整个kerbreos认证过程,主要做两件事情:

  • 域控确认client发来的信息并允许其访问其他服务

  • 其他服务将client发来的身份信息与域控发来的client验证通过的身份信息做比对

  • 如果前面两条成功验证,则整个验证过程结束

    黄金票据

  • krbtgt是KDC中重要账户,获取到它的NTLM HASH后,可以做为TGS密钥生成TGT,然后发给KDC的TGS服务。TGS服务解密伪造的TGT得到攻击者的身份信息,与攻击者发来的身份信息刚好相同,则通过了验证。

  • 黄金票据伪造过程实际是上面讲的client向TGS服务发起请求的过程,只是,TGT不是AS颁发的,而是通过krbtgt账户的NTLM HASH伪造的。

  • 黄金票据伪造条件:1、krbtgt账户的NTLM HASH。2、域的sid值

  • 黄金票据针对域内所有服务

    白银票据

  • 只针对某个服务

  • 实际是抓取域控主机上某个服务的HASH,在client端以普通用户身份生成TGS票据,用来访问域内某服务资源。