Windows Event ID 4769 - A Kerberos service ticket was requested

Introduction

Windows event ID 4769 is generated every time the Key Distribution Center (KDC) receives a Kerberos Ticket Granting Service (TGS) ticket request.

Kerberos-authentication-protocol. 
Figure 1. Kerberos authentication protocol

After the client successfully receives a ticket-granting ticket (TGT) from the KDC, it stores that TGT and sends it to the TGS with the Service Principal Name (SPN) of the resource the client wants to access. TGTs are valid for a certain period of time.

Event ID 4769 (S) — A Kerberos Ticket Granting Service (TGS) was successfully requested

The KDC verifies the TGT of the user before the TGS sends a valid session key for the service to the client. Event ID 4769 is recorded with the Result Code equal to “0x0” if the service ticket and the session key were granted.

Event ID 4769 (F) — A Kerberos Ticket Granting Service (TGS) request failed

If the TGS issue fails, the same event ID 4769 is logged but with the Result Code not equal tostrong> “0x0”. (View all result codes.)

Event ID 4768 is generated every time the KDC attempts to validate the credentials.

Event ID 4776 indicates an authentication attempt using NTLM authentication.

Figure 1. Event ID 4769 — General tab under Event Properties.

Event ID 4769 — General tab under Event Properties.

Figure 2. Event ID 4769 — Details tab under Event Properties.

Event ID 4769 — Details tab under Event Properties.

Description of the event fields.

Account Name: The User Principal Name (UPN) of the account that requested the service ticket.

Note: 
The computer account name ends with a $ in a UPN. The Account Name field typically has the following format: user_account_name@FULL\_DOMAIN\_NAME.

User account example: mark@ADAP.WORKSHOP.COM 
Computer account example: WIN12R2$@ADAP.WORKSHOP.COM

Account Domain: The name of the Kerberos Realm that the Account Name belongs to.

Logon GUID: A global unique identifier (GUID) is a 128-bit integer number used to identify resources, activities, or instances. The Logon GUID can help you correlate event ID 4769 with other events that can contain the same Logon GUID. These events include event IDs 4624, 4648(S), and 4964(S).

Service Name: The name of the service in the Kerberos Realm for which the TGS ticket was requested.

Service ID: The SID of the service account in the Kerberos Realm for which the TGS ticket was requested.

Client Address: The IP address of the computer from which the TGS request was received.

Client Port: The source port number of the client networdok (TGS request) connection. The Client Port is “0” for local (localhost) requests.

Ticket Options: A set of different ticket flags in hexadecimal format.

The most common values include: 
0x40810010 — Forwardable, Renewable, Canonicalize, Renewable-ok 
0x40810000 — Forwardable, Renewable, Canonicalize 
0x60810010 — Forwardable, Forwarded, Renewable, Canonicalize, Renewable-ok

Ticket Encryption Type: The cryptographic suite that was used to encrypt the issued TGS.

TypeType NameDescription
0x1DES-CBC-CRCDisabled by default for Windows 7 or later and Windows Server 2008 R2 or later.
0x3DES-CBC-MD5Disabled by default for Windows 7 or later and Windows Server 2008 R2 or later.
0x11AES128-CTS-HMAC-SHA1-96Supported for Windows Server 2008 or later and Windows Vista or later.
0x12AES256-CTS-HMAC-SHA1-96Supported for Windows Server 2008 or later and Windows Vista or later.
0x17RC4-HMACDefault suite for operating systems before Windows Server 2008 and Windows Vista.
0x18RC4-HMAC-EXPDefault suite for operating systems before Windows Server 2008 and Windows Vista.
0xFFFFFFFF or 0xffffffff-This type shows in Audit Failure events.

Failure Code: This is a set of different failure codes displayed in hexadecimal format. The result codes are listed in the following table:

See RFC1510 for more details.

CodeCode nameDescriptionPossible causes
0x0KDC_ERR_NONENo errorNo errors were found.
0x1KDC_ERR_NAME_EXPClient's entry in KDC database has expiredNo information.
0x2KDC_ERR_SERVICE_EXPServer's entry in KDC database has expiredNo information.
0x3KDC_ERR_BAD_PVNORequested Kerberos version number not supportedNo information.
0x4KDC_ERR_C_OLD_MAST_KVNOClient's key encrypted in old master keyNo information.
0x5KDC_ERR_S_OLD_MAST_KVNOServer's key encrypted in old master keyNo information.
0x6KDC_ERR_C_PRINCIPAL_UNKNOWNClient not found in Kerberos databaseThe username doesn’t exist.
0x7KDC_ERR_S_PRINCIPAL_UNKNOWNServer not found in Kerberos databaseThe domain controller can’t find the server’s name in Active Directory.
0x8KDC_ERR_PRINCIPAL_NOT_UNIQUEMultiple principal entries in KDC database

