Slide - LaSER
Transcript
Slide - LaSER
Identificazione Password Sistema di autenticazione Gestione password e authentication policy Autenticazione e gestione utenti in ambiente Windows Roberto Paleari, Emanuele Passerini Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2008/2009 5 Novembre 2008 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Sommario 1 Identificazione 2 Password 3 Sistema di autenticazione 4 Gestione password e authentication policy Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Stand-alone e domini Il sistema windows è concepito con due modalità di gestione: Stand-alone (impossibile in grandi organizzazioni). Domini, per garantire una gestione centralizzata Domini possono formare una gerarchia Un server svolge il ruolo di domain controller (DC) Gli amministratori di dominio gestiscono tutte le risorse del dominio Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Principal Entità attive che devono essere autenticate dal sistema Principal possono essere: local user, aliases, domain user, gruppi, servizi, computer I principal hanno un nome simbolico (user name) ed un identificativo usato nell’ambito del sistema (SID) Local Security Authority (LSA): ogni sistema Windows possiede una sua built-in authority; gli utenti creati da LSA sono utenti locali, non hanno cioè diritti sulle risorse di dominio Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Tipi di principal Locali sono gestiti localmente, e sono visibili solo sulla macchina locale e.g. local system, local user Di dominio: Sono gestiti da domain admin attraverso un domain controller, sono visibili da tutti i computer del dominio e.g. domain users, Domain Admins alias Universal principals: e.g. Everyone alias Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Display principal Utenti locali e aliases: > net user > net localgroup Utenti Dominio, gruppi e aliases: > net user /domain > net group /domain > net localgroup /domain Membri di un gruppo: > net group Impiegati /domain Informazioni Utente: > net user diego /domain Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy SID – Security IDentifier valore numerico di lunghezza variabile che identifica in modo univoco un security principal il SO utilizza i SID per fare riferimento ad un security principal Esempio (user SID) revision number issuing authority subauthority identifier relative identifier S-1-5-21-1409082233-1343024091-839522115-1003 Note SID utenti locali ottenuti concatenando un RID ≥ 1000 al SID del computer Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Alcuni SID well-known issuing authorities SID predefiniti NT subauthorities gruppi predefiniti RID well-known SID S-1-2 S-1-5 S-1-1-0 S-1-5-4 S-1-5-11 S-1-5-13 S-1-5-21 S-1-5-32 S-1-5-32-544 S-1-5-32-545 S-1-5-32-547 S-1-5-...-500 S-1-5-...-501 S-1-5-...-1000 Roberto Paleari, Emanuele Passerini Nome Local Authority NT Authority Everyone Interactive Authenticated Users Terminal Server Users NT Domain Built-in Domain Administrators Users Power Users Administrator Guest primo utente creato Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Visualizzazione SID account C:\>psgetsid ... SID for \\SECLAB-WIN: S-1-5-21-1409082233-1343024091-839522115 C:\>psgetsid sicurezza ... SID for SECLAB-WIN\sicurezza: S-1-5-21-1409082233-1343024091-839522115-1003 C:\>psgetsid S-1-5-21-1409082233-1343024091-839522115-500 ... Account for SECLAB-WIN\S-1-5-21-1409082233-1343024091-839522115-500: User: SECLAB-WIN\Administrator Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Registro registro: database utilizzato da Windows per contenere dati di configurazione le entry sono chiamate keys registry editor (regedit.exe/regedt32.exe): tool per operare sul registro registry hive: gruppo di chiavi, sottochiavi e valori Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Registro Top level HKEY CLASSES ROOT: associazioni estensione → applicazione HKEY CURRENT USER: informazioni di configurazione relative agli utenti attualmente collegati HKEY LOCAL MACHINE: configurazione del computer HKEY USERS: i profili di tutti gli utenti presenti sul sistema HKEY CURRENT CONFIG: profili legati alle componenti hardware usate del computer in fase di boot Security-relevant HKEY LOCAL MACHINE\{SAM,Security,Software} HKEY CURRENT CONFIG HKEY USERS\DEFAULT Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Registro Top level HKEY CLASSES ROOT: associazioni estensione → applicazione HKEY CURRENT USER: informazioni di configurazione relative agli utenti attualmente collegati HKEY LOCAL MACHINE: configurazione del computer HKEY USERS: i profili di tutti gli utenti presenti sul sistema HKEY CURRENT CONFIG: profili legati alle componenti hardware usate del computer in fase di boot Security-relevant HKEY LOCAL MACHINE\{SAM,Security,Software} HKEY CURRENT CONFIG HKEY USERS\DEFAULT Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy “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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Generazione “hash” LM password maiuscolo, NULL-padded a 14 byte 7 byte high 7 byte low chiave stringa "KGS!@#$%" chiave DES DES stringa "KGS!@#$%" + “hash” LM (16 byte) Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Generazione “hash” LM password maiuscolo, NULL-padded a 14 byte crackabili separatamente 7 byte high 7 byte low chiave stringa "KGS!@#$%" chiave DES DES no caratteri minuscoli (facilita crack hash NT) stringa "KGS!@#$%" + “hash” LM (16 byte) Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Hash NT o NTLM (NT Lan Manager) Generazione hash NT password hash NT (16 byte) MD4 “vero” hash (MD4) supporta l’intero charset Unicode max 256 caratteri (127 per limiti della finestra di logon interattivo) no salting Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Recupero hash pwdump6 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) Esempio C:\Utils\pwdump6>pwdump6.exe 127.0.0.1 ... Administrator:500:6a98eb0fb88a449cbe6fabfd825bca61:a414171... laser:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae9... Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 successivaa 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. . . Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Syskey utility syskey.exe aggiunta a Windows NT 4.0 (SP3) per proteggere il database SAM gli hash vengono cifrati con una chiave 1 2 3 mantenuta nel registro ottenuta da passphrase inserita al boot 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Architettura sistema di autenticazione SAS Winlogon LSA MSV1 0 GINA SAM autenticazione completata Nuovo processo Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 lockdown del desktop caricamento profilo utente gestione screen saver Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy Gestione password snap-in MMC “Utenti e gruppi locali”: creazione/rimozione utenti e gruppi modifica/rimozione password utenti gestione membership gruppi unlocking utenti ... Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 computer locale logon via Terminal Service ... Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows Identificazione Password Sistema di autenticazione Gestione password e authentication policy 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 Roberto Paleari, Emanuele Passerini Autenticazione e gestione utenti in ambiente Windows