A couple of years ago we added Windows 2008 R2 Domain Controllers to our Windows 2003 domain and completed the process of moving off of the old 2003 to the new and finally changed the functional level to 2008 R2. As far as everything we were using
things were functioning as expected. However here recently we've been working on enhancing our GPO configuration for our desktops to increase security.
One of the changes we made was based off of DoD STIG settings and according to MS documentation was supported by our W7 & W10 machines connecting to our Windows 2008 R2 domain.
Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options -> Network security: Configure encryption types allowed for Kerberos -> checking only AES128, AES256, & Future
After that change was made though the test machines (w7 & W10) all started getting popups telling them they needed to lock their machine and log back in because the password was out of sync. Doing so did not resolve the issue and then if you tried
to change the account password from the computer you get an error about the KDC not supporting the encryption requested. The following error was logged in the Domain Controller too.
While processing an AS request for target service krbtgt, the account USER_ACCOUNT did not have a suitable key for generating a Kerberos ticket (the missing key has an ID of 1). The requested etypes : 18 17 3. The accounts available
etypes : 23 -133 -128. Changing or resetting the password of USER_ACCOUNT will generate a proper key.
Researching etypes 18 & 17 are AES128 & AES256 which is what I expected but then on the Domain Side its telling me it only supports RC4 and I couldn't figure out what -133 & -128 were. So I did more research and was assuming the domain
when upgraded just never added the AES options so I started delving into klist & ksetup. However I started running into errors.
ksetup /getenctypeattr MY.DOMAIN
Query of attributes on MY.DOMAIN failed with 0xc0000034
Failed /GetEncTypeAttr : 0xc0000034
ksetup /AddEncTypeAttr MY.DOMAINAES128-CTS-HMAC-SHA1-96Query of attributes onMY.DOMAINfailed with 0xc0000034
Failed /AddEncTypeAttr : 0xc0000034
So I was messing around with klist on the machines that couldn't login and were throwing the error on the Domain Controller.
klist
Current LogonId is 0:0x123456789
Cached Tickets: (0)
Then I ran it on any of our other machines that did not have the new GPO changes and was a bit surprised to see everything in my domain is already using AES256...
Current LogonId is 0:0x123456789
Cached Tickets: (1)
#0> Client: USER_ACCOUNT @ MY.DOMAIN
Server: krbtgt/MY.DOMAIN @ MY.DOMAIN
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e00000 -> forwardable renewable initial pre_authent
Start Time: 6/15/2016 9:47:25 (local)
End Time: 6/15/2016 19:47:25 (local)
Renew Time: 6/22/2016 9:47:25 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
So while my KDC is not advertising it does AES once a machine talks to it then it starts actually using AES. I went back to that GPO value I set and added to let it request RC4 and as soon as I did that those test machines all started talking to the
KDC, got new tickets, the popup stopped showing, and all of the tickets were AES.
So yippy I'm actually running in the level I was trying to enforce but in order to do it I have to allow the ability to down level to RC4...
I've done a bunch of research online and I can't seem to figure out how to get the KDC to correctly report what it supports so that I can remove the usage of RC4.
Systems Administrator Senior - University of Central Florida