Duplicate principal names exist.

Unique principal names are crucial for ensuring mutual authentication; duplicate principal names are strictly forbidden, even across multiple realms. Without unique principal names, the client has no way of ensuring that the server it's communicating with is the correct one

0x9KDC_ERR_NULL_KEYThe client or server has a null key (master key)No master key was found for the client or server. This usually means that the administrator should reset the password on the account.
0xAKDC_ERR_CANNOT_POSTDATETicket (TGT) not eligible for postdatingA client has requested postdating of a Kerberos ticket (setting the ticket’s start time to a future date/time), or there is a time difference between the client and the KDC.
0xBKDC_ERR_NEVER_VALIDRequested start time is later than the end timeThere is a time difference between the KDC and the client.
0xCKDC_ERR_POLICYRequested start time is later than the end timeThere are logon restrictions on the user’s account, like a workstation restriction, smart card authentication requirement, or logon time restriction.
0xDKDC_ERR_BADOPTIONKDC cannot accommodate requested optionThe TGT is about to expire, or the client is attempting to delegate credentials to an SPN that’s not in its allowed-to-delegate-to list.
0xEKDC_ERR_ETYPE_NOTSUPPKDC has no support for encryption typeThe KDC or client received a packet that it can’t decrypt.
0xFKDC_ERR_SUMTYPE_NOSUPPKDC has no support for checksum typeThe KDC, server, or client received a packet that it doesn’t have an appropriate encryption key for, so it can’t decrypt the ticket.
0x10KDC_ERR_PADATA_TYPE_NOSUPPKDC has no support for PADATA type (pre-authentication data)
  • Smart card logon is being attempted and the proper certificate can’t be located. This can happen because the wrong certificate authority (CA) is being queried or the proper CA can’t be contacted.
  • A domain controller doesn’t have a certificate installed for smart cards (Domain Controller or Domain Controller Authentication templates).

This error code can’t occur in event 4768, but it can occur in event 4771.

0x11KDC_ERR_TRTYPE_NO_SUPPKDC has no support for transited typeNo information.
0x12KDC_ERR_CLIENT_REVOKEDClient’s credentials have been revokedThere may be explicit restrictions on the account; the account could also be disabled, expired, or locked out.
0x13KDC_ERR_SERVICE_REVOKEDCredentials for server have been revokedNo information.
0x14KDC_ERR_TGT_REVOKEDTGT has been revoked

Since the remote KDC may change its PKCROSS key while there are PKCROSS tickets still active, it should cache the old PKCROSS keys until the last issued PKCROSS ticket expires. Otherwise, the remote KDC will respond to a client with this error code.

See RFC1510 for more details.

0x15KDC_ERR_CLIENT_NOTYETClient not yet valid—try again laterNo information.
0x16KDC_ERR_SERVICE_NOTYETServer not yet valid—try again laterNo information.
0x17KDC_ERR_KEY_EXPIREDPassword has expired—change password to reset

The user’s password has expired.

This error code can’t occur in event 4768, but it does occur in event 4771.

0x18KDC_ERR_PREAUTH_FAILEDPre-authentication information was invalid

The wrong password was provided.

This error code can’t occur in event 4768, but it does occur in event 4771.

0x19KDC_ERR_PREAUTH_REQUIREDAdditional pre-authentication required

Often occurs in UNIX interoperability scenarios. MIT-Kerberos clients do not request pre-authentication when they send a KRB_AS_REQ message. If pre-authentication is required (the default setting), Windows systems will send this error.

Most MIT-Kerberos clients will respond to this error by giving preauthentication, in which case the error can be ignored

0x1AKDC_ERR_SERVER_NOMATCHKDC does not know about the requested serverNo information.
0x1BKDC_ERR_SVC_UNAVAILABLEKDC is unavailableNo information.
0x1FKRB_AP_ERR_BAD_INTEGRITYIntegrity check on decrypted field failed

The authenticator was encrypted with something other than the session key, so the client can’t decrypt the resulting message.

The modification of the message could be the result of an attack or network noise.

0x20KRB_AP_ERR_TKT_EXPIREDThe ticket has expired

The smaller the value for the Kerberos policy setting Maximum lifetime for user ticket, the more likely it is that this error will occur.

Because ticket renewal is automatic, you shouldn’t have to do anything if you get this message.

0x21KRB_AP_ERR_TKT_NYVThe ticket is not yet valid

The clocks on the KDC and the client aren’t synchronized.

If cross-realm Kerberos authentication is being attempted, then you should verify time synchronization between the KDC in the target realm and the KDC in the client realm.

