External Forest Domain - One-Way (Outbound)
Dans ce scénario, votre domaine accorde certains privilèges à un principal provenant de domaines différents.
Énumération
Confiance sortante
Attaque du compte de confiance
Une vulnérabilité de sécurité existe lorsqu'une relation de confiance est établie entre deux domaines, identifiés ici comme le domaine A et le domaine B, où le domaine B étend sa confiance au domaine A. Dans cette configuration, un compte spécial est créé dans le domaine A pour le domaine B, qui joue un rôle crucial dans le processus d'authentification entre les deux domaines. Ce compte, associé au domaine B, est utilisé pour chiffrer les tickets permettant d'accéder aux services à travers les domaines.
L'aspect critique à comprendre ici est que le mot de passe et le hash de ce compte spécial peuvent être extraits d'un Contrôleur de Domaine dans le domaine A en utilisant un outil en ligne de commande. La commande pour effectuer cette action est :
Cette extraction est possible car le compte, identifié par un $ après son nom, est actif et appartient au groupe "Domain Users" du domaine A, héritant ainsi des autorisations associées à ce groupe. Cela permet aux individus de s'authentifier contre le domaine A en utilisant les identifiants de ce compte.
Attention : Il est possible de tirer parti de cette situation pour obtenir un point d'entrée dans le domaine A en tant qu'utilisateur, bien que avec des autorisations limitées. Cependant, cet accès est suffisant pour effectuer une énumération sur le domaine A.
Dans un scénario où ext.local
est le domaine faisant confiance et root.local
est le domaine de confiance, un compte utilisateur nommé EXT$
serait créé dans root.local
. À l'aide d'outils spécifiques, il est possible de décharger les clés de confiance Kerberos, révélant les identifiants de EXT$
dans root.local
. La commande pour y parvenir est :
Suivant cela, on pourrait utiliser la clé RC4 extraite pour s'authentifier en tant que root.local\EXT$
au sein de root.local
en utilisant une autre commande d'outil :
Cette étape d'authentification ouvre la possibilité d'énumérer et même d'exploiter des services au sein de root.local
, comme réaliser une attaque Kerberoast pour extraire les identifiants de compte de service en utilisant :
Collecte du mot de passe de confiance en texte clair
Dans le flux précédent, le hachage de confiance a été utilisé à la place du mot de passe en texte clair (qui a également été extrait par mimikatz).
Le mot de passe en clair peut être obtenu en convertissant la sortie [ CLEAR ] de mimikatz de l'hexadécimal et en supprimant les octets nuls '\x00':
Parfois, lors de la création d'une relation de confiance, un mot de passe doit être saisi par l'utilisateur pour la confiance. Dans cette démonstration, la clé est le mot de passe de confiance d'origine et donc lisible par l'homme. Comme la clé change (tous les 30 jours), le texte en clair ne sera pas lisible par l'homme mais techniquement toujours utilisable.
Le mot de passe en clair peut être utilisé pour effectuer une authentification régulière en tant que compte de confiance, une alternative à la demande d'un TGT en utilisant la clé secrète Kerberos du compte de confiance. Ici, interroger root.local depuis ext.local pour les membres des administrateurs de domaine:
Références
Last updated