Autenticazione e gestione utenti in ambiente Windows Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2007/2008 17 Ottobre 2007
Sommario 1 Password 2 3
Tipologie di password Una password non è memorizzata in chiaro Due formati (detti hash): hash LM obsolete ( 20 anni) hash NT a.k.a. Unicode hash o MD4 hash; utilizzate sui sistemi moderni Di default, una password di meno di 15 caratteri è memorizzata in entrambi i formati
Hash LM (LAN Manager) mantenuto per ragioni di compatibilità (es. Windows 95/98) non è un vero e proprio hash diversi problemi di sicurezza (vedi slide seguente) no salting Disabilitare hash LM Diversi metodi: HKLM\SYSTEM\CurrentControlSet\Control\Lsa (DWORD) NoLMHash = 1 opzione in Criteri locali\opzioni di protezione usare password di almeno 15 caratteri
Generazione hash LM password maiuscolo, NULL-padded a 14 byte 7 byte high 7 byte low stringa "KGS!@#$%" chiave DES + DES chiave stringa "KGS!@#$%" hash LM (16 byte)
Generazione hash LM password crackabili separatamente maiuscolo, NULL-padded a 14 byte stringa "KGS!@#$%" 7 byte high 7 byte low chiave chiave DES DES + hash LM (16 byte) no caratteri minuscoli (facilita crack hash NT) stringa "KGS!@#$%"
Hash NT Generazione hash NT password MD4 hash NT (16 byte) vero hash (MD4) supporta l intero charset Unicode max 256 caratteri (127 per limiti della finestra di logon interattivo) no salting
Database SAM (Security Accounts Manager) contiene informazioni su utenti e gruppi presenti nel sistema memorizzato nel registro: HKLM\SAM opera nel security context di LSA (Local Security Authority) necessari privilegi di System per accedervi: psexec.exe -i -s %windir%\regedit.exe
Recupero hash pwdump6 Esempio eseguire pwdump6 127.0.0.1 (come admin) dump hash presenti nel database SAM database SAM accessibile solo da SYSTEM pwdump6 fa DLL injection in lsass.exe John the Ripper supporta cracking di hash LM (e anche hash NT, se patchato) C:\Utils\pwdump6>pwdump6.exe 127.0.0.1... Administrator:500:6a98eb0fb88a449cbe6fabfd825bca61:a414171... laser:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae9...
Analisi database SAM 1 RID utente da HKLM\SAM\SAM\Domains\Account\Users\Names 2 aprire HKLM\SAM\SAM\Domains\Account\<RID>\V 3 offset nome utente *((DWORD*) 0x0c) + 0xcc; lunghezza nella DWORD successiva a 4 offset hash LM *((DWORD*) 0x9c) + 0xcc; lunghezza nella DWORD successiva 5 segue hash NT a tutte le DWORD sono little endian Nota gli hash ottenuti sono gli stessi restituiti da pwdump6? Non sempre...
Syskey Password utility syskey.exe aggiunta a Windows NT 4.0 (SP3) per proteggere il database SAM gli hash vengono cifrati con una chiave 1 mantenuta nel registro 2 ottenuta da passphrase inserita al boot 3 registrata su floppy a partire da Windows 2000 è abilitato di default (opzione 1) a gli hash sono mantenuti in memoria in chiaro (vedi pwdump6) a HKLM\System\CurrentControlSet\Control\Lsa
Architettura sistema di autenticazione SAS Winlogon GINA LSA MSV1 0 SAM autenticazione completata Nuovo processo
Componenti sistema di autenticazione: SAS e Winlogon SAS Secure Attention Sequence di default corrisponde alla sequenza di tasti CTRL+ALT+DEL winlogon.exe si registra per la SAS durante il boot, impedendo ad altri processi di intercettarla Winlogon (winlogon.exe) Gestisce interazioni sicure con l utente, tra cui: ricezione/dispatching SAS caricamento profilo utente lockdown del desktop gestione screen saver
Winlogon Gestione desktop Winlogon crea e gestisce il passaggio tra 3 desktop distinti: Winlogon secure desktop; solo Winlogon può accedervi anti-keylogger Screen-saver utilizzato per l esecuzione di uno screen saver Default utilizzato per l esecuzione della shell e altre applicazioni dell utente
Componenti sistema di autenticazione: GINA e LSA GINA Graphical Identification and Authentication (msgina.dll) processing SAS e attivazione shell utente a (default: explorer.exe) nella versione di default, mostra la dialog box per inserimento username/password personalizzabile per supportare diversi metodi di autenticazione a HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon LSA Local Security Authority (lsass.exe) subsystem che conserva tutte le informazioni relative alla sicurezza del sistema operativo locale si occupa (tra l altro) di verificare le credenziali utente raccolte da msgina.dll
Gestione password snap-in MMC Utenti e gruppi locali : creazione/rimozione utenti e gruppi modifica/rimozione password utenti gestione membership gruppi unlocking utenti...
Gestione authentication policy In Criteri di protezione locale (Pannello di controllo o MMC) è possibile configurare in modo granulare le politiche di autenticazione. Alcuni esempi: Criteri account\criterio password gestione password history impostazione lunghezza minima password impostazione durata minima/massima password conformità criteri di complessità... Criteri locali\assegnazione diritti utente definizione diritti utenti/gruppi, ad esempio: accesso via rete logon via Terminal Service logon computer locale...
Bibliografia Microsoft Press, Windows XP Professional Resource Kit, Second Edition Windows XP Security Guide http://www.microsoft.com/ technet/security/prodtech/windowsxp/secwinxp/default.mspx Threats and Countermeasures http://www.microsoft.com/ technet/security/guidance/serversecurity/tcg/tcgch00.mspx