(C) Ondřej Ševeček sevecek. com Windows User Group.CZ Troubleshooting Active Directory #1
Obsah přednášky Autentizační metody NTLM autentizace ve Windows Kerberos v5 autentizace ve Windows Synchronizace času Active Directory a DNS Logon process Nástroje pro řešení problémů Active Directory a Kerberos Inteoperabilita
Autentizační metody NT Lan Manager (NTLM) Challenge – response autentizace Používaná staršími OS Windows 9x, NT, MS-DOS, OS/2 Kompatibilita s Windows 2000, XP, 2003, … Několik verzí LM, NTLM, NTLMv2 Kerberos v5 Vztahy důvěry podobně jako PKI Jen Windows 2000, XP, 2003, … Interoprabilita (MIT Kerberos server)
Authentication Provider Security Support Provider (SSP) .DLL instalovatelný modul HKLM \ System \ CurrentControlSet \ Control \ LSA \ AuthenticationPackages MSV1_0 – NTLM Kerberos SChannel – SSL, TLS WDigest – digest authentication Musí být vyzkoušeny a podepsány MS
NT Lan Manager (NTLM) Challenge – response autentizace Prokazování identity klienta na základě znalosti sdíleného tajného hesla Heslo necestuje sítí v otevřené podobě Autentizuje se pouze klient serveru, nikoliv server klientovi – není to mutual autentizace Neposkytuje delegování identity (identity delegation) Různé délky hesla v různých verzích protokolu Náchylné na reply attack Všechny systémy Windows obsahují NTLM Security Support Provider (NTLMSSP) Passthrough autentizace vyžaduje konektivitu serveru a DC
Průběh autentizace NTLM Type 1 Type 2 Klient Jméno počítačeDoména Chci se autentizovat LM vs. NTLMv2 … Tohle mi zašifruj naším heslem Challenge (64 bit) Type 3 LM / LMv2 Posílám odpověď NTLM / NTLMv2 Server Jméno uživateleDoménaJméno stanice
NT Lan Manager (NTLM) LM Response (< 3*7 byte DES) „7“ znaků heslo velkými písmeny, DES56(Challenge) NTLM Response (< 3*7 byte DES) MD4 hash (128 bit) hesla, DES56(Challenge) NTLMv2 a LMv2 Response (2*16 byte MD5) Stejné heslo pro různé servery vypadá jinak Obsahuje časové razítko (timestamp) Obsahuje client challenge pro mutual authentication Používá MD4 a HMAC-MD5 hash (128 bit) LMv2 pouze kvůli pass-through kompatibilitě Autorizační data jsou digitálně podepsána
Útok LM Metoda Heslo uživatele HESLOUZIVATELE N 14 HESLOUZ7IVATELE7 LM16 8 HASH Registry LM Hash Hash #17Hash #27Hash # DES Challenge8DES Challenge8DESChallenge8DES LM Response #1 24 LM Response #2LM Response #3 0xaad3b435b5 1404ee Heslo <= 7
Útok NTLM Metoda Heslo uživateleN NTLM Hash16 Registry LM Hash Hash #17Hash #27Hash # MD4 (RFC 1320) Challenge8DESChallenge8DESChallenge8DES NTLM Response #124NTLM Response #2NTLM Response #3
Útok NTLMv2 Metoda Heslo uživateleN NTLM Hash16 Registry USER NAMEN Blob N MD4 (RFC 1320) NTLMv2 Response N TARGET SERVER NAME NTLMv2 Hash16 HMAC-MD5 (RFC 2104) Timestamp Client Challenge HMAC-MD5 (RFC 2104) Challenge Hashed value of blob16BlobN Target Info
Útok LMv2 Metoda Heslo uživateleN NTLM Hash16 Registry USER NAMEN 8 MD4 (RFC 1320) LMv2 Response 24 TARGET SERVER NAME NTLMv2 Hash16 HMAC-MD5 (RFC 2104) Client Challenge HMAC-MD5 (RFC 2104) Challenge Hashed value of challenges16Client Challenge8 8
NTLM Passthrough autentizace KlientServer Klient DC Server
NTLM autentizace ve Windows Registrové nastavení ve Windows HKLM \ System \ CurrentControlSet \ Control \ LSA LMCompatibilityLevel = REG_DWORD
NTLM autentizace ve Windows Group Policy Windows 2000 Windows XP/2003
NTLM kompatibilita ve Windows Windows 2000, XP, 2003, … NTLMv2, LMv2 a starší Windows 95, 98, NT4.0 NTLM, LM Po instalaci “Directory Services Client” (DS Client) NTLMv2, LMv2 DS Client Nepodporuje Kerberos, pouze DNS vyhledávání NT4.0 SP4 – k dispozici na CD Windows 2000, … 9x –
Kerberos (RFC 1510) Trojhlavý pes hlídající vstup do podsvětí Authentication, Access Control, Auditing Symetrická kryptografie Vztahy důvěry podobně jako asymetrická Vzájemná (mutual) autentizace Klient si je jist, že hovoří se serverem, který zná jeho heslo Transitive trust Není potřeba passthrough autentizace Rychlejší než NTLM RC4-HMAC (128-bit) „Use DES encryption types for this account“ – uživatelský učet Delegation Využívá Active Directory k ukládání účtů
(Non)transitive Trusts Windows NT 4.0 Windows 2000
Authenticator Tajné heslo Kerberos – základ autentizace Klient Server Jméno uživatele Časové razítko Tajné heslo Mutual Auth.
User Master Key Server Master Key Key Distribution Center Klient Server Důvěra Databáze (Master keys) uživatelská hesla hesla serverů KDC Authentication Service Ticket Granting Service
User Master Key Server Master Key Key Distribution Center Klient Server Autentizace Důvěra Ticket Databáze (Master keys) uživatelská hesla hesla serverů KDC Authentication Service Ticket Granting Service
Server Master Key User Master Key Databáze (Master keys) uživatelská hesla hesla serverů TGT a TGS Klient Server KDC Autentizace Důvěra Authentication Service Ticket Granting Service TGT TGS TGT TGS TGT TGS Ticket-Granting Ticket Ticket Granting Service
Kerberos Ticket Bezpečný přenos session key Session key používán k šifrování komunikace klient-server, klient-KDC Bezpečnější než šifrování přihlašovacím heslem (master key) Session key náhodně generován KDC při přihlašování Použitelný jen omezenou dobu Časové razítko (timestamp) zajišťuje ochranu proti replay attack Klient ukládá tikety do cache (non-paged) –State-less na straně serveru –Pouze po dobu logon session Session key je možno použít také k podepisování a šifrování další komunikace – SMB Signing
Kerberos autentizace – TGT Chci se přihlásit Moje jméno je Ondra Klient KDC AS Master Key (heslo) Ondra 15:25:03 TGT Klient KDC AS Authenticator Uživatel: Ondra TTL, Flags KDC Master Key KDC Session Key Master Key (heslo) KDC Session Key
Kerberos autentizace – TGS Chci se připojit k Serveru TGT Klient KDC TGS KDC Session Key Ondra 15:27:18 TGS Klient KDC TGS KDC Session Key Server Session Key Authenticator Jméno serveru: Server Server Master Key Server Session Key Jméno klienta: Ondra TTL, Flags
Kerberos autentizace – Server Chci se k tobě připojit TGS KlientServer Server Session Key Ondra 15:39:25 KlientServer Authenticator OK. Taky se autentizuji TGS Server Session Key Server 15:39:48 Authenticator
Kerberos autentizace – Celek Klient User MK Authenticator Server KDC TGS KDC AS User MK KDC SK KDC MK KDC SK Authenticator KDC SK Server SK Server MK Server SK KDC MK KDC SK Server SK Authenticator Server SK Data … Server MK Server SK
Použití vs. trvanlivost klíčů KDC Session Key KDC Master Key User Master Key Server Master Key Server Session Key Nebezpečí off-line brute force útoku Četnost použití klíče Trvanlivost klíče KDC Session Key (TGT lifetime 10 hours) KDC Master Key (8 dní default) User Master Key (40 dní default) Server Master Key (30 dní default) Server Session Key (TGS lifetime)
Časová synchronizace 1.Klient požaduje službu po serveru 2.Authenticator je poslán na server Obsahuje timestamp klienta (GMT) 3.Vejde se timestamp do limitu (5 min.)? Pokud ano, pokračuje se následujícím krokem Pokud ne, server pošle klientovi svůj lokální čas a klient vytvoří nový authenticator a předá ho serveru 4.Server prohlédne svou lokální cache Pokud v ní již takový tiket existuje, požadavek je zamítnut (replay attack)
Časová synchronizace PDC root domain PDC child domain PDC root domain Member Server Workstation
Vyhledávání DC – DNS DNS Vyhledávání DC Už ne NetBIOS SRV záznamy Vliv topologie „sites“ DS Client Vyhledávání pomocí DNS i pro starší klienty
Spolupráce DC – DNS Služba NetLogon Při startu PC provádí dynamickou registraci SRV a A záznamů daného DC do DNS SRV – _msdcs. SRV – gc._msdcs. Přeregistrace každých 60 min. Secure Dynamic Update Vypnutí automatické registrace (restart služby) HKLM \ System \ CurrentControlSet \ Services \ NetLogon \ Parameters UseDynamicDNS = REG_DWORD = 0 / 1 RegisterDNSARecords = REG_DWORD = 0 / 1 Manuální registrace DNS záznamů %systemroot% \ System32 \ Config \ NetLogon.DNS Deregistrace při odinstalaci (DCPROMO) Vyžaduje korektní shutdown kvůli likvidaci RR.
Přihlášení do domény Ondra … PC01 czech.world.local Uživatel: Ondra Počítač: PC01 PC01 TGT Request TGT 1 2 TGS Request pro PC01 TGS pro PC01 3 4
Přihlášení do trusted domény 1 Uživatel se přihlašuje na počítač v jiné doméně Ondra … PC01 world.local (root) france.world.localczech.world.local Uživatel: Ondra Počítač: PC01 GC Global Catalog
Přihlášení do trusted domény 2 world.local (root) france.world.localczech.world.local Uživatel: Ondra Počítač: PC01 TGT Request TGT 1 2 TGS Request pro PC01 TGS pro worl.local 3 4 REFERAL ticket GC Global Catalog
Přihlášení do trusted domény 3 world.local (root) france.world.localczech.world.local Uživatel: Ondra Počítač: PC01 TGS Request pro PC01 TGS pro worl.local 3 4 REFERAL ticket TGS Request pro PC01 TGS pro france.local 5 6 REFERAL ticket
Short-cut trusts Počítač: PC01 Uživatel: Ondra
Účty pro autentizaci Účet počítače - host01$ Heslo uloženo v registrech MD4 hash hesla uložena v Active Directory HKLM \ System \ CurrentControlSet \ Services \ Netlogon \ Parameters MaximumPasswordAge = REG_DWORD Účet uživatele – user5 Heslo uloženo v mozku (čipové kartě) MD4 hash uložena v Active Directory Domain Group Policy – Account Policies Domain trust – subdomain$$ Heslo i hash uloženy v příslušné Active Directory Musí existovat 2 účty pro vzájemnou důvěru „Když někomu věřím, mám u něho účet“ Krbtgt Účet Kerberos KDC s master heslem pro šifrování session key v TGT
Service Principal Name – SPN Identifikace služby Připojeno k účtu služby uživatelskému účtu pod kterým služba běží účtu počítače pod kterým služba běží Unikátní v celém forestu Formát SPN ServiceClass / Host:[Port] / [Service-Name] www / srv01:80 / PrvniWWWServer TGS se generuje pro příslušné SPN Nikoliv pro účet počítače, ale pro účet pod kterým běží služba Master key se získá z daného účtu
TGT – Ticket-Granting Ticket KDC Session Key Privilege Attribute Certificate Master Key KDC Session Key Uživatel: Ondra TTL, Flags Privilege Attribute Certificate KRBTGT Master Key KDC Session Key Global Groups Domain Local Groups Universal Groups DC GC User RightsDC Master Key PAC Hash KRBTGT Key PAC Hash
Privilege Attribute Certificate Informace pro autorizaci Nemění se po celou dobu logon session Alespoň jeden GC (Global Catalog) musí být přítomen, aby bylo možno uživatele nalogovat Výjimkou je skupina „Administrators“ musí být přihlásitelná i bez GC HKLM \ System \ CurrentControlSet \ Control \ LSA IgnoreGCFailures KDC ho přidává do všech TGS Cílový server podle PAC přihlásí uživatele Digitálně podepsáno Nelze změnit MITM (na rozdíl od NTLM)
Doménové skupiny Domain Local Group Použitelné pouze na prostředcích v dané doméně Tyto skupiny ani jejich členství se neukládá v GC Členem může být kdokoliv Global Group Použitelná na prostředcích ve všech doménách Tyto skupiny se ukládají v GC, jejich uživatelé nikoliv Členem nesmí být Domain Local Group Universal Group Použitelná kdekoliv Členství i samotné skupiny jsou uloženy v GC Členem nesmí být Domain Local Group
Doménové skupiny
Startování počítače DHCP konfigurace interface DNS dotaz na zjištění adresářové služby _ldap._tcp.._sites.dc._msdcs. Vytvoří se secure channel na DC Služba Netlogon, šifrovaný kanál DNS dotaz na zjištění KDC _kerberos._tcp.._sites.dc._msdcs. Autentizace počítače – Kerberos Autentizace všech služeb co neběží pod Local System LDAP dotaz na zjištění DN objektu počítače LDAP dotaz na zjištění Group Policy Objektů GPO je stažena pomocí sdílení souborů a DFS \\domain\sysvol\policies\ Synchronizace času DNS dynamic update klienta Ukončení všech spojení s DC
Nástroje pro Kerberos NLTEST Support Tools, Install CD – SUPPORT / TOOLS NETDOM Support Tools SETSPN Resource Kit, KERBTRAY, KLIST Resource Kit WHOAMI Support Tools NET TIME PORTQRY
NLTEST /DCLIST: Vypíše seznam DC pro příslušnou doménu /WHOWILL: Zjistí, zda je možno daného uživatele přihlásit /FINDUSER: Zjistí jméno důvěryhodné (trusted) domény, která je schopna přihlásit daného uživatele /SC_QUERY: zjistí stav secure channelu s danou doménou /SC_RESET: Vyresetuje secure channel s danou doménou /DSGETDC: /PDC /GC Vypíše jména PDC a Global Catalog serverů v dané doméně
NETDOM ADD computer /DOMAIN: /OU: Vytvoří doménový účet pro počítač JOIN computer /DOMAIN: /OU: Vzdáleně připojí počítač do domény a restartuje REMOVE computer /DOMAIN: Vzdáleně odpojí počítač z domény TIME computer /DOMAIN: Synchronizuje čas mezi stanicí a doménovým kontrolerem RESETPWD computer /DOMAIN: Vzdáleně resetuje heslo počítače na stanici i na doméně QUERY /DOMAIN: DC PDC FSMO Vypíše seznam DC, PDC a single master operation rolí
WHOAMI a NET TIME WHOAMI /ALL Vypíše informace pro aktuálního uživatele: –Jméno účtu a SID –Skupiny a SID –Práva uživatele NET TIME \\computer /SETNTP:server NET TIME \\computer /SET Nastaví nový NTP (Network Time Protocol) server pro službu „Windows Time“ Nastaví příslušný čas podle NTP serveru HKLM \ System \ CurrentControlSet \ Services \ w32time \ Parameters NTPServer = REG_SZ = jméno/IP
KLIST, KERBTRAY a SETSPN KERBTRAY, KLIST TICKETS Seznam a informace o tiketech aktuálně v cache KLIST TGT TGT daného uživatele KLIST PURGE Smazání všech tiketů z cache SETSPN –L computer Vypíše seznam všech SPN registrovaných pro příslušný stroj SETSPN –D SPN computer Vymaže příslušnou registraci SPN
KERBTRAY a SETSPN Prohlídka Kerberos tiketů a SPN
Porty a protokoly Kerberos UDP Port 88 Standart podle RFC 1510 Kerberos TCP Port 88 Microsoft implementace (revised RFC 1510) může použít TCP, pokud velikost paketu přesáhne UDP MTU = 2kB HKLM \ System \ CurrentControlSet \ Control \ LSA \ Kerberos \ Parameters MaxPacketSize = REG_DWORD = HKLM \ System \ CurrentControlSet \ Services \ Netlogon \ Parameters KDCServerPort = REG_DWORD LDAP TCP a UDP Port 389 LDAP SSL TCP a UDP Port 636 DNS UDP Port 53 SMB TCP Port 445 RPC dynamické porty
Group Policy a Kerberos Domain Security Policy Pouze na doméně! Jinde nemá cenu nastavovat (podobně všechny „Account Policies”)
Kerberos Interoperabilita Windows KDC Účty definovány pro Windows i Unix stroje a uživatele Unix KDC Účty definovány pro Windows i Unix Windows stanice nejsou v doméně Důvěra mezi Unix a Windows doménou Nejjednodušší řešení se všemi výhodami KSETUP – Resource Kit
Single Sign On SSO – jedno přihlašovací jméno a heslo do různých služeb různých výrobců Implementace založené na Kerberosu Různé webové implementace Poskytované jako služba za poplatek Microsoft.NET Passport (160 mil. členů) AOL Liberty Alliance Project
(C) Ondřej Ševeček sevecek. com Konec: Troubleshooting Active Directory #1 Děkuji za pozornost