Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování
prosinec 02
Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování

Proč to píšu? Je to docela důležité kvůli možnosti vykrádat hesla z paměti počítačů.

A jak tedy? Úplně jednoduše. Jestli chcete vědět, jestli máte v síti NTLM ověřování na doménové účty - protože na lokální se ani jiné použít nedá - stačí zapnout auditování. Auditování Account Logon událostí na řadičích domény (DC). Ideálně přes Group Policy. Stačí pro řadiče domény, protože jinde to stejně ani nebude vidět.

Pro Windows 2003 DC je to záležitost Computer configuration - Policies - Windows settings - Security settings - Local policies - Audit policy - Audit logon events.

V Security logu na DC potom najdete tuto událost při každém úspěšném NTLM ověření doménového účtu:

Log: Security
Source: Security
Event category: Account logon
Event ID: 680
Event type: Success Audit
Message: Account used for logon by:
MICROSOFT_AUTHENTICATION_PACKAGE_V1_0

Pro Windows 2008 a novější DC to trošinku závisí na jedné volbě (viz. tady můj článeček v angličtině), ale ve výchozím stavu potřebujete Computer configuration - Policies - Windows settings - Security settings - Local policies - Advanced Audit Configuration - Account logon - Audit Credentials Validation.

V Security logu na DC potom najdete tuto událost při každém úspěšném NTLM ověření doménového účtu:

Log: Security
Source: Microsoft Windows Security Auditing.
Task category: Credential validation
Event ID: 4776
Keywords: audit success
Message: The computer attempted to validate credentials for an account
Authentication package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0

Na tomhle je pěkné, že tam uvidíte jak login uživatele, tak i jméno stanice (source workstation), tedy klienta, ze kterého se toto ověření konalo. Bacha. Uvědomte si, že bohužel neuvidíte jméno serveru, přes který to šlo. Tzn. uvidíte pouze jméno klientského počítače, ze kterého se někdo připojoval pomocí NTLM k nějakému serveru. A moc tomu nevěřte. Tohle jméno není nijak autentizované. Bude tam vidět i jméno vašeho domácího počítače, pokud se například přes NTLM připojujete na Outlook Anywhere.

Poznámečka: je srandovní, že i když to jméno stanice není nijak ověřované, a dokonce to nemusí být ani počítač, který máte vůbec v doméně, tak se pomocí NTLM nepřihlásíte, pokud byste používali volbu log on to na záložce Account a toto jméno stanice tam neměli uvedeno (atribut userWorkstations). Klasika, autentizační chaos :-)

A bacha, pokud v té události nevidíte nápis MICROSOFT_AUTHENTICATION_PACKAGE_V1_0, tak se nejedná o NTLM. Může to být například SChannel ověření pomocí klientského certifikátu proti nějakému TLS/SSL serveru (TLS client certificate logon).

Filtrování těchto událostí na Windows 2008 a novějším DC

Pokud máte DC alespoň Windows 2008, tak si tyto události můžete (podobně jako jsem tu už jednou psal) precizně vyfiltrovat pomocí tohoto XPath výrazu, který umístíte prostě do Event Viewer filtru:

*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 14336 and (band(Keywords,9007199254740992)) and (EventID=4776)] and EventData/Data[@Name='PackageName']='MICROSOFT_AUTHENTICATION_PACKAGE_V1_0']

A to je pro dnešek všechno děti :-)

Comments

Re: Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování

... a samozřejmě, od Windows 7 a Windows 2008 R2 je k dispozici v Security Settings - Local Policies - Security Options několik položek nazvaných Network Security: Restrict NTLM, které umí také nejen NTLM zablokovat, ale i auditovat NTLM použití, naopak přímo na počítačích, ze kterých, případně vůči kterým, bylo NTLM použito. To je samozřejmě přesnější, ale funguje to až v novějších systémech.

To co bylo v článku funguje od jakživa a dá se to vyfiltrovat z logu na omezeném počtu DC, naopak oproti "Restrict NTLM", které byste museli vyčíst z logů na všech počítačích.
ondass on 3.12.2013 6:15

Re: Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování

pises pekne, skor by som siahol po snifferi a hladal dlzku odpovede klienta (ntlm response) na serverovu vyzvu (ntlm challenge)... co je istejsie, ci? ;-)
runco on 9.12.2013 22:26

Re: Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování

to co jsem psal je stoprocentní metoda, pokud je zapnuté auditování a pokud jsou dostatečně dlouhé logy, aby tam bylo zachyceno dostatek událostí, nebo pokud to teda člověk filtruje co možná nejčastěji.

do sítě se nelze ověřit z keše, takže to NTLM ověření prostě bude vždycky zachyceno v logu na 100%.

chytání snifferem nevím jestli je tak spolehlivé. muselo by se chytat na DC, protože nemůžeme chytat na každém serveru, kterých máme třeba desítky. takže cílem bylo chytat na co nejvíc omezeném počtu míst - tzn. logy na DC.

samozřejmě se dá sniffovat na DC také, ale nevím, jestli je to tak spolehlivé - otázka je, jestli ty pakety vždycky vypadají úplně stejně. za roky co dělám autentizační věci jsem viděl takových divných situací, že bych si jistý rozhodně nebyl :-)
ondass on 10.12.2013 7:52

Re: Odpověď na otázku - jak zjistím, jestli se mi v síti objevuje NTLM ověřování

auditování bezpečnostních událostí souvisí se vším, tedy i s tímto článkem: https://www.sevecek.com/Lists/Posts/Post.aspx?ID=549
ondass on 15.1.2016 17:13

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