Mouvement latéral entre domaines Active Directory : méthodes, chemins et contraintes
Le mouvement latéral inter-domaines (Cross-Domain Lateral Movement) désigne l’ensemble des techniques permettant à un adversaire ayant pris pied dans un domaine source (DOMAINE_A) d’étendre son emprise sur des systèmes, des données ou des contrôleurs appartenant à un domaine distinct (DOMAINE_B).
Ces mouvements s’exécutent selon deux grandes topologies :
- Intra-forêt : entre deux domaines d’une même forêt (Parent-Enfant, Arbre). Les relations de confiance sont transitives et bidirectionnelles.
- Inter-forêts : entre deux forêts distinctes reliées par une relation d’approbation de forêt (Forest Trust) ou externe (External Trust).
Pourquoi c’est important en DFIR
Section intitulée « Pourquoi c’est important en DFIR »Comprendre la mécanique des franchissements inter-domaines permet de :
- Traquer l’origine de l’infection lors d’attaques multi-domaines : un ransomware déployé sur le Domaine B a fréquemment débuté des jours plus tôt par un phishing sur un poste d’un Domaine A subsidiaire ou de développement.
- Déceler les autoroutes invisibles : les attaquants privilégient souvent les chemins les moins surveillés (ex: compromettre un compte de service du domaine enfant disposant de droits d’administration délégués sur un serveur passerelle du domaine parent).
- Identifier les brèches de cloisonnement réseau et d’architecture : la présence d’une approbation active implique l’ouverture de ports RPC/SMB/Kerberos qui court-circuitent les pare-feux internes.
Comment ça fonctionne
Section intitulée « Comment ça fonctionne »Matrice des méthodes de mouvement latéral inter-domaines
Section intitulée « Matrice des méthodes de mouvement latéral inter-domaines »┌────────────────────────────────────────────────────────────────────────────┐│ MÉTHODES DE FRANCHISSEMENT DE DOMAINE EN DFIR │├────────────────────────────────────────────────────────────────────────────┤│ 1. Exploitation sIDHistory (Intra-forêt ou si Quarantine désactivée) ││ -> Forge d'Inter-Realm TGT avec RID 512/519 dans sIDHistory. │├────────────────────────────────────────────────────────────────────────────┤│ 2. Abus des Foreign Security Principals (FSP) ││ -> Un compte/groupe du Domaine A est membre d'un groupe local dans B. │├────────────────────────────────────────────────────────────────────────────┤│ 3. Vol de sessions et de credentials en mémoire (LSASS Pivot) ││ -> Un admin du Domaine B s'est connecté sur une machine du Domaine A. │├────────────────────────────────────────────────────────────────────────────┤│ 4. Abus de Délégation Kerberos (Unconstrained Delegation / RBCD) ││ -> Capture de TGTs de comptes du Domaine B traversant le Domaine A. │├────────────────────────────────────────────────────────────────────────────┤│ 5. Kerberoasting cross-domaine ││ -> Demande de TGS pour un SPN du Domaine B et cassage hors-ligne. │└────────────────────────────────────────────────────────────────────────────┘Ce qui est possible
Section intitulée « Ce qui est possible »- Franchir une frontière intra-forêt instantanément : avec le hash
krbtgtd’un sous-domaine, la forge d’un ticket inter-domaine avecsIDHistorypour conquérir le domaine racine est mathématiquement garantie (en l’absence de durcissement manuel exceptionnel). - Pivoter vers un domaine sans relation de confiance par vol de session : si un administrateur du Domaine B se connecte en RDP sur un serveur du Domaine A (même sans aucune approbation entre A et B), son mot de passe ou son hash peut être extrait de LSASS par l’attaquant pour attaquer B.
- Exploiter la resource-based constrained delegation (RBCD) cross-domaine : si un attaquant contrôle un compte d’ordinateur dans le Domaine A et dispose de droits en écriture sur l’attribut
msDS-AllowedToActOnBehalfOfOtherIdentityd’un serveur du Domaine B, il peut compromettre ce serveur.
Ce qui n’est pas possible
Section intitulée « Ce qui n’est pas possible »- Franchir une approbation de forêt via
sIDHistorysi le SID filtering est actif : le KDC du domaine distant purge impitoyablement les SIDs étrangers avant d’accorder le TGS. - Effectuer un DCSync sur un DC du domaine b en utilisant les droits domain admin du domaine a : les droits de réplication AD ne sont pas partagés entre partitions de domaine ; le compte doit détenir explicitement les droits
DS-Replication-Get-Changes-Allsur la partition de B. - Utiliser NTLM pass-through si le canal netlogon inter-DC est bloqué au niveau réseau.
Confusions fréquentes en DFIR
Section intitulée « Confusions fréquentes en DFIR »| Confusion fréquente | Réalité forensique vérifiable |
|---|---|
| « L’attaquant n’a pas pu sauter de A vers B car il n’y a pas de relation d’approbation entre eux. » | L’absence de confiance empêche l’authentification Kerberos/NTLM directe, mais n’empêche pas l’attaquant de voler des identifiants du Domaine B en mémoire sur les machines de A. |
| « Les mouvements latéraux inter-domaines laissent des traces sur un seul contrôleur de domaine. » | Faux. Le saut génère des événements sur le DC source (demande de TGT/referral 4768/4769), sur le DC de ressource (validation de ticket 4769 / Netlogon 4776), et sur la machine cible (Logon 4624). |
| « Isoler le DC du Domaine A empêche tout accès vers le Domaine B. » | Si l’attaquant dispose déjà de tickets Kerberos en cache ou de mots de passe de comptes du Domaine B, il peut attaquer B directement sans solliciter le DC de A. |
Exemple concret d’investigation
Section intitulée « Exemple concret d’investigation »Dans un groupe international, une attaque par ransomware commence dans la filiale australienne (apac.corp.local) :
- L’attaquant obtient les droits locaux sur un poste client à Sydney.
- Il cartographie les chemins avec BloodHound :
- Le groupe
APAC\Domain Usersest imbriqué dans un groupe localCORP\Regional-Adminsvia un FSP sur le domaine racine. - Ce groupe
Regional-Adminsest administrateur local d’un serveur d’infrastructureJUMP-SRVdans le domaine racinecorp.local.
- Le groupe
- L’attaquant se connecte en SMB vers
JUMP-SRVvia un referral Kerberos. - Sur
JUMP-SRV, il dumpe LSASS et récupère les identifiants en clair d’un compteCORP\Enterprise Adminsconnecté en session RDP active. - Résultat : l’attaquant a conquis le domaine racine en moins de 3 heures en combinant FSP et vol de credentials mémoire.
Artefacts et traces forensiques
Section intitulée « Artefacts et traces forensiques »- Journaux de sécurité du DC du domaine source :
- Event ID 4769 : demande de TGS avec
ServiceName: krbtgt/DOMAINE_CIBLE(ticket referral).
- Event ID 4769 : demande de TGS avec
- Journaux de sécurité du DC du domaine cible :
- Event ID 4769 : TGS émis pour le service cible avec présentation d’un referral TGT.
- Event ID 4675 : détection de filtrage de SIDs (si tentative d’injection
sIDHistorybloquée).
- Journaux de sécurité de la machine cible :
- Event ID 4624 (logon type 3) :
TargetUserNameetTargetDomainNameidentifiant le compte distant,LogonProcessName(KerberosouNtLmSsp). - Event ID 4672 : privilèges spéciaux attribués lors de l’ouverture de session.
- Event ID 4624 (logon type 3) :
Méthodes d’investigation
Section intitulée « Méthodes d’investigation »- Reconstituer le graphe d’attaque initial :
Utiliser BloodHound pour corréler les relations d’approbation (
TrustedBy), les appartenances de groupes cross-domaines (MemberOf) et les sessions actives enregistrées. - Analyser les TGS de type referral :
Rechercher dans les événements 4769 de tous les DC les demandes ciblant des comptes de confiance inter-domaines (
krbtgt/*). - Traquer les connexions réseau type 3 inter-domaines :
Isoler les événements 4624 sur les serveurs sensibles où
TargetDomainNamene correspond pas au domaine local.
Outils d’investigation
Section intitulée « Outils d’investigation »- BloodHound / SharpHound :
Fenêtre de terminal # Collecter les chemins d'attaque cross-domainesInvoke-BloodHound -CollectionMethod All,Trusts -Domain "corp.local" - Kansa / log parser :
Fenêtre de terminal Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} |Where-Object { $_.Properties[7].Value -eq 3 -and $_.Properties[5].Value -ne $env:USERDOMAIN } |Select-Object TimeCreated, @{N='Domain';E={$_.Properties[5].Value}}, @{N='User';E={$_.Properties[4].Value}}, @{N='IP';E={$_.Properties[18].Value}}
Points clés à retenir
Section intitulée « Points clés à retenir »- Les sauts inter-domaines s’appuient sur : approbations Kerberos/NTLM, FSP préexistants, ou vol de sessions en mémoire.
- L’injection
sIDHistoryfonctionne par défaut en intra-forêt, mais est neutralisée par le SID Filtering inter-forêts. - La détection repose sur la corrélation croisée des Events 4769 sur les KDC et Events 4624 sur les cibles.
Références et approfondissements
Section intitulée « Références et approfondissements »- Microsoft Learn: Kerberos Authentication across Domains
- Fiche 16 — authentification inter-domaines : Kerberos referral et NTLM pass-through
- Fiche 17 — SID filtering et name suffix routing
- Fiche 18 — appartenance à des groupes inter-domaines et foreign security principals
- Fiche 23 — NetExec (nxc) : que prouvent réellement les résultats ?