{"id":227,"date":"2014-09-12T15:17:07","date_gmt":"2014-09-12T19:17:07","guid":{"rendered":"http:\/\/blog.metcorp.org\/?p=227"},"modified":"2018-04-06T21:52:25","modified_gmt":"2018-04-07T01:52:25","slug":"kerberos-active-directorys-secret-decoder-ring","status":"publish","type":"post","link":"https:\/\/adsecurity.org\/?p=227","title":{"rendered":"Kerberos, Active Directory\u2019s Secret Decoder Ring"},"content":{"rendered":"<p><strong>Kerberos Overview<\/strong><\/p>\n<p><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/bb742516.aspx\">Kerberos <\/a>is a protocol with roots in <a href=\"http:\/\/web.mit.edu\/kerberos\/\">MIT<\/a> named after the three-headed dog, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Cerberus\">Cerberus<\/a>. Named because there are 3 parties: the client, the resource server, and a 3rd party (the Key Distribution Center, KDC).<\/p>\n<p>Kerberos can be a difficult authentication protocol to describe, so I will attempt to simplify it as best as possible.<\/p>\n<p>Kerberos authentication leverages long-term asymmetric keys (public key) and short-term symmetric keys (session keys).<\/p>\n<p>Asymmetric key cryptography uses two mathematically connected keys where one key is used to encrypt and the other is used to decrypt data. This is most commonly used in Public Key encryption (PKI) where one of the keys is kept secret by the user or service (Private Key) and the other key is available to anyone who wants it (Public Key). In this manner a user can sign (encrypt a hash with the private key) data to ensure it originated from that user without modification (the receiver decrypts the hash with the public key). Also a person can use the user\u2019s public key to encrypt data so that only the user can decrypt it with the user\u2019s private key.<\/p>\n<p>Symmetric key cryptography uses one key to encrypt and the same to decrypt the data. This is also referred to as a shared secret.<\/p>\n<p>Since asymmetric key cryptography is more processor intensive, it is typically only used to encrypt session keys which use symmetric keys (shared secret).<\/p>\n<p>Active Directory implements Kerberos version 5 in two components: the Authentication service and the Ticket-granting service.<\/p>\n<p>The Authentication Service (AS) is the first contact the client has with Kerberos and is used to lookup the user\u2019s password and create the Ticket Granting Ticket (TGT). The AS also creates the session key the user will use for future communication with Kerberos.<\/p>\n<p>The Ticket Granting Ticket (TGT) is the Kerberos ticket for the Ticket Granting Service (runs on the KDC) and is encrypted using the KDC key (<a href=\"https:\/\/adsecurity.org\/?p=483\">KRBTGT domain Kerberos account<\/a>), meaning that only a KDC can decrypt and read the ticket. While the user\u2019s ticket ,the TGT, is set to expire after 10 hours (AD default), it can be renewed as often as needed during the TGT renewable lifetime which is 7 days (AD default). Once the authenticating user has a TGT, it presents the TGT to the KDC to get a Service Ticket for the Ticket Granting Service (TGS) on the KDC. Most key Kerberos communication occurs over UDP port 88, though starting with Windows Vista &amp; Windows Server 2008 now default to using TCP for Kerberos ticket requests.<\/p>\n<p><em>There is a myth in the Windows Kerberos world that if a workstation&#8217;s clock is skewed more than 5 minutes from that of the Domain Controller, Kerberos authentication wouldn&#8217;t work.<\/em><br \/>\nTechnically, all clocks in the Kerberos world must be kept closely in-sync to prevent replay attacks. By default, Microsoft Active Directory has a tolerance of 5 minutes. <strong>Though in most cases, this doesn&#8217;t mater. When a client sends a Kerberos request to a DC, the DC will reply with a &#8220;KRB_ERROR &#8211; KRB_AP_ERR_SKEW (37)&#8221; and the Windows client will update its time for the Kerberos session with the DC and resend the request.<\/strong> Provided the clock skew between the client and DC is not more than the ticket lifetime (10 hours by default), the second request will be successful.<\/p>\n<p><a href=\"http:\/\/www.ietf.org\/rfc\/rfc4430.txt\">Kerberized Internet Negotiation of Keys (KINK) RFC 4430<\/a> details how this works:<\/p>\n<blockquote><p>If the server clock and the client clock are off by more than the policy-determined clock skew limit (usually 5 minutes), the server MUST return a KRB_AP_ERR_SKEW.\u00a0 The optional client&#8217;s time in the KRB-ERROR SHOULD be filled out.\u00a0 <strong>If the server protects the error by adding the Cksum field and returning the correct client&#8217;s time, the client SHOULD compute the difference (in seconds) between the two clocks based upon the client and server time contained in the KRB-ERROR message.\u00a0 The client SHOULD store this clock difference and use it to adjust its clock in subsequent messages.\u00a0<\/strong> If the error is not protected, the client MUST NOT use the difference to adjust subsequent messages, because doing so would allow an attacker to construct authenticators that can be used to mount replay attacks.<\/p><\/blockquote>\n<p><a href=\"http:\/\/support.microsoft.com\/kb\/956627\/en-us\">KB956627 also describes this behavior<\/a>.<br \/>\nConfused yet?<br \/>\nKeep reading, it gets easier\u2026<\/p>\n<p>Every service that is Kerberos enabled has an entry point called a Service Principal Name (SPN) and each Kerberos user has a User Principal Name (UPN). For example, a user named Joe User in the ADSECURITY.ORG Kerberos realm aka AD domain (the Kerberos realm is always all Caps) has a UPN of JoeUser@ADSecurity.org. If Joe User initiates a connection to the share path \\\\server1.ADSecurity.org\\Shared then Joe\u2019s workstation will lookup the computer server1.ADSecurity.org in Active Directory and read its SPN attribute (cifs\/server1.ADSecurity.org). The computer SPN is used to identify the application server in the Kerberos TGS ticket request. Furthermore, when Joe opens Outlook, his workstation performs similar actions looking up the Exchange server\u2019s SPN.<br \/>\nExchange 2010 has a number of registered SPNs; here are a few of them used as part of a client connection (using Outlook 2010):<\/p>\n<ul>\n<li>exchangeMDB<\/li>\n<li>exchangeRFR<\/li>\n<li>exchangeAB<\/li>\n<li>HTTP<\/li>\n<\/ul>\n<p><strong>KERBEROS METAPHOR<br \/>\n<\/strong><\/p>\n<p>As mentioned earlier, Kerberos has 3 components, the client, the server, and the KDC (trusted 3rd party). The process is similar to when you travel to a foreign country.<\/p>\n<ol>\n<li>You visit the local passport office with a birth certificate<br \/>\n(get the Ticket Granting Ticket ticket from the KDC)<\/li>\n<li>You request an entrance Visa for your passport in order to enter the country<br \/>\n(get the Ticket Granting Service ticket from the KDC \u2013 ok, so you would get the Visa from the country\u2019s embassy, but you still need the passport and something authoritative the country\u2019s immigration guard will accept).<\/li>\n<li>You travel to the country with the passport and the country\u2019s entrance Visa<br \/>\n(present authoritative documentation to gain access to the resource server).<\/li>\n<\/ol>\n<p><strong>KERBEROS TICKET PROCESS OVERVIEW<\/strong><\/p>\n<p><span style=\"text-decoration: underline;\">Ticket Granting Ticket (aka logon ticket)<\/span><\/p>\n<p>1. Joe User logs on with his Active Directory user name and password to a domain-joined computer (usually a workstation). The computer takes the user\u2019s password and runs a one way function (OWF) creating a hash of the password (typically the NTLM hash). Hashing the password is like taking a steak and running it through a meat grinder. The ground beef that is the result can never be reassembled back into the same steak we started with.<br \/>\nThis is used to\u00a0 handle all Kerberos requests for the user (as well as other authentication methods such as NTLM).<\/p>\n<p>2. Kerberos authentication is initiated by sending a timestamp (PREAUTH data) encrypted with the user\u2019s password-based encryption key (password NTLM hash).<\/p>\n<p>3. The user account (JoeUser@adsecurity.org) requests a Kerberos service ticket (TGT) with PREAUTH data (Kerberos Authentication Service Request or AS-REQ).<\/p>\n<p>4. The Domain Controller\u2019s Kerberos service (KDC) receives the authentication request, validates the data, and replies with a TGT (Kerberos AS-REP). The TGT has a Privileged Attribute Certificate (PAC) which contains all the security groups in which the user is a member. The TGT is encrypted and signed by the KDC service account (<a title=\"Kerberos &amp; KRBTGT: Active Directory\u2019s Domain Kerberos Account\" href=\"https:\/\/adsecurity.org\/?p=483\">KRBTGT<\/a>) and only the domain <a title=\"Kerberos &amp; KRBTGT: Active Directory\u2019s Domain Kerberos Account\" href=\"https:\/\/adsecurity.org\/?p=483\">KRBTGT<\/a> account can read the data in the TGT.<\/p>\n<p>At this point, the user has a valid TGT which contains the users group membership and is used to prove the user is who they claim to be in further conversations with a Domain Controller (KDC). The TGT is sent to the Domain Controller every time a resource ticket is requested.<\/p>\n<p><span style=\"text-decoration: underline;\">Ticket Granting Service ticket (aka resource access ticket)<\/span><\/p>\n<p>5. When the user wants to access an AD resource (a file share for example), the user\u2019s TGT from step 4 is presented to a Domain Controller (KDC) as proof of identity with a request for a resource ticket to a specific resource (Service Principal Name). The DC determines if the TGT is valid by checking the TGT\u2019s signature and if valid, generates a resource access ticket (TGS) signed\/encrypted with the <a title=\"Kerberos &amp; KRBTGT: Active Directory\u2019s Domain Kerberos Account\" href=\"https:\/\/adsecurity.org\/?p=483\">KRBTGT<\/a> account and a part encrypted with the Kerberos service account\u2019s session key which the destination service uses to validate the TGS.<br \/>\nNote: The DC doesn\u2019t validate the user has the appropriate access to the service, it only validates the TGT and builds a TGS based on the TGT information.<\/p>\n<p>6. The resource service ticket (TGS) is sent to the user by the Domain Controller and is used for authentication to the resource. At this point, all communication has been between the user\u2019s computer and the Domain Controller (KDC).<\/p>\n<p>7. The user\u2019s computer sends the user\u2019s resource service ticket (TGS) to the service on the resource computer. If the destination service is a file share, the TGS is presented to the CIFS service for access.<\/p>\n<p>8. The destination service (CIFS in this example) validates the TGS by ensuring it can decrypt the TGS component encrypted with the service\u2019s session key. The service may send the TGS to a DC (KDC) to validate the PAC to ensure the user\u2019s group membership presented is accurate. The service reviews the user\u2019s group membership to determine what level of access, if any, the user has to the resource.<\/p>\n<p><strong>THE DETAILED PROCESS<\/strong><\/p>\n<p>Here\u2019s my example scenario to explain what occurs when a user logs on and opens Outlook to view his Exchange email. The bold text is the simple overview version while the detail follows.<\/p>\n<ol>\n<li><strong><strong>A user logs onto the domain ADSecurity.org on the workstation ADSecurityPC.<\/strong><\/strong><\/li>\n<li><strong>The user requests authentication by sending a timestamp encrypted with the users password encryption key.<\/strong><br \/>\nThe workstation creates an encryption key derived from the user\u2019s password (the user\u2019s password is hashed using a one way function such as MD5 = <strong> (A) <\/strong>key) to encrypt a timestamp (date\/time) as an authenticator (pre-authentication is required by AD in its default configuration, so the client must send an authenticator) . The authenticator is simply a method the client uses to prove to the KDC that the user is who he claims to be (since only the user &amp; the KDC knows his password) and protects against replay attacks. This information is sent to the KDC in an AS-REQ (Authentication Service Request) packet. This request includes the client supported encryption algorithms.Keys used:<br \/>\n<strong>(A)<\/strong>User\u2019s password derived key<a href=\"http:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-AS-REQ.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1057\" title=\"Capture-KRB5-AS-REQ\" src=\"https:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-AS-REQ.png\" alt=\"\" width=\"991\" height=\"374\" \/><\/a>Packet Data:<strong><br \/>\nUser account (user@ADSecurity.org) requests <a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/cc749438%28WS.10%29.aspx\">Kerberos <\/a>service ticket (TGT) with PREAUTH data<\/strong>KRB5: Kerberos AS-REQ<br \/>\n1 Forwardable: FORWARDABLE tickets are allowed\/requested<br \/>\n1 Renewable: This ticket is RENEWABLE<br \/>\n1 Canonicalize: This is a request for a CANONICALIZED ticket<br \/>\n1 Renewable OK: We accept RENEWED ticketsClient Name (Principal): admin<br \/>\nRealm: ADSECURITY.ORG<br \/>\nService: krbtgt\/ADSecurity.org<br \/>\ntill: 2037-09-12 02:48:05 (UTC)<br \/>\nrtime: 2037-09-12 02:48:05 (UTC)<br \/>\nNonce: 1976014234<br \/>\nPrincipal Name: user<br \/>\nHostAddress: METCORPORGDC02&lt;20&gt;<br \/>\nPAC_Request: True<br \/>\nEncryption Types: aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac rc4-hmac-exp rc4-hmac-old-exp des-cbc-md5KRB5: Kerberos AS-REP<br \/>\nClient Name (Principal): user<br \/>\nTkt-vno: 5<\/li>\n<li><strong>The Kerberos server (KDC) receives the authentication request, validates the data, and replies with a TGT.<\/strong><br \/>\nThe KDC receives the AS-REQ, decrypts the authenticator (encrypted with key <strong>(A)<\/strong>), and validates the timestamp is within the time skew limits set by the domain (5 minutes by default). If the KDC is satisfied the request is a valid user request, the KDC responds with an AS-REP packet which includes the TGT. The TGT can only be decrypted by a KDC (using the\u00a0<strong>(B)<\/strong> key) and is used to authenticate the user to the Kerberos server so it doesn\u2019t have to look up the user\u2019s password (long-term key) again. The KDC also includes a session key (<strong>(C)<\/strong>key) for use in future communication with the KC.Keys used:<strong><br \/>\n<\/strong><strong>(B)<\/strong> Kerberos account\u2019s password derived key<strong><br \/>\n(C)<\/strong>User\u2019s Kerberos service (KDC) session key NOTE: The TGT is encrypted with the <a href=\"https:\/\/adsecurity.org\/?p=483\">KRBTGT account password <\/a>so only a valid Kerberos server can decrypt it. In an environment with RODCs, each RODC has its own krbtgt account with a unique password. This means that if a user presents a TGT received from a RODC to a writable DC, the DC dumps the TGT and generates a new one.<a href=\"http:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-AS-REP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1056\" title=\"Capture-KRB5-AS-REP\" src=\"https:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-AS-REP.png\" alt=\"\" width=\"738\" height=\"371\" \/><\/a><strong>Packet Data:<br \/>\nThe KDC replies with the TGT and session key<\/strong><br \/>\nKRB5: Kerberos AS-REP<br \/>\nClient Name (Principal): User<br \/>\nTicket (Tkt-vno): 5<br \/>\nRealm: ADSECURITY.ORG<br \/>\nServer Name: krbtgt\/ADSecurity.org<br \/>\nenc-part aes256-cts-hmac-sha1-96<br \/>\n[Encrypted Key]<br \/>\nenc-part rc4-hmac<br \/>\n[Encrypted Key]<\/li>\n<li><strong>The user opens Outlook which locates the user\u2019s mailbox server and requests a TGS ticket for access.<\/strong><br \/>\nThe workstation locates the Exchange mailbox server containing the user\u2019s mailbox (MetcorpEXMB02.ADSecurity.org) and reads the ServicePrincipalName attribute on the computer account in AD (ExchangeMDB\/ADSecurityEXMB02.ADSecurity.org \u2013 there are a bunch, so I will just use this one for the example).<br \/>\nThe client then sends a TGS-REQ to the KDC requesting a TGS for access to the Exchange service running on the MetcorpEXMB02 Exchange server. The TGS request includes the target server SPN, the user\u2019s TGT (encrypted with the <strong>(B)<\/strong> key), and an authenticator (encrypted with the<strong> (C)<\/strong>key).Keys used:<strong><br \/>\n(B)<\/strong> Kerberos account\u2019s password derived key<strong><br \/>\n(C)<\/strong>User\u2019s Kerberos service (KDC) session key<a href=\"http:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-TGS-REQ-APREQ-exchangeMDB.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1052\" title=\"Capture-KRB5-TGS-REQ-APREQ-exchangeMDB\" src=\"https:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-TGS-REQ-APREQ-exchangeMDB.png\" alt=\"\" width=\"890\" height=\"513\" \/><\/a><strong>Packet Data:<\/strong><br \/>\n<strong>User account requests service ticket (TGS) for\u00a0MetcorpEXMB02 Exchange service access<\/strong><br \/>\nKRB5: Kerberos TGS-REQ<br \/>\n1 Forwardable: FORWARDABLE tickets are allowed\/requested<br \/>\n1 Renewable: This ticket is RENEWABLE<br \/>\n1 Canonicalize: This is a request for a CANONICALIZED ticket<br \/>\nRealm: ADSECURITY.ORG<br \/>\nServer Name: ExchangeMDB\/MetcorpEXMB02.ADSecurity.org<br \/>\ntill: 2037-09-12 02:48:05 (UTC)<br \/>\nNonce: 1976014234<br \/>\nEncryption Types: aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac rc4-hmac-exp rc4-hmac-old-exp des-cbc-md5KRB5: Kerberos AS-REP<\/li>\n<li><strong>The KDC validates the TGS request and replies with the TGS.<\/strong><br \/>\nThe KDC replies with a TGS-REP packet to the client which includes 2 session tickets (TGS) (2?). One of the session tickets is encrypted with the user\u2019s (KDC) session key (<strong>(C)<\/strong> key) and the second one is encrypted with the target server\u2019s (KDC) session key (<strong>(D)<\/strong> key). The second TGS also includes the user\u2019s group membership &amp; associated SIDs which provides the server information used to determine authorization and help the server determine: Is the user allowed to access the server\u2019s resource?<br \/>\nBoth session tickets include a new session key\u00a0(<strong>(E)<\/strong>key) for exclusive use in communication between the Exchange server and the user.Keys used:<strong><br \/>\n(C)<\/strong> User\u2019s Kerberos service (KDC) session key<strong><br \/>\n(D)<\/strong> Server\u2019s Kerberos service (KDC) session key<strong><br \/>\n(E)<\/strong>User-Exchange service session key<a href=\"http:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-TGS-REP-APREP-exchangeMDB.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1058\" title=\"Capture-KRB5-TGS-REP-APREP-exchangeMDB\" src=\"https:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/Capture-KRB5-TGS-REP-APREP-exchangeMDB.png\" alt=\"\" width=\"594\" height=\"274\" \/><\/a><strong>Packet Data:<\/strong><br \/>\n<strong>The KDC replies with the service ticket (TGS) for\u00a0MetcorpEXMB02 Exchange service access<\/strong><br \/>\nKRB5: Kerberos TGS-REP<br \/>\nClient Name (Principal): User<br \/>\nTicket (Tkt-vno): 5<br \/>\nRealm: ADSECURITY.ORG<br \/>\nServer Name: krbtgt\/ADSecurity.org<br \/>\nenc-part aes256-cts-hmac-sha1-96<br \/>\n[Encrypted Key]<br \/>\nenc-part rc4-hmac<br \/>\n[Encrypted Key]<\/li>\n<li><strong>The client authenticates to the Exchange server with the session ticket.<\/strong><br \/>\nThe client sends the target server (MetcorpEXMB02.ADSecurity.org) an AP-REQ packet containing the TGS it received from the KDC encrypted with the server\u2019s session key\u00a0(<strong>(D)<\/strong> key) and an authenticator encrypted with the user-Exchange server session key (<strong>(E)<\/strong> key) . This lets the Exchange server know that the user was authenticated to the Kerberos domain (realm) and that the TGS is valid (assuming the Exchange server is able to decrypt it). The client also sends the server an authenticator (timestamp) encrypted with the session key\u00a0(<strong>(E)<\/strong>key) it received from the KDC in Step 5. The Exchange server decrypts the TGS, extracts the user\u2019s group information, extracts the session key, and uses the session key to decrypt the authenticator. This provides the server enough information to make an authorization decision. If the user is authorized to connect to the server, it sends a reply.Keys used:<strong><br \/>\n(C)<\/strong> User\u2019s Kerberos service (KDC) session key<strong><br \/>\n(D)<\/strong> Server\u2019s Kerberos service (KDC) session key<strong><br \/>\n(E)<\/strong> User-Exchange service session key<\/li>\n<li><strong>The Exchange server replies that authorization to the service is granted.<br \/>\n<\/strong>The Exchange server sends the client an AP-REP packet which includes its own authenticator encrypted with the user-Exchange service session key (<strong>(E)<\/strong> key)<strong>. <\/strong>This assumes the client requested mutual authentication which is the default configuration.Keys used:<strong><strong><strong><br \/>\n<\/strong><strong>(E)<\/strong><\/strong><\/strong>User-Exchange service session key<\/li>\n<\/ol>\n<p><strong>Note:<\/strong><br \/>\nThis is a simplified explanation of Kerberos and doesn\u2019t cover everything involved in this process.<\/p>\n<p><strong>Kerberos Key Storage Locatons<br \/>\n<\/strong><\/p>\n<p>Workstation Keys:<\/p>\n<ul>\n<li>User Key<\/li>\n<li>Ticket-Granting Ticket<\/li>\n<li>Ticket-Granting Service Session Key<\/li>\n<li>Service Ticket<\/li>\n<li>Session Key<\/li>\n<\/ul>\n<p>Domain Controller:<\/p>\n<ul>\n<li>User Key<\/li>\n<li>Ticket-Granting Service Key<\/li>\n<li>Service Key<\/li>\n<\/ul>\n<p>Server:<\/p>\n<ul>\n<li>Service Key<\/li>\n<li>Session Key<\/li>\n<\/ul>\n<p><strong>TICKETING<\/strong><\/p>\n<p>There are different \u201ctickets\u201d that are used to authenticate a client to a server\u2019s resource. The client can be a user or a computer.<\/p>\n<p>The Ticket Granting Ticket (TGT) is the first ticket given to the requester (user or computer.<\/p>\n<p>The TGT is comprised of the following fields:<\/p>\n<ul>\n<li>Ticket Version Number<\/li>\n<li>Realm: The AD domain name in CAPITAL LETTERS<\/li>\n<li>Server Name: The KDC<\/li>\n<li>Flags: Kerberos Flag options<\/li>\n<li>Key<\/li>\n<li>Client Realm: The client\u2019s AD domain name in CAPITAL LETTERS<\/li>\n<li>Client Name: The user name<\/li>\n<li>Transited: If the user is in a different domain than the resource, Kerberos tickets have transited.<\/li>\n<li>Authentication<\/li>\n<li>Time<\/li>\n<li>Start Time<\/li>\n<li>End Time<\/li>\n<li>Renew Till<\/li>\n<li>Client Address<\/li>\n<li>Authorization Data<\/li>\n<\/ul>\n<p>Ticket Flags:<\/p>\n<ul>\n<li>FORWARDABLE<\/li>\n<li>FORWARDED<\/li>\n<li>PROXIABLE<\/li>\n<li>PROXY<\/li>\n<li>MAY-POSTDATE<\/li>\n<li>POSTDATED<\/li>\n<li>INVALID<\/li>\n<li>RENEWABLE<\/li>\n<li>INITIAL<\/li>\n<li>PRE-AUTHENT<\/li>\n<li>HW-AUTHENT<\/li>\n<\/ul>\n<p>Supported Encryption Algorithms &amp; Key Lengths:<\/p>\n<ul>\n<li><a href=\"http:\/\/blogs.msdn.com\/b\/openspecification\/archive\/2011\/05\/31\/windows-configurations-for-kerberos-supported-encryption-type.aspx\">AES<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 128<br \/>\nAES128-CTS-HMAC-SHA1-96 (0x08)<\/li>\n<li><a href=\"http:\/\/blogs.msdn.com\/b\/openspecification\/archive\/2011\/05\/31\/windows-configurations-for-kerberos-supported-encryption-type.aspx\">AES\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/a>256<br \/>\nAES256-CTS-HMAC-SHA1-96 (0x10)<\/li>\n<li><a href=\"http:\/\/tools.ietf.org\/html\/rfc4757\">RC4-HMAC<\/a> \u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0 128<br \/>\nRC4-HMAC\u00a0 (0x04)<\/li>\n<li><a href=\"http:\/\/support.microsoft.com\/kb\/296842\">DES-CBC-CRC<\/a> \u00a0 \u00a0\u00a0\u00a0 56<br \/>\nDES-CBC-CRC\u00a0 (0x01)<\/li>\n<li><a href=\"http:\/\/www.freesoft.org\/CIE\/RFC\/1510\/76.htm\">DES-CBC-MD5<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0 56<br \/>\nDES-CBC-MD5\u00a0 (0x02)<\/li>\n<\/ul>\n<p><strong>DEFAULT AD KERBEROS POLICY SETTINGS<\/strong><\/p>\n<p><strong> <a href=\"http:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/DefaultDomainPolicy-Kerberos.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-978 aligncenter\" title=\"DefaultDomainPolicy-Kerberos\" src=\"https:\/\/blogs.metcorpconsulting.com\/tech\/wp-content\/uploads\/2012\/01\/DefaultDomainPolicy-Kerberos-300x76.jpg\" alt=\"\" width=\"463\" height=\"116\" \/><\/a><\/strong><\/p>\n<ul>\n<li><strong>Enforce user logon restrictions: <\/strong>Enabled<\/li>\n<li><strong>Maximum lifetime for service ticket: <\/strong>600 minutes (10 hours)<\/li>\n<li><strong>Maximum lifetime for user ticket:<\/strong> 600 minutes (10 hours)<\/li>\n<li><strong>Maximum lifetime for user ticket renewal :<\/strong> 7 days<strong><br \/>\n<\/strong><\/li>\n<li><strong>Maximum tolerance for computer clock synchronization: <\/strong>5 minutes<\/li>\n<\/ul>\n<p><strong>References:<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/bb742516.aspx\">Kerberos Explained<\/a><\/li>\n<li><a href=\"http:\/\/blogs.technet.com\/b\/askds\/archive\/2008\/03\/06\/kerberos-for-the-busy-admin.aspx\">Kerberos for the Busy Admin<\/a><\/li>\n<li><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/cc237917.aspx\">[MS-PAC]: Privilege Attribute Certificate Data Structure<\/a><\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Kerberos_%28protocol%29\">The Kerberos Protocol (Wikipedia)<\/a><\/li>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/aa378747%28v=vs.85%29.aspx\">Microsoft Kerberos Protocol (MSDN)<\/a><\/li>\n<li><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/cc780469%28WS.10%29.aspx\">What is Kerberos Authentication<\/a><\/li>\n<li><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/cc739058%28WS.10%29.aspx\">Kerberos Authentication Technical Reference<\/a><\/li>\n<li><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/cc772815%28WS.10%29.aspx\">How the Kerberos Version 5 Authentication Protocol Works<\/a><\/li>\n<li><a href=\"http:\/\/tools.ietf.org\/html\/rfc3244\">Microsoft&#8217;s Kerberos Extensions &#8211; RFC 3244: &#8220;Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols&#8221;<\/a><\/li>\n<li><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ff649429.aspx\">Kerberos Technical Supplement for Windows<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Kerberos Overview Kerberos is a protocol with roots in MIT named after the three-headed dog, Cerberus. Named because there are 3 parties: the client, the resource server, and a 3rd party (the Key Distribution Center, KDC). Kerberos can be a difficult authentication protocol to describe, so I will attempt to simplify it as best as &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/adsecurity.org\/?p=227\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,11,2],"tags":[75,76,77,78,79,80,81,392,393,394,82],"class_list":["post-227","post","type-post","status-publish","format-standard","hentry","category-continuing-education","category-microsoft-security","category-technical-reference","tag-active-directory","tag-as-rep","tag-as-req","tag-configuration","tag-domain-controller","tag-kdc","tag-kerberos","tag-kerberosexplained","tag-kerberosoverview","tag-krbtgt","tag-windows-server","item-wrap"],"_links":{"self":[{"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/posts\/227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/adsecurity.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=227"}],"version-history":[{"count":15,"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/posts\/227\/revisions"}],"predecessor-version":[{"id":3977,"href":"https:\/\/adsecurity.org\/index.php?rest_route=\/wp\/v2\/posts\/227\/revisions\/3977"}],"wp:attachment":[{"href":"https:\/\/adsecurity.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adsecurity.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adsecurity.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}