Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Dvě zajímavosti ohledně změny hesla a zamykání uživatelských účtů v Active Directory
listopad 15
Dvě zajímavosti ohledně změny hesla a zamykání uživatelských účtů v Active Directory

Existuje velmi zajímavé chování Active Directory v případě, že si uživatel změní heslo (change password), nebo mu ho změní správce (reset password). Stejně zajímavá je druhá situace ohledně zamykání účtu (account lockout), auditu (account logon auditing) a jeho atributů badPasswordCount a badPasswordTime. Tedy v případě, že člověk použije "omylem" starší heslo, které už někdy měl, a přitom už teď má jiné.

Po změně hesla se ještě hodinu dá použít jeho starší hodnota

Podle http://support.microsoft.com/kb/906305 se od service pack 1 na Windows 2003 změnilo chování při ověřování NTLM a například i LDAP simple bind a to takto.

Jestliže se uživateli změní heslo, při NTLM, nebo LDAP simple bind ověření, se ještě hodinu může k přihlášení použít jeho původní hodnota. Řadiče domény (DC) mohou přece ukládat historii hesel, takže si předchozí hodnotu pamatují. Funguje to jen pro poslední heslo a jen pokud je historie hesel opravdu zapnuta v politice.

Proč se to takto nechová pro Kerberos? Nejspíš proto, že Kerberos je chápán jako bezpečnější a tak mu asi nechtěli dávat takovéto úlevy. Na druhé straně, Kerberos tikety platí obvykle 10 hodin, což může procentuálně vylepšit celý problém i bez téhle NTLM specialitky.

Funguje to jen pro síťová ověření. Lokálně (interactive), ani jako služba apod. to nefunguje. Tedy předpokládám právě proto, že tahle ověřování jsou Kerberos.

Na konec bych doplnil, že je samozřejmě možné tento časový limit jedné hodiny zkrátit pomocí registrové hodnoty OldPasswordAllowedPeriod.

Atribut badPasswordCount a badPasswordTime se neaktualizuje a účet se nezamyká, pokud se použije starší heslo

Podle článku http://technet.microsoft.com/en-us/library/cc780271(v=ws.10).aspx existuje od Windows 2003 speciální vlastnost nazvaná Password history check (N-2). Pokud použijete předchozí, nebo před-předchozí heslo k ověření, sice se nepřihlásíte, ale účet se vám nezamkne.

Opět se jedná o ochranu proti zbytečnému zamykání účtu kvůli kdovíjakým replikačním prodlevám po změně hesla. Samozřejmě že máte PDC, ale co když není občas dostupné, nebo ho třeba nechcete používat přes WAN linky (AvoidPdcOnWan).

Takže, pokud zkusíte použít starší heslo, které je na DC uloženo v historii hesel, prostě to nezamyká účet. Ano, do Event Viewer, do Security logu to zapíše korektně Failure Audit, že neplatí heslo (pre-authentication failed v případě Kerberos) a klienta to samozřejmě odmítne. Tedy pokud se nejedná náhodou o případ předchozí kapitoly.

Ale na badPasswordCount a badPasswordTime to nesahá. Takže tyto hodnoty to nemění (ani neresetuje) a tím pádem se ten účet kvůli těmto neúspěchům ani nezamkne. Tohle funguje bez ohledu na čas, takže navždycky, dokud je to heslo v historii, v loubce historie do dvou předchozích hesel.

Vadí to bezpečnostně? Moc ne. Z pohledu síťového klienta je to informace, že se nelze ověřit. Takže útočník to nepozná rozdíl mezi špatným heslem, nebo starým heslem.

Comments

Je to fakt tak?

No neviem ci je to celkom pravda, pretoze som sa stretol s nasledovnym pripadom. Predstav si, ze mas ucet v AD a ma Exchange mailbox. Ked zmenim heslo pre daneho uzivatela a niekde mam nastaveny Mail profil so starym heslom, tak mi to tradicne zablokuje ucet. Robi to preto, ze Outlook sa pokusa pripojit s ulozenym heslom do osprostenia, aj napriek tomu, ze vie, ze je zle heslo a pyta heslo od uzivatela.

Neraz som to riesil hladanim zaznamov v security eventvwr, ze odkial dany "utok" pochadza. Vacsinou to bol Outlook so starym heslom.
Ondrej Zilinec on 15.11.2013 21:35

W2003

Taktiez v clanku http://support.microsoft.com/kb/906305 pisu, ze Applies To len na W2003 SP1. Takze na vyssie ako W2003 SP1 to uz nie je tak? :)
Ondrej Zilinec on 15.11.2013 21:39

W2003 SP1

Takze som si preveril zakaznikov kde sa mi stala hore popisana situacia s uzamykanim hesla a vsade je W2008 R2 a u jedneho je W2003 SP2. Takze to vyzera, ze tato featura sa fakt tykala len W2003 SP1 a nefunguje na vyssich OS. Skoda :) Ci? :)
Ondrej Zilinec on 15.11.2013 21:45

Re: Dvě zajímavosti ohledně změny hesla a zamykání uživatelských účtů v Active Directory

No nám se parkrát stalo, že nám nějakej člověk hlásil, že si změnil heslo, ale pak se mu podařilo přihlásit se starým. Zřejmě na OWA. Vysvětlili jsme mu, že prostě kecá. Že by nekecal? :)
W2008
Borek on 15.11.2013 22:40

Re: Dvě zajímavosti ohledně změny hesla a zamykání uživatelských účtů v Active Directory

Psal jsem to proto, ze se mi to stalo a zkoumal jsem proc. Funguje to normalne i proti 2012. Zkousels simple bind a ntlm? Kerberos to nedela.
Ondass on 16.11.2013 10:07

Re: Dvě zajímavosti ohledně změny hesla a zamykání uživatelských účtů v Active Directory

Nic jsem nezkoušel. Jen jsem si vzpomněl na starý případy...
Borek on 16.11.2013 16:15

Stejne chovani

Potvrzuji, že přesně tak, jak popisuje Ondrej se to chová i nám - user nemá PC v AD, ale má v AD účet a Exchange mailbox. Outlookem leze do mailboxu a když si změní heslo do AD, tak mu to Outlook neúspěšnými pokusy zamkne.
Nijak jsem nad tím nepátral, nic jsem nezkoušel, beru to jako fakt :o))
RaT on 22.11.2013 14:43

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments