Direction et transitivité des approbations : pièges et réalités
Deux paramètres fondamentaux régissent la portée opérationnelle d’une relation d’approbation :
- La direction (trust direction) :
- Unidirectionnelle entrante (one-way inbound) : le domaine local fait confiance au domaine distant. Les utilisateurs du domaine distant peuvent s’authentifier sur le domaine local.
- Unidirectionnelle sortante (one-way outbound) : le domaine distant fait confiance au domaine local. Les utilisateurs du domaine local peuvent s’authentifier sur le domaine distant.
- Bidirectionnelle (two-way) : les deux domaines se font mutuellement confiance. L’authentification est possible dans les deux sens.
- La transitivité (transitivity) :
- Transitive : si A approuve B et B approuve C, alors A approuve implicitement C. L’authentification peut traverser plusieurs sauts de domaines.
- Non-transitive : l’authentification est strictement confinée aux deux domaines directement liés. Aucun rebond vers un troisième domaine n’est autorisé.
Pourquoi c’est important en DFIR
Section intitulée « Pourquoi c’est important en DFIR »L’analyse des compromissions multi-domaines achoppe très fréquemment sur une mauvaise lecture de la direction et de la transitivité :
- L’inversion du sens de l’attaque : lors d’une intrusion, les défenseurs bloquent souvent la mauvaise direction de flux réseau ou pensent que le domaine d’où provient l’attaque était protégé parce qu’il n’était “que” le domaine approuvé.
- La découverte de chemins de traverse inattendus (transitivity hops) : un attaquant dans une forêt externe partenaire peut rebondir à travers une approbation de forêt transitive pour atteindre des filiales ou des environnements sensibles que personne ne pensait accessibles depuis l’extérieur.
- L’impact du sens d’approbation sur le dumping de credentials : si une machine du Domaine A est compromise par un utilisateur du Domaine B via une confiance unidirectionnelle entrante, le hash NTLM ou le ticket Kerberos de cet utilisateur du Domaine B se retrouve en mémoire LSASS sur la machine du Domaine A. L’attaquant peut alors pivoter à contre-courant vers le Domaine B !
Comment ça fonctionne
Section intitulée « Comment ça fonctionne »Schéma comparatif des flux
Section intitulée « Schéma comparatif des flux »APPROBATION UNIDIRECTIONNELLE (One-Way Trust) :
Domaine Ressource (CORP) ────── Fait confiance à ─────► Domaine Utilisateur (PARTNER) ▲ │ │ │ └────────── Flux d'Authentification / Attaque ─────────┘
APPROBATION TRANSITIVE (Multi-Hop) :
Domaine A ◄──Trust──► Domaine B ◄──Trust──► Domaine C ▲ │ │ │ └────── Accès Kerberos Transitif direct ───┘Valeurs de l’attribut trustDirection dans Active Directory
Section intitulée « Valeurs de l’attribut trustDirection dans Active Directory »1: Inbound (Entrante) — Le domaine local fait confiance au domaine externe. Les comptes externes accèdent aux ressources locales.2: Outbound (Sortante) — Le domaine externe fait confiance au domaine local. Les comptes locaux accèdent aux ressources externes.3: Bidirectional (Bidirectionnelle) — Confiance mutuelle totale.
Ce qui est possible
Section intitulée « Ce qui est possible »- Accéder aux ressources d’un domaine qui vous fait confiance : un utilisateur membre d’un domaine approuvé (Trusted Domain) peut présenter ses identifiants pour accéder aux partages SMB, bases SQL et serveurs web du domaine de ressource (Trusting Domain).
- Emprunter plusieurs sauts transitifs dans une forêt : un attaquant peut rebondir de
child1.root.comverschild2.root.comsans aucune approbation directe entre les deux enfants, via la racine. - Pivoter vers le domaine distant via le vol de credentials en mémoire : même dans une confiance unidirectionnelle stricte, si un administrateur du domaine source ouvre une session sur une machine du domaine cible, ses secrets en mémoire permettent à l’attaquant de franchir la frontière dans l’autre sens.
Ce qui n’est pas possible
Section intitulée « Ce qui n’est pas possible »- Accéder aux ressources du domaine approuvé sans approbation bidirectionnelle : si le Domaine A fait confiance au Domaine B (unidirectionnelle), un utilisateur de A ne peut pas s’authentifier sur B.
- Rebondir à travers une approbation externe non-transitive : si la Forêt A a une approbation externe avec le Domaine B d’une autre forêt, un utilisateur de A ne pourra jamais atteindre le Domaine C de cette autre forêt via ce lien.
- Modifier le mot de passe d’un compte distant : une relation d’approbation ne permet pas à un administrateur du Domaine A de réinitialiser le mot de passe d’un utilisateur du Domaine B (sauf délégation explicite de droits LDAP).
Confusions fréquentes en DFIR
Section intitulée « Confusions fréquentes en DFIR »| Confusion fréquente | Réalité forensique vérifiable |
|---|---|
| « La confiance est Outbound depuis notre domaine, donc les attaquants ne peuvent pas venir de l’extérieur. » | Si l’approbation est Outbound depuis votre domaine, le domaine externe fait confiance à vos comptes. Mais si vos comptes sont compromis, ils accèdent à l’extérieur. Si la confiance est Inbound, les comptes externes entrent chez vous ! |
| « Une approbation non-transitive empêche tout mouvement latéral. » | Elle empêche les referrals Kerberos automatiques vers un troisième domaine, mais n’empêche nullement l’attaquant de voler des identifiants sur la machine cible pour rebondir manuellement. |
| « Les approbations de forêt sont non-transitives entre domaines enfants. » | Une Forest Trust est pleinement transitive : tous les domaines de la Forêt A font confiance à tous les domaines de la Forêt B. |
Exemple concret d’investigation
Section intitulée « Exemple concret d’investigation »Une entreprise d’ingénierie (engineering.corp) met en place une relation d’approbation unidirectionnelle avec un cabinet d’audit externe (audit-firm.com).
- L’objectif officiel : permettre aux auditeurs de se connecter sur un portail documentaire interne à
engineering.corp. - L’objet TDO créé sur
engineering.corpportetrustDirection: 1(Inbound). - Incident : le compte d’un consultant d’audit est compromis par un infostealer. L’attaquant utilise ce compte pour se connecter en SMB sur un serveur de fichiers interne à
engineering.corpoù le groupeDomain Usersd’audit-firm.comavait été ajouté avec des permissions d’écriture. - L’enquêteur DFIR valide le flux : bien que l’audit soit une entité externe, l’approbation entrante a permis l’intrusion directe sans franchir le moindre firewall d’authentification.
Artefacts et traces forensiques
Section intitulée « Artefacts et traces forensiques »- Attributs LDAP de l’objet
trustedDomain:trustDirection:0x1(Inbound),0x2(Outbound),0x3(Bidirectional).trustAttributes: bit0x1(TRUST_ATTRIBUTE_NON_TRANSITIVE) indiquant l’interdiction de transitivité.
- Journaux d’événements Windows :
- Event ID 4624 (serveur cible) :
Logon Type: 3,Authentication Package: Kerberos,TargetDomainName: NOM_DU_DOMAINE_APPROUVE. - Event ID 4769 (DC) : émission d’un TGS de referral pour
krbtgt/NOM_DU_DOMAINE_CIBLE.
- Event ID 4624 (serveur cible) :
Méthodes d’investigation
Section intitulée « Méthodes d’investigation »- Extraire la direction exacte de chaque approbation :
Exécuter
nltest /domain_trusts /vet noter scrupuleusement les flags[INBOUND],[OUTBOUND]ou[BOTH]. - Cartographier les droits accordés aux foreign security principals :
Rechercher dans les groupes locaux de domaine (
Domain Local Groups) tous les SIDs appartenant aux domaines approuvés. - Auditer les sessions actives et les tickets en cache :
Sur les machines cibles d’authentifications inter-domaines, exécuter
klistou analyser les artefacts LSASS pour identifier les comptes distants connectés.
Outils d’investigation
Section intitulée « Outils d’investigation »- Nltest :
Fenêtre de terminal nltest /domain_trusts /all_trusts /v - PowerView :
Fenêtre de terminal Get-DomainTrust | Select-Object TargetName, TrustDirection, TrustType, TrustAttributes - BloodHound :
Visualisation graphique des flèches
TrustedBy: bloodHound affiche la flèche dans le sens de l’accès de l’attaquant (CanEnter/CrossDomainAdmin).
Points clés à retenir
Section intitulée « Points clés à retenir »- Sens de la confiance $ eq$ sens de l’accès : Domaine de ressources $ ightarrow$ fait confiance à $ ightarrow$ Domaine de comptes.
- Les approbations de forêt et intra-forêt sont transitives.
- Les approbations externes sont non-transitives.
- Une approbation unidirectionnelle n’empêche pas le pivot inverse si des credentials du domaine source sont capturés sur la cible.