Aller au contenu

NTLM : protocole authentification LAN Manager New Technology Microsoft

NTLM : protocole authentification LAN Manager New Technology Microsoft

Section intitulée « NTLM : protocole authentification LAN Manager New Technology Microsoft »

NTLM est un protocole d’authentification largement utilisé dans les environnements Microsoft. Les protocoles LM (LAN Manager) et NTLM sont des mécanismes d’authentification, notamment NTLM qui reste prédominant. Ces protocoles reposent sur un échange de trois messages en mode défi-réponse pour valider l’identité d’un client. Cet article détaille leur fonctionnement, les calculs cryptographiques impliqués, leurs faiblesses majeures, ainsi que les stratégies de durcissement recommandées.

→ Lire l’explication complète de la marmotte

Comprendre le protocole NTLM : échanges et calculs de réponse

Section intitulée « Comprendre le protocole NTLM : échanges et calculs de réponse »

Le protocole NTLM s’appuie sur un échange en trois messages entre le client et le serveur :

  1. NEGOTIATE : Le client initie la négociation en envoyant ses capacités (versions NTLM supportées, options cryptographiques).
  2. CHALLENGE : Le serveur répond avec un défi (challenge) aléatoire de 8 octets, destiné à être utilisé dans le calcul de la réponse.
  3. AUTHENTICATE : Le client renvoie une réponse calculée à partir du défi, prouvant qu’il connaît le secret (mot de passe).

Le secret partagé est dérivé du mot de passe utilisateur, transformé en hash NT (NT Hash) :

  • Le NT Hash est le résultat de la fonction MD4 appliquée sur le mot de passe Unicode de l’utilisateur.
  • En NTLMv1, la réponse est calculée en divisant le NT Hash en trois clés DES (Data Encryption Standard) qui chiffrent le challenge serveur.
  • En NTLMv2, plus sécurisé, la réponse intègre un HMAC-MD5 (Hash-based Message Authentication Code) sur le challenge et un client challenge (nonce), ainsi que des informations supplémentaires (timestamp, cible), augmentant la résistance aux attaques par rejeu.

Le passage de NTLMv1 à NTLMv2 améliore la robustesse cryptographique en introduisant un salage (nonce client) et un hachage plus résistant.

Sécuriser NTLM : faiblesses connues et mesures de durcissement

Section intitulée « Sécuriser NTLM : faiblesses connues et mesures de durcissement »
  • Pass-the-Hash (PtH) : L’attaquant qui obtient le NT Hash peut s’authentifier sans connaître le mot de passe en réutilisant ce hash.
  • Relais NTLM : Un attaquant intercepte un échange NTLM et le relaie vers un autre service pour s’authentifier à la place de la victime.
  • Absence de salage dans NTLMv1 : Le manque de nonce client rend les réponses vulnérables aux attaques par rejeu et pré-calcul (rainbow tables).
  • Signature SMB (Server Message Block) : Activer la signature SMB permet de garantir l’intégrité des messages et limite les attaques de relais.
  • Extended Protection for Authentication (EPA) : EPA lie l’authentification au canal sécurisé (TLS (Transport Layer Security), channel binding), empêchant les attaques de relais.
  • Migration vers Kerberos : Kerberos, protocole d’authentification basé sur tickets, est recommandé en remplacement de NTLM pour ses garanties cryptographiques et sa résistance aux attaques PtH et relais.

Déployer un environnement durci avec NTLM et alternatives

Section intitulée « Déployer un environnement durci avec NTLM et alternatives »

Pour limiter les risques liés à NTLM, il est crucial de configurer les environnements Microsoft en suivant ces recommandations :

  • Désactiver LM et NTLMv1 via les stratégies de groupe (GPO) pour forcer l’usage de NTLMv2.
  • Activer la signature SMB sur tous les serveurs et clients.
  • Mettre en œuvre EPA sur les services IIS et autres applications compatibles.
  • Prioriser Kerberos dans les environnements Active Directory, en configurant correctement les SPN (Service Principal Names).
  • Surveiller et limiter les comptes ayant des droits élevés pour réduire l’impact d’un éventuel vol de hash.

Exemple : désactivation de NTLMv1 et activation de la signature SMB via GPO

