KDC Options and the missing Bit Mask

 

Hey Folks!

So, a question came up recently about the Ticket Options in security events 4768 & 4769.  An example of one, below:

So just what are these "Ticket Options?

Well as it turns out, they are the options defined in the ticket by the KDC.  Seems pretty straightforward doesn't it?  Well.  While those options are defined in the RFC itself and in Microsoft’s own documentation of Kerberos, the translation of the RFC list and the Bit Mask that we use in Windows is missing.

For example, we see in the above example that the Ticket Options are 0x4081000.  But, what does this mean?  Which options do we have for this ticket?  Looking at RFC 1510 (Page 40-41) and our own article How the Kerberos Version 5 Authentication Protocol  Works (Key Distribution Center Option Flags Section) we have the Flag Bits for each of the options.  Unfortunately, most of us can't translate Flag Bits into Bit Masks in our heads.  And that translation is missing from our docs.

So, working with a couple of my colleagues, Wayne McIntyre and Seth Moore (who are a couple of wizards that actually CAN translate this stuff in their head), we came up with a nice easy to read table that hopefully will help if you are trying to figure out what 0x4081000 or, something like 0x608100 actually means. (Forwardable, Forwarded, Renewable and Name Canonicalize, just FYI.  For an explanation of each of these, see the aforementioned TechNet Article "How the Kerberos Version 5 Authentication Protocol Works")

Flag Bit RFC/Technet Flag Value Bit Mask
  KDC_OPTIONS_reserved 0x80000000
1 KDC_OPTIONS_forwardable 0x40000000
2 KDC_OPTIONS_forwarded 0x20000000
3 KDC_OPTIONS_proxiable 0x10000000
4 KDC_OPTIONS_proxy 0x08000000
5 KDC_OPTIONS_allow_postdate 0x04000000
6 KDC_OPTIONS_postdated 0x02000000
  KDC_OPTIONS_unused7 0x01000000
8 KDC_OPTIONS_renewable 0x00800000
  KDC_OPTIONS_unused9 0x00400000
  KDC_OPTIONS_unused10 0x00200000
  KDC_OPTIONS_opt_hardware_auth 0x00100000
  KDC_OPTIONS_unused12 0x00080000
  KDC_OPTIONS_unused13 0x00040000
14 KDC_OPTIONS_cname_in_addl_tkt 0x00020000
15 KDC_OPTIONS_name_canonicalize 0x00010000
27 KDC_OPTIONS_renewable_ok 0x00000010
28 KDC_OPTIONS_enc_tkt_in_skey 0x00000008
30 KDC_OPTIONS_renew 0x00000002
31 KDC_OPTIONS_validate 0x00000001