
Laboratorio didattico che dimostra CVE-2021-36934 (HiveNightmare) - LPE di Windows tramite configurazione errata degli ACL della copia shadow.
Riprodurre e analizzare la vulnerabilità HiveNightmare in un ambiente di laboratorio controllato.
CVE-2021-36934, soprannominata "SeriousSAM" o "HiveNightmare", è una vulnerabilità di elevazione dei privilegi locale (LPE) che colpisce Windows 10 dalla versione 1809 in poi, le versioni iniziali di Windows 11, nonché Windows Server 2019 e 2022. Consente a un utente standard di duplicare e accedere a file di sistema protetti contenenti dati sensibili, come gli hash delle password locali. Il problema principale risiede in liste di controllo di accesso (ACL) configurate erroneamente, che concedono permessi di lettura a tutti gli utenti su file di sistema sensibili (in particolare i registry hive SAM, SYSTEM e SECURITY). Sebbene questi file rimangano bloccati durante il normale funzionamento, le loro copie di backup (tramite shadow copy/punti di ripristino) ereditano gli stessi permessi configurati erroneamente e diventano accessibili e sfruttabili da qualsiasi utente del sistema.
Per sfruttare la vulnerabilità sono necessari due prerequisiti: (1) Protezione di sistema attivata e (2) un punto di ripristino esistente. Questi elementi sono spesso presenti per impostazione predefinita sulle macchine Windows 10/11. L'implementazione si basa sull'estrazione delle copie dei file SAM, SYSTEM e SECURITY dalle shadow copy (punti di ripristino). Questi file, normalmente bloccati durante l'esecuzione del sistema, diventano accessibili tramite le loro copie snapshot che ereditano le stesse ACL degli originali.
Da un account utente senza privilegi, lo sfruttamento può essere ottenuto tramite script pubblici, il più noto dei quali è hivenightmare.exe, scritto in C. I tre file recuperati hanno ruoli complementari. SAM contiene gli hash delle password degli account locali (crittografati), SECURITY memorizza segreti LSA aggiuntivi (credenziali memorizzate nella cache, password dei servizi, anch'essi crittografati) e SYSTEM fornisce la chiave di decrittazione (BootKey). Per una rigorosa elevazione dei privilegi locale, solo SAM e SYSTEM sono necessari per estrarre gli hash NTLM. Una volta ottenuti questi file, strumenti come secretsdump.py o mimikatz possono decrittare gli hash ed eseguire attacchi pass-the-hash, oppure ottenere pieno accesso come amministratore tramite psexec.py.
L'implementazione dell'exploit si basa sull'estrazione dei registry hive di Windows (SAM, SYSTEM, SECURITY) dalle shadow copy/punti di ripristino, quindi sull'uso degli hash estratti per ottenere l'accesso come SYSTEM tramite secretsdump.py e psexec.py.
Piattaforma testata: Windows 10, build 1903 (aggiornamento di dicembre 2020).
1. Contesto: Versione di Windows Stiamo utilizzando una versione di Windows 10 (1903, aggiornamento di dicembre 2020) che contiene la vulnerabilità in esame.
2. Permessi sui File Sensibili Osserviamo che i permessi NTFS sui registry hive SAM, SYSTEM e SECURITY consentono agli utenti locali di avere accesso in Lettura, ereditato qui dalla cartella config.
3. Esecuzione di hivenightmare da un Utente Locale Senza Punto di Ripristino Quando si lancia hivenightmare.exe da un account locale senza punti di ripristino/shadow copy, lo strumento fallisce perché non riesce a trovare alcun punto di ripristino da sfruttare.
4. Attivazione della Protezione di Sistema e Creazione di un Punto di Ripristino
Per creare le condizioni necessarie all'estrazione degli hive, attiviamo la Protezione di sistema e poi creiamo manualmente un punto di ripristino. Una volta creato il punto di ripristino, hivenightmare potrà accedere alle copie dei file sensibili.

5. Estrazione degli Hive Sensibili Dopo aver creato il punto di ripristino, hivenightmare.exe viene lanciato nuovamente ed estrae con successo i file SAM, SYSTEM e SECURITY dalla shadow copy. Esistono molti altri script (C#, Go, PowerShell,...). Indipendentemente dalla tecnologia utilizzata, tutti gli script puntano allo stesso percorso:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[i]\Windows\System32\config\[SENSITIVE FILE]
6. Analisi su Kali: Recupero degli Hash con secretsdump.py I file estratti vengono trasferiti sulla macchina Kali. Utilizziamo secretsdump.py (Impacket) per elencare gli account e recuperare gli hash in chiaro.
7. Elevazione dei Privilegi: Riutilizzo dell'Hash tramite psexec.py Con l'hash estratto, utilizziamo psexec.py per autenticarci e aprire una sessione con privilegi SYSTEM, ottenendo il controllo completo della macchina.
La correzione ufficiale di Microsoft (KB5004605, luglio 2021) ripristina le ACL appropriate sui file interessati. Tuttavia, sono raccomandate diverse misure complementari. Innanzitutto, verificare manualmente i permessi su C:\Windows\System32\config per garantire che solo SYSTEM e gli amministratori abbiano accesso completo. In secondo luogo, eliminare le vecchie shadow copy create prima dell'applicazione della patch, poiché mantengono i permessi vulnerabili. Per ragioni operative (rischio di perdita di dati, impatto sugli utenti), l'eliminazione automatica dei vecchi punti di ripristino non è stata inclusa nella patch distribuita. Infine, monitorare gli accessi anomali alle shadow copy tramite i log degli eventi di sistema.
Qui dimostriamo come mitigare la vulnerabilità tramite la correzione manuale delle ACL e l'eliminazione delle shadow copy precedenti.
1. Correzione Manuale delle ACL Questo comando interrompe l'ereditarietà sulla cartella C:\Windows\System32\config.
2. Verifica Dopo la Correzione delle ACL L'esistenza del punto di ripristino creato prima della correzione consente ancora di estrarre gli hive dalla shadow copy associata.
3. Eliminazione delle Shadow Copy
4. Validazione Finale Dopo aver eliminato le vecchie shadow copy, l'estrazione degli hive fallisce e la vulnerabilità non è più sfruttabile da un account locale.
CVE-2021-36934 dimostra come una semplice configurazione errata delle ACL possa compromettere completamente la sicurezza del sistema Windows. La vulnerabilità sfrutta una funzionalità di sicurezza (i punti di ripristino) trasformata in vettore di attacco, consentendo a un utente senza privilegi e potenzialmente malintenzionato di ottenere pieno accesso come amministratore. In conclusione, CVE-2021-36934 evidenzia la necessità di verificare regolarmente i permessi di sistema e monitorare l'accesso ai file sensibili, anche nelle loro copie di backup.
Solo a scopo didattico. Non utilizzare su sistemi senza autorizzazione.