Windows Kerberos漏洞细节渐趋明朗

安全 漏洞
Windows KDC没有正确验证Kerberos票证里的某些部分。管理员可以检查系统是否遭到过攻击。

前天,微软的非常规更新修复了一个特别严重的缺陷:任何登录到域里的用户都可以将自己的特权提升成其他用户的特权,甚至包括域管理员的特权。笔者从预先的通知得知,错误之一是特权提升错误,而且错误评级为严重。笔者阅读通知时即知道,这次的漏洞有些东西不太一样。

微软在后来的安全研究和防御(SRD)博客里对漏洞做了更多的解释,尽管提供的细节仍然有限。

先是好消息:“Azure的Active Directory在外部接口没有用到Kerberos,因此不受该漏洞影响。”否则的话就要坏大事了。

而Windows Server 2008 R2以及更低版因含有该安全漏洞可被攻破。Windows Server 2012也含有一相关的漏洞,但利用漏洞进行攻击的难度高些。桌面Windows不含该漏洞,但他们还是发布了桌面系统的更新。桌面机里含有相关的代码,这样做可能是正着。

这也就解释了为什么微软给出的更新优先次序表是下面这样的:

1、更新运行Windows Server 2008 R2和更低版本的域控制器

2、更新运行Windows Server 2012或更高版本的域控制器

3、更新运行任何版本Windows的所有其他系统

完成第一步前不要中间停下来。

要搞清楚漏洞的机制,有必要了解一下Kerberos是如何工作的。微软提供了以下说明:

Windows Kerberos漏洞细节渐趋明朗

Kerberos票证交换示意图(图片来源:微软)

KDC(密钥分发中心,域控制器上被攻击的组件)在票证交换过程中的某以点(图中标2的地方)向客户端发送一个名为称为PAC(特权属性证书)的数据结构,PAC包含一个数字签名过的部分,该部分本身含有用户安全权限(用户的域SID和用户所属的安全组)。用户然后重新将该票证发给KDC,以换取一服务票证,用户再用服务票证在Windows服务上进行身份验证。

问题在这里:用户发回PAC给KDC请求服务票证时,KDC对PAC数字签名的验证有时不完善。即是说,用户可以在伪造的PAC数据里放置用户的权限,例如将自己设为属于域管理员安全组的成员。

微软介绍了一种方法,可以用于在运行更新程序前确定你的系统是否已经被人攻破过,但该方法只是测试某些类型的攻击方式,包括坊间见过的攻击方式。利用其它技术的攻击也是可能的,微软的这个方法检测不到这些攻击。看一下下面的安全事件日志中的一项:

Windows Kerberos漏洞细节渐趋明朗

被攻击过的痕迹(图片来源:微软)

重点检查安全ID(Security ID)和帐户名称(Account Name)是否不同。二者应该是相同的。

运行了更新程序后,可以利用不同的事件,搜寻是否有人企图在攻击的证据。

各位应该特别认真地对待此事。据NVD(美国国家漏洞数据库)给出的描述,该漏洞影响巨大,攻击漏洞的做法简单。如果你的系统被攻破的话,无论攻击者是否进行了破坏,代价都将会十分高昂:补救的唯一方法是从头开始重新构建域。更新吧,不要让这种事发生在阁下身上。

责任编辑:蓝雨泪 来源: ZDNet
相关推荐

2015-12-21 10:34:11

2011-05-17 14:52:25

Interop 201OpenFlow

2009-05-06 08:56:26

微软Windows 7操作系统

2019-01-24 13:07:56

谷歌Android开发者

2022-08-23 14:42:48

比特币支付中心化

2010-05-11 17:50:51

Kerberos认证协

2012-03-24 20:40:16

Windows 8

2012-06-21 09:34:18

Windows Pho

2023-03-30 13:25:40

微软Windows

2010-05-25 13:22:43

2022-08-22 10:08:37

内核漏洞安全苹果

2012-10-12 09:40:13

2022-01-11 08:52:41

微软macOS漏洞

2009-06-16 09:35:05

2009-08-07 08:44:42

2012-02-17 09:50:32

OpenFlowSDN

2017-04-06 15:15:36

微软windows 10

2015-04-13 10:12:08

Windows容器技术Nano Server

2014-07-10 15:51:53

2014-12-12 11:15:26

点赞
收藏

51CTO技术栈公众号