Kerberos KDC域权限提升漏洞总结(一)
报名入口来源:中国教育在线 2022-06-01
01漏洞起源
Windows Kerberos 对 kerberos tickets 中的 PAC(Privilege Attribute Certificate)的验证流程中存在安全漏洞,低权限的经过认证的远程攻击者利用该漏洞可以伪造一个PAC并通过 Kerberos KDC(Key Distribution Center)的验证,攻击成功使得攻击者可以提升权限,获取域管理权限。
02漏洞描述
(1)简单的相互身份验证
A向B发送信息时,会附加一个Authenticator(认证码 ,该数据结构=身份信息+时间戳)来进行彼此的身份验证。开始验证之前,A和B已经有一个有且只有二人知晓的密钥)
下面是工作流程:
1.A用密钥加密了[信息+Authenticator(身份信息+时间戳)],将其发给B
2.B用密钥解密了A发来的Authenticator,并将其中包含的时间戳记录下来。B将这个时间戳与自己的当前时间进行比较,如果这个时间差大于某个值(windows下默认是5分钟),B认为信息不是A发来的,拒绝后续验证。如果这个时间差小于设定值,B要检查在过去5分钟内,是否存在含有更早时间戳的Authenticator,如果没有,B认为信息确实是A发来了。至此,完成了B对A的验证
3.B用密码加密Authenticator里的时间戳,然后将其发回给A,以证明自己确实是B
4.A收到后,解密出时间戳,经过自己的对比,确认了对方确实是B,至此完成了A对B的验证
(2)Kerberos描述
1.用户Sue登陆到自己的客户端,客户端向认证服务器发送一个TGT(Ticket Granting Ticker)请求到KDC服务
2. 认证服务器确认用户的访问权限和session key认证服务器使用用户密码HASH作为KEY去加密请求然后发送到客户端
3. 客户端后续使用这个密码去解密以后的消息。解密成功后,用户使用TGT去到TGS请求一个服务票据
4. TGS返回一个服务票据
5. 用户拿服务票据去认证
6. 开启客户端和服务端会话
(3)漏洞描述
上面的图有一个地方没有指出,无论TGT还是服务票据都包含一个PAC(Privilege Attribute Certificate),PAC包含了两个信息,一个是用户SID,另一个是用户的组。
当用户登录KDC验证服务的时候,服务会验证PAC中的签名。如果PAC携带的签名表示“Sue”是“域控管理员”安全组的成员,那么创建的登陆session会话就将Sue当成了管理员。这样的认证存在问题,攻击者可以伪造身份。
(4)漏洞危害
这个漏洞的主要危害是以普通域用户身份可以伪造域管理员身份。
如果机器上并没有打补丁 3011780 则可能存在这个漏洞能够被恶意利用。
涉及系统:
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
Windows 8 and Windows 8.1
Windows Server 2012 and Windows Server 2012 R2
Server Core installation option