-
The password you type in is converted to an NTLM hash.
- The current time on your local computer is captured.
- The current time is then encrypted using your NTLM hash
- This encrypted timestamp is sent to the KDC (Key Distribution Center)
- The KDC on Active Directory networks is always the Domain Controller
-
The Domain Controller (KDC) receives this timestamp encrypted with an NTLM hash.
- The KDC knows what the user’s NTLM hash should be.
- Remember, this value is stored in the
ntdis.dit file
- The KDC uses the NTLM hash for your user and attempts to decrypt the value you sent.
- The decrypted value should be a plaintext timestamp.
- The KDC will compare this timestamp to the current time on the Domain Controller.
- If the two timestamps are close, it will assume the user is attempting to authenticate typed in the correct password.
- (Key Sec+ Concept): Network Time Protocol (NTP) is an important component of Active Directory networks because of this check. Clocks need to be synchronized.
-
Once the KDC has verified that the correct password was typed in via this timestamp comparison, it will send back two things:
- A randomly generated ‘session key’ that is encrypted using the user’s NTLM HASH
- A ‘Ticket Granting Ticket’ (TGT) containing fields like:
- Username
- Time authenticated
- Validity Period
- Authorization Data (What groups are you a part of?)
- This TGT is encrypted using the NTLM hash of the KRBTGT account, which will always have a super long, super complex password. The user cannot decrypt the TGT, but they can send it back to the Domain Controller later.
- When the user returns this TGT to the Domain Controller later, the Domain Controller (KDC) can decrypt the TGT to verify its contents.
That’s a lot, and it’s only just the tip of the iceberg!
Here’s a summary:
- You authenticate by encrypting the time with the NTLM hash of your password.
- The KDC (Domain Controller) verifies the encrypted timestamp.
- The KDC sends back
- A session key encrypted with the user’s NTLM hash
- The user can decrypt this session key
- A TGT the user can not decrypt
- This TGT can only be decrypted by the Domain Controller later.
The process above is the default on Active Directory networks.