微软在2014年11月18日发布了紧急补丁,修复了Kerberos域用户提权漏洞。该漏洞可导致活动目录整体权限控制受到影响,允许攻击者将域内任意用户权限提升至域管理级别。通俗的将,如果攻击者获取了域内任何一台计算机的Shell权限,同时知道任意域用户的用户名、密码,即可获得域管理员权限,进而控制域控制器,最终获取域权限。
这个漏洞产生的原因是:用户在向Kerberos密钥分发中心(KDC)申请TGT(由票据授权服务产生的身份凭证)时,可以伪造自己的Kerberos票据。如果票据声明自己有域管理员权限,而KDC在处理用户票据时未验证票据的签名,那么,返给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送到KDC,KDC的TGS(票据授权服务)在验证TGT后,将服务票据发送给该用户,而该用户拥有访问该服务的权限,从而使攻击者可以访问域内的资源。
1|2Kerberos域用户提权漏洞防御
2|0跨域攻击
2|1跨域攻击方法分析
常见的跨域攻击方法有:常规渗透方法(例如利用Web漏洞跨域获得权限);利用已知散列值进行哈希传递攻击或票据传递攻击(例如域控制器本地管理员密码可能相同);利用域信任关系进行跨域攻击。
2|2利用域信任关系的跨域关系的分析
域信任的作用是解决多域环境中的跨资源共享问题。
域环境不会无条件的接收来自其他域的凭证,只会接收来自受信任的域的验证。在默认情况下,特定的Windows域中的所有用户都可以通过该域中的资源进行身份验证,通过这种方式,域可以为其用户提供对该域中所有资源的安全访问机制。如果用户想要访问当前域边界以外的资源,需要使用信任域。
域信任作为域的一种机制,允许另一个域的用户在通过身份验证后访问本域中的资源。同时,域信任利用DNS服务器定位两个不同的子域的域控制器,如果两个域中的域控制器都无法找得到另一个域,也就不存在通过域信任关系进行跨域资源共享了。
域信任关系简介
域信任关系分为单向信任和双向信任两种:
单向信任是指在两个域之间创建的信任路径,即在一个方向上是信任流,在另一个方向上是访问流。在受信任域和信任域之间的单向信任中,受信任域内的用户(或者计算机)可以访问信任域内的资源,但信任域内的用户无法访问受信任域内的资源。
双向信任是指两个单向信任的组合。信任域和受信任域彼此信任,在两个方向上都有信任流和访问流。这意味着,可以从两个方向在两个域之间传递身份验证请求。活动目录中的所有域信任关系都是双向可传递的。
域信任关系也可以分为内部信任和外部信任两种:
2|3防范跨域攻击
内网中的Web应用比公网中的Web应用更脆弱。放置在公网中的Web应用服务器往往会配置WAF等设备,还会有专业的维护人员定期进行安全检查。而放置在内网中的Web应用服务器大多为内部办公室使用,所以,其安全性受重视程度较低,往往会使用弱口令或者存在未及时修复的补丁。
攻击者在获取当前域的域控制器的权限后,会检查域控制器的本地管理员密码是否与其他域的域控制器本地管理员密码相同,以及在两个域之间的网络没有被隔离的情况下是否可以通过哈希传递进行横向攻击等。在很多公司中,虽然为不同的部门划分了不同的域,但域管理员可能是同一批人,因此可能出现域管理员的用户名和密码相同的情况。
在日常网络维护中,需要养成良好的安全习惯,才能有效地防范跨域攻击。