欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

攻击活动目录:无约束委派及域林信任

来源:本站整理 作者:佚名 时间:2018-11-30 TAG: 我要投稿

一、前言
在10月份的DerbyCon 2018期间,我的小伙伴们(@tifkin_、@enigma0x3以及@harmj0y)发表了题为“The Unintended Risks of Trusting Active Directory”的精彩演讲,在演讲中他们演示了攻击者如何强制域控制器(DC)向配置了无约束委派(unconstrained delegation)的服务器发起身份认证请求,捕获并导出域控的TGT(Ticket-Granting Ticket,票据授予票据),以便模拟DC,执行DCSync之类的攻击来请求任意域用户密码。在演讲中,小伙伴们通过带有多个子域的森林环境来演示这种攻击场景。然而,最近Will拓展了攻击场景,如果目标环境中存在多个外围森林,并且配置了双向信任(two-way trust)选项,Will依然能够成功搞定其他域的DC。我强烈建议大家先阅读一下Will的这篇文章(Not A Security Boundary: Breaking Forest Trusts),文中从攻击方视角介绍了具体攻击过程,也介绍了如何在实际环境中部署特定配置,以缓解此类攻击。
在本文中,我会简单介绍Will在文章中提到的攻击技术,主要关注的是主机账户强制认证过程中所生成的安全事件。我也会提供一些IOC(indicators of compromise),这些特征来自于Rubeus所生成的Windows安全事件,可以用来监控TGT以及SpoolSample的执行(SpoolSample是Lee Christensen开发的一款工具,是现在唯一公开的、能够向无约束服务器发起身份认证的poc代码)。SpoolSample代码中用到了Printer Server,现在Windows系统中有仍有上百个类似的RPC服务器尚未进行分析。因此,我们不能假设攻击者总会使用RPC Printer Server来执行此类攻击。此外我们还需要理解一点,这类攻击并不会凭空出现,为了完成攻击任务,在攻击之前、之中以及之后都会涉及到其他事件以及操作。
 
二、攻击简介
Will在文中从攻击方角度详细介绍了攻击过程。作为防御方,我们需要理解攻击者执行的每个步骤,识别潜在的数据来源,以便收集足够多的信息来检测此类攻击活动。Will在文中引用了一句话:“如果攻击者入侵了森林中的某台域控(或者森林中配置无约束委派的任何服务器),那么他就可以通过“打印机bug”来强制外部森林中的域控向攻击者控制的服务器发起身份认证。在各种委派设置的影响下,攻击者可以在已控制的服务器上导出、重新应用并使用外部域控的TGT,最终获取外部森林的凭证数据”。
 
三、攻击中涉及的概念
在开始模拟此类攻击并介绍如何检测攻击行为之前,我们需要理解攻击者的具体操作及背后原因。在本节中,我会引用其他一些参考文章,帮助大家更好理解攻击过程。关于Will文章中介绍的攻击方法,我能想到如下几个要点:
无约束委派服务器
域林信任(双向信任)
用来强制认证的“打印机bug”
委派
简单而言,当服务器连接到其他网络资源时,可以利用委派(delegation)机制来模拟客户端。根据微软官方文档的描述,微软将委派定义为一种操作,用来授予服务器相关权限,允许服务器以客户端的身份来与环境中其他远程系统交互。服务器以客户端身份与其他服务器交互是非常常见的一种场景。
Kerberos委派类型
Kerberos有3种委派类型,如下表所示:

Kerberos无约束委派
根据微软官方文档描述,当用户通过另一个服务(带有无约束委派的前端服务器)请求访问某个服务(后端服务器)时,会经过如下几个步骤:

1、用户将KRB_AS_REQ消息发送至KDC(Key Distribution Centre,密钥分发中心)进行身份认证,请求消息会通过AS(Authentication Service,认证服务)交换,请求可转发的TGT;
2、KDC通过KRB_AS_REP消息返回可转发的TGT,响应消息通过AS交换;
3、用户根据步骤2种可转发的TGT,通过KRB_TGS_REQ消息请求forwarded TGT;
4、KDC通过KRB_TGS_REP消息向用户返回forwarded TGT;
5、用户使用步骤2返回的TGT,通过KRB_TGS_REQ消息请求Service 1对应的服务票据(service ticket);
6、TGS(Ticket Granting Service,票据授予服务)通过KRB_TGS_REP消息返回服务票据;
7、用户向Service 1发送KRB_AP_REQ消息,展示服务票据、forwarded TGT以及forwarded TGT对应的会话密钥(session key);
8、为了满足用户的请求,Service 1需要Service 2以用户身份执行某些操作。Service 1使用用户提供的forwarded TGT,通过KRB_TGS_REQ消息将这个票据发送给KDC,以用户的身份请求Service 2的票据。
配置了无约束委派的服务器不仅可以使用forwarded TGT来访问网络中其他未请求的服务,如果这是域控TGT,那么也能执行类似DCSync之类的攻击。大家可以阅读这篇文章了解详细信息。大家都知道滥用无约束委派并不是一个新的概念。然而,此时非常有趣也非常糟糕的是攻击者可以在双向信任的外围域林中使用这种技术。此时域林信任再也不是一个安全屏障了。
大家也可以在Will的“Another Word on Delegation”这篇文章中了解委派方面更多信息。
域林信任
微软在官方文档中将信任定义成域之间的一种关系,可以让某个域的用户通过另一个域域控的身份认证。Will也在“A Guide to Attacking Domain Trusts”这篇文章中介绍了关于域和森林信任的其他信息。
有两种信任类型:
默认信任
当新域添加到根域中时,默认情况下会创建双向传递信任关系。

其他信任

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载