Acronimo di NT LAN Manager, NTLM è un protocollo di autenticazione utilizzato nei sistemi operativi Windows per verificare l’identità degli utenti e consentire loro l’accesso a risorse di rete protette. Introdotto da Microsoft, NTLM è ampiamente utilizzato in molte versioni di Windows, sebbene sia ormai considerato insicuro per via delle intrinseche problematiche che integra. Al suo posto, è consigliato l’utilizzo di protocolli più sicuri come Kerberos.
Come funziona NTLM
Quando un utente cerca di accedere a una risorsa di rete protetta, il server remoto richiede all’utente di autenticarsi. L’utente fornisce il proprio nome utente e una password.
La password dell’utente è trasmessa al server utilizzando una funzione di hashing. Il server, da parte sua, genera un numero casuale noto come challenge e lo invia all’utente. Il suo sistema utilizza la password per cifrare il challenge e restituire la risposta al server.
La risposta ottenuta viene quindi verificata lato server usando la password memorizzata: se il risultato corrisponde al challenge inviato in precedenza, l’utente risulta autenticato e ottiene l’accesso alla risorsa di rete.
Le vulnerabilità di sicurezza di NTLM
Come abbiamo accennato in apertura e spiegato in tanti nostri articoli, NTLM soffre di alcune limitazioni e vulnerabilità di sicurezza. Ad esempio, le risorse protette con NTLM sono esposte ad attacchi noti come NTLM Relay e pass-the-hash.
Nel caso dell’attacco NTLM Relay, l’attaccante intercetta il traffico di rete tra due dispositivi, uno dei quali sta cercando di autenticarsi utilizzando NTLM facendo leva su un server di destinazione. L’aggressore intercetta il challenge inviato dal server e lo inoltra a un’altra macchina posta nella stessa rete o in una rete diversa.
Quando il server di destinazione riceve il challenge NTLM, genera una risposta contenente la sfida cifrata con l’hash della password dell’utente. Questa risposta viene quindi inviata all’attaccante.
L’attaccante può utilizzare la risposta per autenticarsi presso il server originale, impersonando l’utente legittimo. Di fatto, è quindi possibile autenticarsi assumendo “l’identità” di un altro utente senza mai conoscerne la password effettiva.
Molto simile è l’attacco pass-the-hash che però si concentra sull’algoritmo di hashing della password. Innanzi tutto l’aggressore cerca di acquisire l’hash della password dell’utente-vittima.
Questa operazione può essere effettuata in vari modi, ad esempio estraendo l’hash dal contenuto della memoria del sistema dell’utente o ricorrendo a componenti malware. L’hash può essere quindi sfruttato in maniera diretta per autenticarsi come un altro utente. Anche in questo caso l’aggressione è condotta in porto senza conoscere la password reale dell’utente.
Windows 11 blocca gli attacchi a NTLM: ecco come
Windows 11 introduce una nuova funzione di protezione che evita la completa disattivazione di NTLM a livello di sistema operativo. Abilitando la misura di difesa descritta da Microsoft, non sarà più possibile sfruttare con successo gli attacchi NTLM Relay e pass-the-hash.
L’amministratore di sistema diventa in grado di bloccare l’invio delle informazioni NTLM attraverso il protocollo SMB, adoperato per la condivisione delle risorse sui sistemi Windows. In questo modo, si evita che l’hash delle password sia inviato a un server remoto.
Per attivare la policy di gruppo che blocca gli attacchi NTLM, a partire dalle prossime versioni di Windows 11 è sufficiente digitare Windows+R
, quindi gpedit.msc
e infine portarsi in corrispondenza della regola Configurazione computer\Modelli amministrativi\Rete\Workstation LANMAN\Blocco NTLM (LM, NTLM, NTLMv2). Con un doppio clic e la selezione dell’opzione Attivata, è possibile abilitare la nuova policy di sicurezza.
In alternativa, è possibile impostare la medesima regola ricorrendo alla seguente cmdlet PowerShell:
Set-SMbClientConfiguration -BlockNTLM $true
La modifica ha valore per l’intera macchina e, quindi, per tutte le condivisioni di rete nella loro interezza.
Ned Pyle (Microsoft) aggiunge che è possibile limitarsi alla protezione di singole condivisioni di rete usando il comando net use
o PowerShell:
net use \\server\share /BLOCKNTLM
New-SmbMapping -RemotePath \\server\share -BlockNTLM $true
La protezione contro gli attacchi a NTLM ha fatto la sua comparsa nella build 25951 di Windows 11 (versione di anteprima). Sarà aggiunta anche nelle future versioni stabili del sistema operativo.
A partire dalla build 25381 di Windows 11, Microsoft ha abilitato anche il meccanismo SMB signing per impostazione predefinita. SMB signing permette di verificare l’identità del mittente e del destinatario attraverso l’uso di firme integrate e hash “appesi” a ogni messaggio.
Credit immagine in apertura: iStock.com/da-kuk