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 :-)