We have recently been challenged by the network team on the failed NTLM authentications captured by AD domain controller. The requests were fired from one of Services hosted on a Windows 2008 Server which have joined the domain. The service is using a local system account to logon. It is reason why failed NTLM login has been captured as there was no failed login captured by using a domain user login. But the domain user login is not allowed by the company policy.
With the Wireshark tool, we have found the requests come from the X509Chain object's Build function. This is the default function provided by .NET framework and we cannot find any useful supporting document to:
- Explain why the NTLM requests are fired
- Prove there was no security threat from the requests
- How to configure in the application level to avoid the failed log in requests (changing the policy rule or AD audit is not allowed)
Part of the code (VB.NET):
Dim chnCerts As X509Chain = New X509Chain()
chnCerts.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly
chnCerts.ChainPolicy.RevocationMode = X509RevocationMode.Online
chnCerts.ChainPolicy.UrlRetrievalTimeout = New TimeSpan(0, 0, 120)
chnCerts.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag
If certType = Crypto.CertType.PrivateKeyCert Then
certPrivateValidationStatus = Nothing
chnCerts.Build(certPrivate)