0x22KRB_AP_ERR_REPEATThe request is a replayA specific authenticator showed up twice; in other words, the KDC detected that this session ticket duplicates one that it has already received.
0x23KRB_AP_ERR_NOT_USThe ticket is not for usThe server has received a ticket that was meant for a different realm.
0x24KRB_AP_ERR_BADMATCHThe ticket and authenticator do not match
  • The KRB_TGS_REQ is being sent to the wrong KDC.
  • There was an account mismatch during protocol transition.
0x25KRB_AP_ERR_SKEWThe clock skew is too greatA client computer sent a timestamp whose value differs from that of the server’s timestamp by more than the Maximum tolerance for computer clock synchronization setting in the Kerberos policy.
0x26KRB_AP_ERR_BADADDRNetwork address in network layer header doesn't match address inside ticket
  • The address of the computer sending the ticket is different from the valid address in the ticket. A possible cause of this could be an IP address change.
  • A ticket was passed through a proxy server or NAT. The client is unaware of the address scheme used by the proxy server, so unless the program caused the client to request a proxy server ticket with the proxy server's source address, the ticket could be invalid.
0x28KRB_AP_ERR_BADVERSIONProtocol version numbers don't match (PVNO)An application checks the KRB_SAFE message to verify that the protocol version and type fields match the current version and KRB_SAFE, respectively. A mismatch generates this error code.
0x28KRB_AP_ERR_MSG_TYPEMessage type is unsupported
  • The target server finds that the message format is wrong. This applies to KRB_AP_REQ, KRB_SAFE, KRB_PRIV, and KRB_CRED messages.
  • The use of UDP protocol is being attempted with user-to-user authentication.
0x29KRB_AP_ERR_MODIFIEDMessage stream modified and checksum didn't match
  • The authentication data was encrypted with the wrong key for the intended server.
  • The authentication data was modified in transit by a hardware or software error, or by an attacker.
  • The client sent the authentication data to the wrong server because of incorrect DNS data.
0x2AKRB_AP_ERR_BADORDERMessage out of order (possible tampering)

This event generates for KRB_SAFE and KRB_PRIV messages if an incorrect sequence number is included or if a sequence number is expected but not present.

See RFC4120 for more details.

0x2CKRB_AP_ERR_BADKEYVERSpecified version of key is not availableThe server can’t use the key version indicated by the ticket in the KRB_AP_REQ (e.g. it indicates an old key that the server doesn’t have a copy of).
0x2DKRB_AP_ERR_NOKEYService key not available

The server doesn’t have the right key to decipher the ticket.

Because it's possible for the server to be registered in multiple realms with different keys in each realm, the realm field in the unencrypted portion of the ticket in the KRB_AP_REQ is used to specify which secret key the server should use to decrypt that ticket

0x2EKRB_AP_ERR_MUT_FAILMutual authentication failedNo information.
0x2FKRB_AP_ERR_BADDIRECTIONIncorrect message directionNo information.
0x30KRB_AP_ERR_METHODAlternative authentication method requiredAccording to RFC4120, this error message is obsolete.
0x31KRB_AP_ERR_BADSEQIncorrect sequence number in messageNo information.
0x32KRB_AP_ERR_INAPP_CKSUMInappropriate type of checksum in message (checksum may be unsupported)When the KDC receives a KRB_TGS_REQ message, it decrypts it. Afterwards, the user-supplied checksum in the Authenticator must be verified against the contents of the request, and the message must be rejected if the checksums don't match (with an error code of KRB_AP_ERR_MODIFIED) or if the checksum is not collision-proof (with an error code of KRB_AP_ERR_INAPP_CKSUM).
0x33KRB_AP_PATH_NOT_ACCEPTEDDesired path is unreachableNo information.
0x34KRB_ERR_RESPONSE_TOO_BIGToo much data

The size of a ticket is too large to be transmitted reliably via UDP.

In a Windows environment, this message is purely informational. A Windows computer will automatically try TCP if UDP fails.

0x3CKRB_ERR_GENERICGeneric error
  • Group membership has overloaded the Privilege Account Certificate (PAC).
  • Multiple recent password changes haven't been propagated
  • Crypto subsystem error caused by running out of memory.
  • The SPN is too long.
  • The SPN has too many parts
0x3DKRB_ERR_FIELD_TOOLONGField is too long for this implementation

If a KDC that does not understand how to interpret a set high bit of the length encoding receives a request with the high order bit of the length set, it must return a KRB-ERROR message with the error KRB_ERR_FIELD_TOOLONG, and it must close the TCP stream

