AD-KRB-004: Accounts limited to DES encryption¶
medium Kerberos MITRE ATT&CK T1558 Reads: LDAP
Enabled accounts flagged to use only DES Kerberos encryption, a broken cipher that current Windows disables by default.
Also known as: des-only
Why it matters¶
Use only Kerberos DES encryption types for this account tells the KDC to issue
tickets for the account with DES (DES-CBC-CRC or DES-CBC-MD5). DES has a 56-bit
key: a ticket encrypted with it can be brute-forced to the account's key regardless of
how strong the password is, and the key then lets an attacker forge service tickets to
that account (a silver ticket) or, for a user account, act as that user.
Windows 7, Windows Server 2008 R2 and later do not support DES by default, so the account mostly just fails Kerberos. The usual "fix" for that failure is to turn DES back on in Network security: Configure encryption types allowed for Kerberos on the domain controllers, which reopens the weakness for this account and for any other account that asks for DES.
How ad-doctor detects it¶
From the LDAP snapshot: every enabled account, user or computer, with the
USE_DES_KEY_ONLY bit (0x200000) in userAccountControl. One finding lists the
accounts by sAMAccountName, for example des_user.
ad-doctor does not read the DCs' Kerberos encryption policy, so it cannot tell whether DES is actually usable in the domain; the flag alone is reported.
Attributes and probes read
userAccountControl
Severity¶
Always medium. DES is disabled by default on Windows 7 / Server 2008 R2 and later, so the flag is usually a leftover; it becomes dangerous when someone re-enables DES on the domain controllers to make the account work again.
False positives and limits¶
- A DES-only application that is still in use. Then the real problem is the application: plan its replacement, and record the account in an accepted-risk file with an owner and an expiry date until then.
Fix¶
-
List the accounts (read-only):
-
Clear the flag on each account:
-
Reset the account's password so that AES keys are generated for it, and allow only AES if the account has an SPN:
-
Make sure DES stays off on domain controllers: the policy Network security: Configure encryption types allowed for Kerberos should not include
DES_CBC_CRCorDES_CBC_MD5.
Verify¶
To accept the risk instead, add an entry to the file passed with --accept (see accepted risks):
[[accept]]
check = "AD-KRB-004"
objects = ["..."] # optional; without it the whole check is accepted
reason = "..."
expires = 2027-03-31
Related checks¶
References¶
Microsoft and vendors
- Network security: Configure encryption types allowed for Kerberos
- Use the UserAccountControl flags to manipulate user account properties
Specifications
MITRE ATT&CK
Available since 0.1.0.