Vulnerabilità dell’autenticazione NTLM

Tubo / PipeMark Gamache ha pubblicato un dettagliato articolo in cui spiega come il furto di credenziali utilizzate per l’autenticazione NTLM sia più semplice di quanto si riteneva.

Fin’ora si credeva che l’unico modo per rubare la password di un utente tramite NTLM fosse un attacco MitM o il possesso di credenziali amministrative sul sistema vittima; entrambe le cose rendevano il furto delle credenziali un male minore, in quanto il sistema sarebbe stato già ampiamente compromesso.

Il protocollo di autenticazione NTLM prevede quattro protocolli diversi in ordine crescente di sicurezza: LM, NTLM, NTLM con session security e NTLMv2, l’ultimo dei quali è l’unico a non essere interessato da questa vulnerabilità.

Mark ha scoperto che attraverso Cloudcracker (o servizio analogo) è possibile eseguire un attacco a forza bruta per ottenere l’hash NTLM; se la vittima utilizza Windows XP è possibile scoprire la sua password nel giro di una notte.

Il problema interessa particolarmente i client XP, i server 2003 (e precedenti) e gli ambienti eterogenei (Samba, Macintosh); da Vista in avanti i client utilizzano NTLMv2 ed escludono gli altri protocolli per default. Stiamo parlando di una percentuale di installato che varia dal 20% al 50%, a seconda delle fonti statistiche e dei contesti.

NTLMv2 è supportato fin da NT 4.0 e Samba lo supporta da molto tempo (client ntlmv2 auth), ma molti SysAdmin preferiscono lasciare abilitato NTLM sia per abitudine sia per pigrizia.

Nei sistemi Windows il tipo di protocollo di autenticazione minimo accettato è controllato dalla chiave di registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel in cui un valore di 3 è il minimo accettabile e 5 è quello più sicuro per le workstation. Lo scenario si complica, infatti, in quanto in un ambiente gestito le workstation espongono dei servizi di amministrazione (ADMIN$, C$, eccetera), diventando, di fatto, dei server che possono essere compromessi per venire utilizzati come base di attacco.

La situazione si complica ulteriormente perché i browser di Internet tentano sempre di eseguire un’autenticazione NTLM indipendentemente dalle zone di sicurezza impostate per i protocolli diversi da HTTP. Un’organizzazione può bloccare quei protocolli sul firewall perimetrale, ma un portatile che lascia l’ambiente protetto e si collega all’esterno tenterà l’autenticazione NTLM su un URL del tipo file://nomeserver/nomecondivisione utilizzando le credenziali che ha in cache. Se la chiave di registro citata sopra non ha un valore adatto, è assai probabile che un attaccante riesca rubare le credenziali in cache e compromettere il laptop.

I nuovi sistemi client e server Windows hanno impostazioni predefinite che bloccano questo tipo di attacchi, ma spesso i default vengono modificati per supportare sistemi legacy, NAS, dispositivi multifunzione di rete, o sistemi operativi differenti.

Sarebbe buona cosa investire qualche ora per elevare i default di sicurezza e verificare se sia possibile elevare il livello di LmCompatibilityLevel senza compromettere la funzionalità della rete.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Un pensiero riguardo “Vulnerabilità dell’autenticazione NTLM”

Spazio per un commento