Each request (KRB_KDC_REQ) and response (KRB_KDC_REP or KRB_ERROR) sent over the TCP stream is preceded by the length of the request as 4 octets in network byte order. The high bit of the length is reserved for future expansion and must currently be set to zero.

0x3EKDC_ERR_CLIENT_NOT_TRUSTEDThe client trust failed or is not implemented
  • A user’s smart card certificate has been revoked.
  • The root CA that issued the smart card certificate (in a chain) is not trusted by the domain controller.
0x3FKDC_ERR_KDC_NOT_TRUSTEDThe KDC server trust failed or could not be verifiedThe trustedCertifiers field contains a list of CAs trusted by the client, just in case the client doesn’t possess the KDC's public key certificate. If the KDC has no certificate signed by any of the trustedCertifiers, then it returns this error code.
0x40KDC_ERR_INVALID_SIGThe signature is invalidThis error is related to PKINIT. If a PKI trust relationship exists, the KDC then verifies the client's signature on AuthPack (TGT request signature). If that fails, the KDC returns this error code.
0x41KDC_ERR_KEY_TOO_WEAKA higher encryption level is neededIf the clientPublicValue field is filled in, indicating that the client wishes to use the Diffie-Hellman key agreement, then the KDC checks to see that the parameters satisfy its policy. If they do not (e.g. the prime size is insufficient for the expected encryption type), then the KDC returns this error code.
0x42KRB_AP_ERR_USER_TO_USER_REQUIREDUser-to-user authorization is requiredThe client doesn't know that a service requires user-to-user authentication, so it requests, receives, and forwards a conventional KRB_AP_REP to the server; the server generates this error code in response.
0x43KRB_AP_ERR_NO_TGTNo TGT was presented or availableThe service doesn’t have a TGT for user-to-user authentication.
0x44KDC_ERR_WRONG_REALMIncorrect domain or principal

The client presented a cross-realm TGT to a realm other than the one specified in the TGT.

This error rarely occurs, but it’s typically caused by an incorrectly configured DNS.

Transited Services: This field contains a list of SPNs which were requested if Kerberos delegation was used.

Reasons to monitor event ID 4769:

  • Monitor the Client Address field to track logon attempts that are not from your internal IP range.
  • Monitor event ID 4769 for accounts that have an Account Name that corresponds to high-value accounts, including administrators, built-in local administrators, domain administrators, and service accounts.
  • If you have a list of accounts that are allowed to log on directly to domain controllers (rather than via network logon or Remote Desktop Connection), then monitor when Client Address is equal to “::1” to identify violations and possible malicious intent.
  • Monitor when Result Code is equal to “0x8” (multiple principal entries in KDC database) to detect duplicate SPNs and possible attempts of Kerberoasting.
  • Monitor when Result Code is equal to “0x22” (the request is a replay) to indicate that a specific authenticator showed up twice. It could be a sign of an attack.
  • Monitor any Ticket Encryption Type other than “0x11” and “0x12”. These are the expected values, and they represent AES-family algorithms. Ticket Encryption Type “0x1” or “0x3” means that the DES algorithm was used. DES should not be in use due to its poor security and known vulnerabilities.

The need for an auditing solution:

Auditing solutions like ADAudit Plus offer real-time monitoring, user and entity behavior analytics, and reports; together these features help secure your AD environment.

Around the clock, real-time monitoring.

Although you can attach a task to the security log and ask Windows to send you an email, you are limited to simply getting an email whenever event ID 4769 is generated. Windows also lacks the ability to apply more granular filters that are required to meet security recommendations

For example, Windows can send you an email every time event ID 4769 is generated, but it won't be able to only notify you when high-value accounts have generated the event ID, or if a Kerberos service ticket request came from an unauthorized endpoint. Getting more specific alerts reduces the chance of missing out on critical notifications hidden amongst a heap of false-positive alerts.

With a tool like ADAudit Plus, not only can you apply granular filters to focus on real threats, you can get notified in real time via SMS, too.

User and entity behavior analytics (UEBA).

Leverage advanced statistical analysis and machine learning techniques to detect anomalous behavior within your network.

Compliance-ready reports.

Meet various compliance standards, such as SOX, HIPAA, PCI, FISMA, GLBA, and the GDPR with out-of-the-box compliance reports.

True turnkey: it doesn't get simpler than this.

Go from downloading ADAudit Plus to receiving real-time alerts in less than 30 minutes. With over 200 preconfigured reports and alerts, ADAudit Plus ensures that your Active Directory stays secure and compliant.

Try it now for free!

 

The 8 Most
Critical Windows 
Security Event IDs

By clicking 'Download free guide', you agree to processing of personal data according to the Privacy Policy.

 
 
 
 

我们的客户