Event 4771 belongs to the Audit Kerberos Authentication Service subcategory, and it only ever fires on a domain controller. That scoping matters immediately: workstations and member servers never generate this event, because they do not run the Key Distribution Center (KDC) that issues Kerberos tickets. If you are aggregating 4771 across your fleet and see it coming from a member server, check your log-source mapping before you trust the data.
The event covers exactly one moment in the Kerberos handshake: the initial AS-REQ, when a client asks the KDC for a Ticket Granting Ticket (TGT). It does not cover the second half of Kerberos authentication, the TGS-REQ for a service ticket, which is a different event entirely (4769) and a different failure surface. A 4771 tells you someone, or something, tried to get a TGT and the KDC said no.
The ServiceName field records the realm service the request targeted, almost always krbtgt/DOMAIN, since the TGT itself is a ticket for the krbtgt service, not for any application. TargetUserName and TargetSid identify the account attempting to authenticate, and IpAddress and IpPort record where the request came from. On a busy domain controller these two fields are the backbone of any 4771 detection: they tell you who tried, and from where.
PreAuthType is the field most analysts skip past, and it should not be skipped. A value of 2 means the client tried the standard encrypted-timestamp pre-authentication, the default for a password-based logon. A value of 15 means PKINIT, smart-card-based authentication, which changes your triage entirely: a 0x18 failure against a PreAuthType 15 request means a smart card or its PIN failed, not a typed password, and the two failure modes point at completely different root causes and remediation paths.
The Status field is where the real diagnostic value lives, and it is not a Windows-specific error code. It is an RFC 4120 Kerberos protocol error, the same failure-code table any Kerberos implementation uses, which is part of why 4771 reads cleanly even to analysts coming from a non-Windows Kerberos background. 0x18 (KDC_ERR_PREAUTH_FAILED) means the pre-authentication data did not validate, which in the PreAuthType 2 case almost always means a wrong password. An account name the KDC has never heard of (KDC_ERR_C_PRINCIPAL_UNKNOWN, 0x6) never reaches this event: the KDC rejects it in the AS-REQ and the failure is logged as a failed 4768, not a 4771. That is why 4771 volume understates account-name guessing. 0x17 (KDC_ERR_KEY_EXPIRED) fires when a password has expired and needs to be reset, routine noise in any environment with a password-expiry policy. 0x12 (KDC_ERR_CLIENT_REVOKED) means the account is disabled or locked, worth a second look only when the account is privileged or the attempts continue past a known offboarding date.
One evasion detail worth knowing: an account configured with "Do not require Kerberos preauthentication" never generates a 4771 for a guessing attempt against it, because the KDC skips the pre-authentication step entirely for that account and responds with an AS-REP an attacker can take offline and crack, the basis of AS-REP Roasting. If your 4771 coverage looks suspiciously clean for a given account, confirm that flag is not set rather than assuming the account is untouched.
4771 sits next to two events that give it context. A successful authentication for the same account shows up as a 4768 (TGT requested successfully) instead, on the same domain controller, around the same time, from the same IpAddress, which is your confirmation that a spray or brute-force attempt eventually landed. And a 4625 on the destination workstation, generated separately by the client-side logon path, often accompanies a Kerberos failure that fell back to NTLM, a second place to look when 4771 volume against a given account seems lower than expected.