Autenticazione e gestione utenti in ambiente Windows

Transcript

Autenticazione e gestione utenti in ambiente Windows
Password
Sistema di autenticazione
Gestione password e authentication policy
Autenticazione e gestione utenti in ambiente
Windows
Roberto Paleari, Alessandro Rinaldi
Università degli Studi di Milano
Facoltà di Scienze Matematiche, Fisiche e Naturali
Anno Accademico 2007/2008
17 Ottobre 2007
Roberto Paleari, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
Password
Sistema di autenticazione
Gestione password e authentication policy
Sommario
1
Password
2
Sistema di autenticazione
3
Gestione password e authentication policy
Roberto Paleari, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
Password
Sistema di autenticazione
Gestione password e authentication policy
Hash NT
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows
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, Alessandro Rinaldi
Autenticazione e gestione utenti in ambiente Windows