taibeihacker
Moderator
DCSync 攻击
2015 年8 月,Benjamin Delpy(神器Mimikatz 的作者)和Vincent Le Toux 發布了新版本的Mimikatz,新增加了DCSync 功能。模仿一個域控制器DC,從真實的域控制器中請求獲取數據,例如賬號的口令散列值等數據。DCSync 之前,獲取域的賬號口令信息,需要登錄域服務器,在域服務器上運行代碼才可以獲取。
DCSync 的最大特點,在於不用登錄域服務器,即可遠程通過域數據同步複製的方式獲得想要的用戶口令信息。
需要注意的是,DCSync 攻擊的對像如果是RODC 域控制器,則會失效,因為RODC 是不能參與復制同步數據
原理
DCSync 的原理非常清晰,利用域控制器之間的數據同步複製。發現網絡中的目標域控制器;
通過DRS 服務的GetNCChanges 接口發起數據同步請求,Directory Replication Service (DRS) Remote Protocol
Samba wiki 關於GetNCChanges 的描述包括:
當一個DC (成為客戶端DC)想從其他DC (成為服務端DC)獲取數據時,客戶端DC 會向服務端DC 發起一個GetNCChanges 請求。回應的數據包括需要同步的數據。
如果需要同步的數據比較多,則會重複上述過程。畢竟每次回應的數據有限。
前提
一個用戶想發起DCSync 攻擊,必須具備以下權限:1、Replicating Directory Changes (DS-Replication-Get-Changes)
2、Replicating Directory Changes All (DS-Replication-Get-Changes-All)
3、Replicating Directory Changes In Filtered Set
即:默認情況下域管理員組具有該權限。


攻击

防御
DCSync 攻擊的原理是模擬域控制器發起服務器之間的數據同步複製。最好的防禦方法是給域控制器設置白名單。在域內,域控制器的數量、IP地址、MAC 地址是非常明確清晰的資產,將這些資產設置在允許同步的白名單內。非白名單的IP 不允許發生數據同步
獲取域內所有IP的腳本:
1
2
3
PowerShell:Get-ADDomainController -filter * | select IPv4Address
或
[System.DirectoryServices.ActiveDirectory.Domain]:GetCurrentDomain().DomainControllers | select IPAddress
在網絡設備上檢測來自白名單以外的域控制器數據同步複製