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