SSOGEN / Free tools / Event ID 4769: Decode a Kerberos Service Ticket Request, Free in Your Browser
Free tool
Event ID 4769: Decode a Kerberos Service Ticket Request, Free in Your Browser
Event ID 4769 is logged on a domain controller each time it gets a request for a Kerberos service ticket. Paste the event into this free decoder to read the failure code, the ticket encryption type (RC4 or AES) and the service name, with nothing uploaded.
Paste an event and read it
Paste the text from Event Viewer, or the XML from its Details tab. To see the output first, select Service ticket requested (4769) to load an Acme sample.
From Event Viewer: open the event, then copy the General text, or the XML from the Details tab (XML View). Events 4624, 4625, 4634, 4647, 4648, 4672, 4740, 4768, 4769, 4771 and 4776 are recognized.
Private by design. Decoding happens in this page and nothing is sent anywhere. Event text holds account names, host names and IP addresses: use a copy you are allowed to look at, and remove anything you must not share.
Free, in your browser. No sign-up and no limit. The page makes no network request when you decode, so the event never leaves your computer.
Event text still contains account names and addresses, so use a copy you are allowed to view.
For 4769 the decoder checks five things and explains each one below, in Microsoft’s wording:
- the failure code, against the Kerberos error table;
- the ticket encryption type;
- whether the service name is a computer account or a user or service account;
- a client port below 1024;
- a client address of ::1 (a local request).
What event 4769 is
Event ID 4769 is the Windows Security log entry for “a Kerberos service ticket was requested”. Microsoft’s page says a domain controller writes it every time the Key Distribution Center (KDC) receives a ticket-granting service (TGS) request. It is logged only on domain controllers.
Three fields carry most of the meaning:
- Failure Code: whether the ticket was issued and, if not, which Kerberos error stopped it.
- Ticket Encryption Type: the cipher that protects the ticket, which shows whether RC4 is still in use.
- Service Name: the account the ticket was requested for.
This free decoder reads a pasted event and explains all three.
What a service ticket is, and where 4769 fits
Kerberos sign-in runs in two exchanges. First the client obtains a ticket-granting ticket (TGT), which event 4768 records.
Then, each time the client needs a specific service, such as a file share, a database or a web application, it asks the KDC for a service ticket. RFC 4120 calls this the ticket-granting service exchange.
The client presents its TGT and a fresh authenticator that proves it holds the TGT’s session key.
The KDC answers with a KRB_TGS_REP (a ticket for the service and a new session key) or a KRB_ERROR (RFC 4120, section 3.3, read 2026-10-11).
Event 4769 is the domain controller’s record of that request, whether it succeeded or failed.
| Event | What it records | Logged where |
|---|---|---|
| 4768 | A TGT was requested (the sign-in) | Domain controller only |
| 4769 | A service ticket was requested (the TGS exchange) | Domain controller only |
| 4771 | Kerberos pre-authentication failed (wrong password at sign-in) | Domain controller only |
A typical workday shows one 4768 at sign-in, then many 4769 events as the user reaches shares and applications.
- Not an acceptance. A 4769 means the domain controller issued a ticket, or refused to. It does not mean the service accepted the user.
- The service decides. The target computer records its decision as a logon event such as 4624.
- One log per controller. Each domain controller logs only the requests it answered, so search each one.
- Full flow. The Kerberos explainer covers the full ticket flow.
Reading the fields
Microsoft’s page documents two layouts. A mixed environment logs both, so this section covers both.
- Old event. Version 0, the one Windows has logged for years.
- Updated event. After the January 14, 2025 cumulative update, Windows Server 2016 and later log it, with the added fields marked “New”.
Account Name and Account Domain
Account Name is the user that requested the ticket, in the form user@DOMAIN. A computer account has a $ before the @.
Microsoft notes that this is a normalized name built from the SAM account name and the domain, not the account’s UserPrincipalName attribute. The field can be empty in some cases.
Account Domain is the Kerberos realm. It can appear as the NetBIOS name, the lowercase domain name or the uppercase domain name, so do not filter on a single spelling.
Service Name and Service ID
Service Name is “the name of the account or computer for which the service ticket was requested”. The wording matters: the target can be one of two kinds of account.
| Service Name looks like | What it is | Why you care |
|---|---|---|
| WIN2008R2$ (ends in $) | A computer account, for example a file server or a workstation | The normal case for ordinary computer access |
| svc-sql (no $) | A user or service account that has a service principal name (SPN) | The account holds a password that someone chose, so the encryption type matters most here |
| krbtgt | The ticket-granting service itself | Seen in the updated sample in Microsoft’s page |
Service ID is the SID of that account, and shows NULL SID in failure events.
- Monitor pairs. If an account should never request tickets for a particular computer or service account, monitor for 4769 events that pair that Account Name with that Service ID (Microsoft’s monitoring notes).
- Service not found. Check the SPN with the SPN checker.
Logon GUID
The Logon GUID links this event, which is on a domain controller, to events on the computer the ticket was issued for. Microsoft names three:
- 4624: an account was successfully logged on.
- 4648: a logon was attempted using explicit credentials.
- 4964: special groups assigned to a new logon.
Search the target computer for the same GUID to see what the service did with the ticket.
Microsoft adds that the GUID may not be captured, in which case it shows as all zeros, {00000000-0000-0000-0000-000000000000}. The failure example in Microsoft’s RC4 article shows it that way. All zeros means “not recorded”, not “no logon”.
Client Address and Client Port
Client Address is the source of the request, in one of three formats:
- a plain IPv4 or IPv6 address;
- an IPv4 address written as ::ffff:IPv4_address (a notation, not a different machine);
- ::1 for localhost.
Client Port is 0 for local requests.
Microsoft’s monitoring notes give three checks:
- Track addresses outside your internal ranges.
- For accounts that should be used only from known addresses, alert when the address is not on the list.
- Treat ::1 as a local request, meaning the account first logged on to the domain controller itself. Alert on it for any account outside your list of accounts allowed to log on to domain controllers.
Microsoft also says to examine any 4769 with a client port above 0 and below 1024, because a well-known port was used for an outbound connection.
Ticket Options
Ticket Options is a set of ticket flags as a hexadecimal number, with bits numbered from the left as in the RFCs. Microsoft lists three common values:
- 0x40810010: Forwardable, Renewable, Canonicalize, Renewable-ok
- 0x40810000: Forwardable, Renewable, Canonicalize
- 0x60810010: Forwardable, Forwarded, Renewable, Canonicalize, Renewable-ok
The flags record what the client asked for. They are mainly useful when two requests from the same account look different.
Transited Services
Microsoft says this field “contains list of SPNs which were requested if constrained Kerberos delegation was used”. A dash means no delegation was involved.
The fields added by the 2025 update
The updated event adds four groups of fields, marked “New” on Microsoft’s page.
| New field | What it tells you |
|---|---|
| MSDS-SupportedEncryptionTypes and Available Keys, for the account, the service and the domain controller | Which encryption types each can use, and which keys exist in Active Directory (shown as “N/A” if the information was not available) |
| Advertized Etypes (Microsoft’s spelling) | The encryption types the client said it supports |
| Session Encryption Type | The cipher used for the session key |
| Request ticket hash and Response ticket hash | A hash of the ticket the client sent and of the ticket the domain controller returned |
MSDS-SupportedEncryptionTypes is often shortened to “msds-SET”. Microsoft explains where its value comes from:
- Computer accounts get it automatically from the computer’s encryption policy.
- Domain controllers, read-only domain controllers and trusts support AES by default.
- For user accounts, gMSAs and other accounts with no value set, the domain controller uses the DefaultDomainSupportedEncType policy.
Microsoft’s RC4 article adds that this is a processed value (Microsoft Learn, read 2026-10-11):
- Windows Server 2022 and earlier. It always shows DES and RC4, for compatibility with older domain controllers.
- Windows Server 2025 and later. It shows only AES-SHA1 and stronger.
- Available Keys. It shows RC4 whether or not RC4 is used.
Ticket encryption type: what 0x17 and 0x12 mean now
Ticket Encryption Type is the cipher of the service ticket that was issued. Values from Microsoft’s page:
| Value | Name | Microsoft’s note |
|---|---|---|
| 0x1 | DES-CBC-CRC | Disabled by default starting from Windows 7 and Windows Server 2008 R2 |
| 0x3 | DES-CBC-MD5 | Disabled by default starting from Windows 7 and Windows Server 2008 R2 |
| 0x11 | AES128-CTS-HMAC-SHA1-96 | Supported starting from Windows Server 2008 and Windows Vista |
| 0x12 | AES256-CTS-HMAC-SHA1-96 | Supported starting from Windows Server 2008 and Windows Vista |
| 0x17 | RC4-HMAC | Default suite for operating systems before Windows Server 2008 and Windows Vista |
| 0x18 | RC4-HMAC-EXP | Default suite for operating systems before Windows Server 2008 and Windows Vista |
| 0xFFFFFFFF | none | Shows in Audit Failure events |
Microsoft’s monitoring recommendations for this event make two points:
- A value of 0x1 or 0x3 means DES, which “should not be in use, because of low security and known vulnerabilities”.
- On Windows Vista, Windows Server 2008 and later, the expected values are the AES types 0x11 and 0x12, so any other value deserves a look.
A healthy modern 4769 shows 0x12 or 0x11. Investigate any 0x17.
Why RC4 matters, and what Microsoft is changing
The 4769 page does not explain why RC4 is a problem. Microsoft’s article “Detect and Remediate RC4 Usage in Kerberos” does.
It calls RC4 “now considered insecure” and says the Kerberos RC4 default “can be abused to carry out an attack method known as Kerberoasting, which targets service tickets in Microsoft Active Directory” (read 2026-10-11).
Kerberoasting targets service tickets, so RC4 on service accounts is easiest to spot in the service ticket event, not the sign-in event.
A 0x17 is not proof of an attack. The Learn article lists ordinary causes:
- legacy systems;
- accounts created before AES support whose password was never reset;
- encryption settings that were never configured.
Two Microsoft sources describe the change over time. They differ in detail, so check which one applies to your domain controllers:
- KB5021131 (CVE-2022-37966, last updated June 19, 2023 as read) says updates from November 8, 2022 made AES the default for session keys on accounts with no configured encryption type. It gives the DefaultDomainSupportedEncTypes default as 0x27 (DES, RC4 and AES session keys) and recommends 0x3C for “increased security” or 0x38 for AES-only environments. It also says that when an account has msds-SupportedEncryptionTypes set, “this setting is honored”.
- Microsoft Learn, Detect and Remediate RC4 Usage in Kerberos (page dated February 2026) says Microsoft plans to disable RC4 as the default assumed encryption type on domain controllers by the end of the second quarter of 2026, with details in KB 5073381 (CVE-2026-20833). It says that from Windows Server 2025, domain controllers do not issue RC4 TGTs. Setting the DefaultDomainSupportedEncTypes registry value (under the KDC service key,
HKLM\System\CurrentControlSet\services\KDC) to 0x18 allows only AES128 and AES256.
KB 5073381 itself was not reviewed for this page, so its phases are not described here. If your domain controllers have recent updates, read it before you change anything.
Failure Code: what the number means
0x0 means the ticket was issued. Any other value is a failure, and the Ticket Encryption Type then shows 0xFFFFFFFF.
Microsoft adds that some errors are logged only when the KdcExtraLogLevel registry value on the domain controller has the right flags:
- 0x01 audits errors for service names (SPNs) that were not found;
- 0x10 logs encryption type and bad-option errors.
If you expect a 0x7 and never see one, check that value first.
| Code | Name | What Microsoft says |
|---|---|---|
| 0x0 | KDC_ERR_NONE | No error: the ticket was issued |
| 0x6 | KDC_ERR_C_PRINCIPAL_* | The client was not found: the user name does not exist |
| 0x7 | KDC_ERR_S_PRINCIPAL_* | The domain controller cannot find the server’s name in Active Directory. Similar to 0x6, but for the service name |
| 0xD | KDC_ERR_BADOPTION | The KDC cannot accommodate the option; one cause is a delegation target not in the Allowed-to-delegate-to list |
| 0xE | KDC_ERR_ETYPE_NOTSUPP | The KDC has no support for the encryption type; in general, a packet the KDC or client cannot decrypt |
| 0x12 | KDC_ERR_CLIENT_REVOKED | The client’s credentials were revoked: account disabled, expired or locked out |
| 0x1B | KDC_ERR_MUST_USE_USER2USER | Server principal valid for user-to-user only. Microsoft says this occurs because the service is missing an SPN |
| 0x20 | KRB_AP_ERR_TKT_EXPIRED | The ticket has expired. Informational |
| 0x25 | KRB_AP_ERR_SKEW | The clock skew is too great |
| 0x29 | KRB_AP_ERR_MODIFIED | Checksum mismatch, often the wrong key for the server, or wrong DNS data sending the client to the wrong server |
| 0x3C | KRB_ERR_GENERIC | Group membership has overloaded the PAC, recent password changes have not propagated, or the SPN is too long or has too many parts |
0x20: expired tickets are normal noise
Microsoft’s event description says “you’ll typically see many Failure events with Failure Code 0x20, which simply means that a service ticket has expired. These are informational messages and have little to no security relevance.”
- Cause. The shorter the “Maximum lifetime for user ticket” setting, the more often it appears.
- Fix. None. Ticket renewal is automatic, so no action is needed.
- Check. Filter out 0x20 first, then read what remains.
0x25: clock skew
Microsoft says 0x25 is logged when a client sends a timestamp that differs from the server’s by more than the number of minutes in the Kerberos policy setting “Maximum tolerance for computer clock synchronization”.
- Cause. The client and server clocks differ by more than the policy allows.
- Fix. Time synchronization, not the account.
- Check. The clocks on the client, the target server and the domain controller.
0x7 and 0x1B: the service name is the problem
Both codes point at the SPN.
- 0x7. The requested name is not in Active Directory, which is what a typo, a wrong alias or a missing SPN produces.
- 0x1B. Microsoft’s code for “valid for user-to-user only”; Microsoft says it occurs because the service is missing an SPN.
- Check. Copy the Service Name from the event and check that exact string in the SPN checker.
0x12 and 0x6: the account or the name
- 0x12. The account behind the request is disabled, expired or locked out.
- 0x6. The user name does not exist at all.
- Note. Microsoft’s 4768 page notes that several 0x6 failures in a short time can indicate account enumeration. That note is about the sign-in event, and this page does not apply it to 4769.
A worked example
Load the Service ticket requested (4769) sample. It is a fictional Acme event in the field layout of Microsoft’s page.
The account maria.lopez@ACME.EXAMPLE requested a ticket from a client at 192.0.2.41. The failure code is 0x0, so a ticket was issued. Three fields stand out:
- Service Name is svc-sql, with no $ at the end. It is a user or service account, not a computer. The decoder says so and quotes Microsoft’s suggestion to watch for accounts requesting tickets to service accounts they should not use.
- Ticket Encryption Type is 0x17, which is RC4. Microsoft’s guidance is to expect 0x11 or 0x12, so the decoder warns.
- Client Port is 49311, well above 1024, so there is nothing to examine there.
Treat the RC4 ticket as a configuration finding before treating it as an incident, and find out why a service account still receives RC4 tickets. The Learn article usually points to one of three causes:
- The service account has no AES keys, because its password predates AES support.
- Its msDS-SupportedEncryptionTypes value does not include AES.
- The domain default falls back to RC4.
On an updated event, the service’s MSDS-SupportedEncryptionTypes and Available Keys fields show which cause applies. Reset the password to generate AES keys, set the attribute, or change the default. Then confirm that 0x17 stops appearing.
The same hex value, two meanings
Microsoft’s 4769 page has one trap for quick readers: hex values are reused across fields.
- In the failure code table, 0x17 is KDC_ERR_KEY_EXPIRED (password expired) and 0x12 is KDC_ERR_CLIENT_REVOKED.
- In the Ticket Encryption Type table, 0x17 is RC4-HMAC and 0x12 is AES256.
Microsoft’s notes on the two password codes (0x17 expired password, 0x18 wrong password) say they cannot occur in a 4768 and appear in a 4771 instead, which marks them as sign-in problems.
Always read a hex value together with the name of its field. “0x17” in Failure Code is a different problem from “0x17” in Ticket Encryption Type, and a sign-in problem belongs on the 4771 page.
What happens when you turn RC4 off
Disabling RC4 breaks systems that support only RC4, and the failure appears as a 4769. Microsoft’s Learn article walks through an example.
A user’s request for a HOST service ticket failed from a client. On the domain controller, the 4769 showed:
- Failure Code 0xE (KDC_ERR_ETYPE_NOTSUPP);
- a Ticket Encryption Type of 0xFFFFFFFF;
- a Service ID of NULL SID;
- a logon GUID of all zeros.
The cause was a target computer whose msDS-SupportedEncryptionTypes was 0x4, meaning RC4 only.
Microsoft names SMB share access and remote PowerShell sessions as two places users hit this. It suggests running klist get HOST/servername on the failing client for a clearer error.
Audit before you change anything:
- Run Microsoft’s open-source scripts List-AccountKeys.ps1 and Get-KerbEncryptionUsage.ps1, from the Kerberos-Crypto repository on GitHub. They read these events and can filter for RC4.
- Then apply the group policy setting “Network security: Configure encryption types allowed for Kerberos” (under Computer Configuration, Windows Settings, Security Settings, Local Policies, Security Options) or the registry value above.
- Watch the log for 0xE.
4768 compared with 4769 and 4771
| Question | 4768 | 4769 | 4771 |
|---|---|---|---|
| What does it record? | A TGT request | A service ticket request | A pre-authentication failure |
| Result field | Result Code | Failure Code | Failure Code |
| Service Name usually | krbtgt | A computer or service account | krbtgt |
| Wrong password? | Never appears here | Not logged here | Logged here instead |
| Pre-authentication type field? | Yes | No | Yes |
The 4768 page covers the sign-in side and the 4771 page covers wrong and expired passwords. To find who requested a ticket to a particular service, use 4769: it is the event that carries the Service Name.
How to find the event
- On a domain controller, open Event Viewer, then Windows Logs, then Security. Reading this log requires an administrator account.
- Filter the current log by event ID 4769, or search for the account name or service name. 4769 is a high-volume event, so filter on a failure code or a ticket encryption type as early as you can.
- Open the event and copy the text from the General tab, or the XML from the Details tab, then paste it above.
Microsoft lists this event under the Audit Kerberos Service Ticket Operations subcategory (Microsoft Learn, read 2026-10-11).
Where this meets SSO
A Kerberos service ticket lets a user open an application without entering a password again. That is single sign-on inside a Windows domain.
The Kerberos authentication page explains what the user sees, and Kerberos SSO for web applications covers how a browser and a gateway use these tickets.
SSOGEN uses service tickets in two places:
- Windows desktop sign-in. The browser requests a service ticket for SSOGEN’s own service name, and SSOGEN refuses a keytab that holds only RC4 or DES keys.
- SSOGEN Gateway. It uses Kerberos constrained delegation to request a ticket for a back-end application on each employee’s behalf, and the domain controller logs each of those requests as a 4769.
- Audit record. The SSO audit log page describes SSOGEN’s own record, which is separate from your Windows logs.
Questions people ask
How to check if RC4 is disabled?
How can I disable RC4 usage?
What is a Kerberos service ticket requested?
What causes Kerberos to fail?
What does failure code 0x20 mean in event 4769?
Where to go next
- Browse the other free tools.
- Read what Kerberos is.
- Check a service name with the SPN checker.
- Open the event ID 4768 decoder for the sign-in side.
Sources, all read 2026-10-11: Microsoft Learn pages for events 4769 and 4768, Detect and Remediate RC4 Usage in Kerberos, Microsoft KB5021131, RFC 4120 and the Ultimate Windows Security 4769 page.
Microsoft and Windows are trademarks of their owner; SSOGEN is not affiliated with Microsoft.