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工具的源码来解决。
来源:CSDN
作者:prettyX
链接:https://blog.csdn.net/prettyX/article/details/104329704