- AD Kerberos Privilege Elevation Vulnerability: The Issue
- Detailed Explanation of MS14-068
- MS14-068 Exploit POC with the Python Kerberos Exploitation Kit (aka PyKEK)
- Exploiting MS14-068 Vulnerable Domain Controllers Successfully with the Python Kerberos Exploitation Kit (PyKEK)
- PyKEK Kerberos Packets on the Wire aka How the MS14-068 Exploit Works
So it looks like there is an issue with PAC signatures. But what specifically? If we take a look at the kdsvc.dll patch for Server 2008, there are 3 changed functions:
As expected, two of the three involve PAC (Privilege Attribute Certificate). VerifyPacSignature looks promising. Let’s see what changed there.
More or less, a comparison like above ( cmp <something>, 0xFFFFFF76 ) was added in two places. The result of this comparison will either lead to further processing or to returning a Kerberos specific error as seen below.
The value 0xFFFFFF76 can be traced upward in the patched function to a nearby call to _CDLocateChecksum.
This function is imported from cryptdll.dll, so opening that in IDA we can follow the second argument to CDLocateChecksum and see that the source of this value seems to come from the _CheckSumFns array.