Section intitulée « Exemple : désactivation de NTLMv1 et activation de la signature SMB via GPO »
Fenêtre de terminal
# Exemple PowerShell pour configurer la stratégie locale sur un serveur Windows
# Désactiver NTLMv1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" -Name "NTLMMinClientSec" -Value 0x20080000
# Activer la signature SMB obligatoire côté client
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "RequireSecuritySignature" -Value 1
# Activer la signature SMB obligatoire côté serveur
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "RequireSecuritySignature" -Value 1
# Redémarrer les services pour appliquer les changements
Restart-Service -Name LanmanServer, LanmanWorkstation

Ce script force l’utilisation de NTLMv2 et impose la signature SMB, réduisant significativement les vecteurs d’attaque.

Q1 : Pourquoi NTLM est-il encore utilisé alors que Kerberos est plus sécurisé ?
NTLM reste utilisé pour la compatibilité avec des systèmes plus anciens, des environnements hors domaine Active Directory, ou des applications ne supportant pas Kerberos.

Q2 : Quelle est la différence principale entre NTLMv1 et NTLMv2 ?
NTLMv2 introduit un salage (nonce client), un timestamp et un hachage HMAC-MD5, améliorant la résistance aux attaques par rejeu et pré-calcul, contrairement à NTLMv1.

Q3 : Comment détecter une attaque Pass-the-Hash dans un environnement Windows ?
La surveillance des connexions anormales, l’analyse des logs d’authentification et l’utilisation d’outils spécialisés (ex : Sysmon, Microsoft ATA) permettent d’identifier des usages suspects de hash NT.

Q4 : Peut-on totalement éliminer NTLM dans un réseau Microsoft ?
Dans la plupart des cas, NTLM peut être désactivé si toutes les applications et services supportent Kerberos. Sinon, il faut au minimum limiter NTLMv1 et renforcer NTLMv2.

Les protocoles LM et NTLM, bien que toujours présents dans les environnements Microsoft, présentent des faiblesses cryptographiques et des vulnérabilités exploitables comme le pass-the-hash ou les attaques de relais. La compréhension précise de leur mécanisme d’échange (NEGOTIATE, CHALLENGE, AUTHENTICATE) et des calculs de réponse est essentielle pour évaluer les risques. Le durcissement passe par la désactivation de NTLMv1, l’activation de la signature SMB, la mise en œuvre d’Extended Protection for Authentication, et surtout la migration vers Kerberos. Ces mesures, combinées à une surveillance active, permettent de réduire significativement la surface d’attaque liée à NTLM.

Laisser LM et NTLMv1 actifs, ou NTLM sans signature ni liaison au canal, ouvre davantage qu’une faiblesse théorique. Un attaquant capable de provoquer une authentification vers une machine qu’il contrôle obtient une réponse calculée sur un défi qu’il a lui-même choisi, puis la casse hors ligne à loisir, sans produire un seul échec de connexion côté serveur. Relayée plutôt que cassée, la même authentification ouvre un partage de fichiers avec les droits de la victime, et les journaux attribuent l’accès à ce compte légitime, depuis l’adresse du relais. Tant que NTLM reste accepté quelque part, la migration vers Kerberos laisse en place la porte qu’elle devait fermer.

Lorsqu’un client demande l’accès à un service, le serveur ne lui demande pas directement son mot de passe. Il envoie d’abord une valeur imprévisible. Le client utilise alors cette valeur et une information dérivée de son mot de passe pour produire une réponse. Le serveur transmet cette réponse à l’autorité capable de vérifier le résultat attendu. Si les deux résultats correspondent, l’identité est acceptée.

L’échange comporte donc trois temps : le client annonce ses capacités, le serveur fournit sa valeur aléatoire, puis le client renvoie sa preuve. Le mot de passe ne circule pas tel quel. En revanche, une information dérivée de ce mot de passe peut devenir suffisante pour se faire passer pour le client si elle est volée.

Les anciennes versions produisent des réponses plus faciles à rejouer ou à casser. Une version plus récente ajoute des données variables, ce qui rend la réponse moins réutilisable. Mais le protocole reste exposé aux attaques de relais : un intermédiaire malveillant peut transmettre une authentification valide vers un autre service.

Le durcissement consiste donc à désactiver les anciennes versions, à protéger l’intégrité des échanges, à lier l’authentification au bon canal et à privilégier une authentification par tickets lorsque l’environnement le permet.

À lire aussi

Pages voisines

: les deux pages se citent l’une l’autre.