DCShadow是指攻击者获取到域控管理员权限后,将攻陷的主机伪装成为DC(域控制器),在伪装的DC上修改数据,然后触发域数据同步,使得指定的新对象或修改后的属性能够同步进入其他的DC中,从而达到权限维持的目的。
nTDSDSA对象
在Windows域环境中,域控制器与普通主机的区别体现在活动目录数据库中,在活动目录数据库中通过一些特殊对象以及一定的数据对象层级关系来标识某台机器是域控制器。其中最关键的是nTDSDSA对象,该对象正是标识一台主机是域控角色的特殊对象,其位于活动目录数据库的configuration NC中
伪装域控
在Windows域环境中,域控和普通主机的区别体现在活动目录数据库中。AD数据库中使用nTDSDSA对象来表示域控制器,该对象始终位于活动目录数据库的配置(configuration NC)中,每个DC都存储在站点容器内,是server对象的子节点,其完整的DN为“CN=NTDS Settings,CN=ServerName,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=redteam,DC=lab”。因此,只要在schema的Configuration区中创建一个新的server及nTDSDSA对象,KCC就会将目标主机识别为DC。
通过DCShadow修改任意用户属性
通过查看权限后发现,SYSTEM、Domain Admins、Enterprise Admins、Administrators 可以在Configuration区中创建nTDSDSA对象。
获得当前机器的SYSTEM权限(这个令牌就具备了伪造域控的所需权限)
执行数据更改与监听
lsadump::dcshadow /object:marry /attribute:description /value:”carn”
/object:更改信息的账号
/attribute:要更改的属性
/value:更改属性的值
以域管权限新打开一个mimikatz窗口(可以psexec远程调用),执行push,触发域控间数据同步过程
mimikatz # lsadump::dcshadow /push
marry的属性发生改变
既然活动目录能通过DCShadow进行修改,在实际攻击场景中,可以修改primarygroupid,SidHistory,委派等属性进行利用。
变更用户的所属组
lsadump::dcshadow /object:marry /attribute:primarygroupid /value:512
其中:512为Domain Admins所属组,在根域中,519为Enterprise Admins所属组(子域中没有EA组)
marry变为Domain Admins组内用户
可以通过4929事件记录所有详细的目录服务复制
前提需要开启本地安全策略中的审核目录服务访问(默认是关闭状态)
防御
DCShadow不是漏洞而是滥用了目录中的同步服务。
记录目录服务访问事件(EventID=4929),监控所有发生4929事件来识别伪装的域控。
增强对域管的管理,防止其凭证泄漏。
History
- Created 2022-10-22 11:49
- Published 2021-08-14 11:49
- Updated 2024-10-20 23:46