先介绍下Kerberos协议:
Kerberos是一种由MIT(麻省理工大学)提出的一种网络身份验证协议。它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证。
在Kerberos协议中主要是有三个角色的存在:
1:访问服务的Client(用户的机器客户端)
2:提供服务的Server(服务端)
3:KDC(Key Distribution Center)密钥分发中心其中KDC服务默认会安装在一个域的域控中,而Client和Server为域内的用户或者是服务,如HTTP服务,SQL服务,远程桌面服务。在Kerberos中Client是否有权限访问Server端的服务由KDC发放的票据来决定。
![9335da64ee3d5fe5f6c756a4961eda7b.png](https://i-blog.csdnimg.cn/blog_migrate/061a025db6e9cbf267c4a98220b7b72a.jpeg)
1:Client向KDC发起AS_REQ请求内容为通过Client密码Hash 加密的时间戳、ClientID、网络地址、加密类型等内容。
2:KDC使用Client hash进行解密,并在ntds.dit(只有域控中才有的数据库)中查找该账户,如果结果正确就返回用krbtgt NTLM-hash加密的TGT票据,TGT里面包含PAC,PAC包含Client的sid,Client所在的组。
注释:PAC的全称是Privilege Attribute Certificate(特权属性证书)。不同的账号有不同的权限,PAC就是为了区别不同权限的一种方式。
3&#