Kerberos域安全系列(27)-DCShadow测试技术分析

半世苍凉 提交于 2020-02-16 20:37:13

2018年1月24日,Benjamin Delpy(神器Mimikatz的作者)和Vincent Le Toux在BlueHat IL会议期间公布了针对域活动目录的一种新型攻击技术“DCShadow”。最新版的Mimikatz已经集成了这个功能。

在具备域管理员权限条件下,攻击者可以创建伪造域控制器,将预先设定的对象或对象属性复制到正在运行的域服务器中。

在具备域管理员权限,还需要这种方法吗?答案是需要的。有时候,即使你拥有域管理员权限,但是当你进行横向移动的时候,会被防护机制发现,所以还是需要DCShadow的。 

DCSync从域服务器复制出东西,DCShadow是将数据复制至服务器。

从DCShadow目前展示的功能来看,主要只能用于红蓝对抗的隐藏后门。但是DCShadow第一次澄清和实现了伪造一个DC的最小需求合集,这个贡献非常大。以前很多攻击方法都卡在不能伪造域服务器,例如MS15-011和MS15-014等,有了DCShadow的基础,相信将来会有很多新的攻击方法。

根据Lun Delsalle的描述,DCShadow的攻击过程包括3个主要步骤:

  • 在目标域的AD活动目录注册一个伪造的DC中;
  • 使伪造的DC被其他的DC认可,能够参与域复制;
  • 强制触发域复制,将指定的新对象或修改后的对象属性同步复制到其他DC中;

注册伪造的DC

一台机器要想注册成为域中的一台DC服务器,需要在域的活动目录中注册一个NTDS-DSA(nTDSDSA)类对象。注册的位置为

CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=Domain_name,DC=com

我们查看上述注册位置的安全描述符,可知必须有域管理员权限才具备写权限。

注册的DC被其他DC认可,能够参与域复制

一个刚注册的DC要想被域中其他DC认可,能够参与域复制,需要满足3个条件:

  • 这台伪造DC具备认证凭证,能认证到域,即有域内账号,可以使用机器账号,实验环境中为WIN7X64EN05$
  • 伪造DC能认证其他DC来访问的账号,如果我们给WIN7X64EN05$添加SPN,则可以实现这一点。关键是需要添加哪些SPN,DCShadow的一个大贡献是找到了SPN的最小合集,只需要2个即可:DRS服务(GUID为E3514235-4B06-11D1-AB04-00C04FC2DCD2)和GS(Global Catalog)服务。
  • 运行DRS服务,最少需要实现IDL_DRSBind、IDL_DRSUnbind、IDL_DRSGetNCChanges、IDL_DRSUpdateRefs这4个RPC接口,以便其他DC能够通过RPC获取需要复制的数据。Mimikatz工具的最新版已经集成了这4个接口。

强制立即发起域复制

通常负责域复制和同步的进程是KCC进程,默认时间是15分钟校验一次,如果需要复制则发起;也可以使用Windows域服务器自带的系统工具repadmin,该工具会调用DRSReplicaAdd函数接口强制立即发起域复制,DCShadow正是通过调用DRSReplicaAdd函数强制立即发起复制

在自己做实验时,有一点需要注意,在实验环境中WIN7X64EN05$这台机器的防火墙是否关闭,当防火墙是开着的时候,可能会导致实验不成功。当在实验中发现问题,可以通过阅读Mimikatz工具的源码来解决。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!