Andrea Pierini Consulente senior per la sicurezza

Mentre scrivevo un post sul blog dedicato a NTLMv1 e Windows Server 2025, mi è tornato in mente un problema noto da tempo, ma ancora spesso frainteso: l'impostazione errata dei livelli di autenticazione LAN Manager. Questa impostazione di autenticazione specifica il protocollo challenge-and-response utilizzato per gli accessi di rete quando Kerberos non è negoziato.


Perché è sconsigliabile utilizzare il livello di autenticazione 2 (o inferiore)

Uno degli errori di configurazione più comuni che riscontro negli ambienti Active Directory è l'impostazione del livello di autenticazione LAN Manager a 2 o inferiore sui controller di dominio (DC). Questa autenticazione può essere configurata in due modi:

  • Tramite Criteri di gruppo: Network security: LAN Manager authentication level
  • Direttamente tramite la chiave di registro: HKLM\System\CurrentControlSet\Control\Lsa\LmCompatibilityLevel

Il motivo per cui l'autenticazione viene impostata su 2 è quasi sempre lo stesso: "Abbiamo applicazioni legacy che eseguono l'autenticazione utilizzando NTLMv1 e non possiamo rischiare di comprometterne il funzionamento".

Questa logica è comprensibile. Tuttavia, porta a un errore sottile ma fondamentale.


Qual è la differenza tra i livelli di autenticazione 2 e 3 di LAN Manager?

L'impostazione del livello di autenticazione di LAN Manager controlla sia il comportamento di autenticazione in entrata che quello in uscita, che non sono la stessa cosa.

Impostare il livello su 2 significa che:

  • Il DC accetta l'autenticazione NTLMv1 in entrata.
  • Il DC utilizza anche NTLMv1 per avviare connessioni in uscita.

Il secondo punto crea una vulnerabilità.

Al contrario, impostare il livello su 3 significa che:

  • Il DC accetta ancora NTLMv1 in entrata (quindi i client legacy continuano a funzionare).
  • Il DC non può inviare connessioni in uscita NTLMv1.

In altre parole, l'utilizzo del livello 3 preserva la compatibilità eliminando al contempo una superficie di attacco significativa.


Perché l'invio di NTLMv1 da un DC è pericoloso

I DC sono obiettivi di alto valore. Se un aggressore riesce a costringere un DC a effettuare un tentativo di autenticazione in uscita (tramite tecniche quali PrinterBug, DFSCoerce, PetitPotam o metodi di coercizione simili) e se tale autenticazione utilizza NTLMv1, la risposta acquisita è notevolmente più debole rispetto a quella che utilizza NTLMv2.

Le risposte NTLMv1 possono spesso essere violate rapidamente utilizzando hardware moderno o tabelle precalcolate. Di conseguenza, un aggressore può ottenere l'hash NT della password dell'account del computer.

Ma non finisce qui...ed è qui che la differenza diventa davvero fondamentale.

Gli aggressori non hanno nemmeno bisogno dell'hash NT.

Invece, possono inoltrare l'autenticazione NTLMv1 forzata direttamente a un altro DC su cui non è applicato il binding del canale LDAPS (un'altra configurazione errata allarmante e comune). Inoltrando l'autenticazione dell'account macchina del DC tramite LDAP, l'autore dell'attacco
può eseguire uno dei due attacchi devastanti:

Entrambi i percorsi portano allo stesso risultato: il controllo totale sul DC. Dal momento della coercizione iniziale alla compromissione completa del dominio può trascorrere meno di un minuto.

Non è necessario alcun cracking dell'hash. Non sono richiesti privilegi elevati per l'avvio. È sufficiente un DC compatibile con NTLMv1 e l'assenza di applicazione del binding del canale LDAP.


Il vantaggio pratico

Se il motivo per cui si mantiene il livello di autenticazione 2 (o inferiore) di LAN Manager è la compatibilità con le applicazioni legacy, è possibile passare al livello 3 fin da subito senza compromettere il funzionamento di tali applicazioni.

Potresti voler riservare i livelli 4 e 5 per quando sarai pronto a deprecare completamente LM e NTLMv1 nel tuo ambiente, poiché tali livelli iniziano a rifiutare l'autenticazione NTLMv1 in entrata. (Nota: in Windows Server 2025, le connessioni in uscita che utilizzano LM e NTLMv1 non sono più consentite).

Tieni presente questa progressione:

  • Livello 2: il DC accetta l'autenticazione LM e NTLMv1 in entrata e invia NTLMv1 in uscita. Le app legacy funzionano, ma i DC sono esposti.
  • Livello 3: il DC accetta l'autenticazione LM e NTLMv1 in entrata, ma non invia NTLMv1 in uscita. Le app legacy continuano a funzionare e i DC sono protetti.
  • Livello 4: il DC invia NTLMv2 in uscita, rifiuta LM in entrata, ma accetta comunque NTLMv1 in entrata. È compatibile con la maggior parte delle applicazioni e protegge i tuoi DC.
  • Livello 5: il DC rifiuta completamente tutte le autenticazioni LM e NTLMv1 in entrata e in uscita. Questo livello garantisce un rafforzamento totale, ma le app legacy non funzionano più.

Se gestite dei DC in un ambiente con requisiti di autenticazione legacy, il livello 3 dovrebbe rappresentare il vostro standard minimo. Impostare il livello di autenticazione di LAN Manager al livello 3 è una modifica a basso rischio e ad alto rendimento che viene spesso trascurata a causa di pregiudizi profondamente radicati in merito alla compatibilità.