Pre-Authentication Type is the single most useful field on this page and the one general Kerberos references gloss over. Kerberos pre-authentication exists so the KDC can refuse to hand out an encrypted AS-REP to anyone who merely knows a username. Microsoft's table lists the values you will meet in an Active Directory domain:
- 0: logon without pre-authentication. The client sent no proof of identity and the KDC answered anyway. - 2: PA-ENC-TIMESTAMP, an encrypted timestamp. This is the normal type for standard password authentication and should dominate your volume. - 15, 16 and 17: PA-PK-AS-REP_OLD, PA-PK-AS-REQ and PA-PK-AS-REP, the smart card and certificate (PKINIT) path. - 20: PA-SVR-REFERRAL-INFO, used in KDC referral tickets. - 138: PA-ENCRYPTED-CHALLENGE, Kerberos Armoring (FAST), available from Windows Server 2012 DCs and Windows 8 clients. - 11 and 19 (PA-ETYPE-INFO, PA-ETYPE-INFO2) are KDC-to-client hints that Microsoft says it has never observed in an AD environment.
Type 0 is the AS-REP roasting signal. An account with the "Do not require Kerberos preauthentication" flag set (UF_DONT_REQUIRE_PREAUTH) lets anyone who can reach a DC request its TGT unauthenticated. The AS-REP that comes back contains material encrypted with the account's password-derived key, which tools like Rubeus, Impacket's GetNPUsers.py and the hashcat 18200 mode crack offline at leisure. The domain controller sees exactly one thing during that attack: a successful 4768, Result Code 0x0, Pre-Authentication Type 0, Client Address set to whichever host ran the tool. No failure, no lockout, no 4771. If your detection logic only watches failures, this technique is invisible to it.
Microsoft's own monitoring recommendation is blunt: all accounts should use pre-authentication, and a value of 0 should be investigated. The operational refinement is to combine the field with the account's real flag state. A type 0 request for an account that genuinely has pre-authentication disabled is the attack in progress or a legacy application doing something it should not; a type 0 request for an account that does not have the flag should not be possible and points at a misread or an unusual client. Either way, the list of accounts carrying that flag should be short enough to know by name, and every 4768 with type 0 against one of them deserves a ticket.
Two other Pre-Authentication Type checks are cheap and worth running. Where smart cards are mandatory, a value that is not 15 (or 16 and 17) for those accounts means the policy is being bypassed with a password. Where Kerberos Armoring is enforced domain-wide, anything other than 138 is a client outside the policy.