PAC Signing mit Kerberos
Diese Seite entstand rund um die Windows Security Changes 2023, mit denen Microsoft durch eine Veränderung des PAC-Verhaltens auf eine Lücke (CVE-2022-37967) reagiert und Windows sicherer macht.
The November 8, 2022 Windows updates address security
bypass and elevation of privilege vulnerabilities with
Privilege Attribute Certificate (PAC) signatures. This
security update addresses Kerberos vulnerabilities where an
attacker could digitally alter PAC signatures, raising their
privileges.
Quelle:
https://support.microsoft.com/en-gb/topic/kb5020805-how-to-manage-kerberos-protocol-changes-related-to-cve-2022-37967-997e9acc-67c5-48e1-8d0d-190269bf4efb
Das Enforcement von CVE-202237967 am 11. April wurde auf 13.
Jun 2023 verschoben. Siehe Office 365 Message Center Post
MC541054 "Changes to the deployment phase for
CVE-2022-37967"
https://admin.microsoft.com/AdminPortal/home?#/MessageCenter/:/messages/MC541054
Achtung: KrbtgtFullPacSignature=2 erfordert den Forest functional Level Windows 2012+, damit das KRBGT-Konto auch AES nutzt.
Leider konnte damit auch das ein oder andere Altsystem aussperrt werde.
Was ist PAC?
Das Privileged-Attribute-Zertifikat (PAC) ist eine Erweiterung der Kerberos-Service-Tickets, die Informationen über den authentifizierenden Benutzer und seine Berechtigungen enthält. Der DC fügt die PAC-Informationen zum Kerberos-Ticket hinzu, wenn der Benutzer ein solches mittels seinem Ticket Granting Ticket beim KDC anfordert. Mit dem Service Ticket geht der Client dann zum Service, der allein aus dem PAC ermitteln kann, wer der anfragende Client ist und welche Berechtigungen oder Gruppenmitgliedschaften hat. Der Service muss nicht mehr mit dem DC sprechen, wie dies bei NTLM der Fall wäre. Aber dazu muss das PAC natürlich sicher gegen Veränderungen sein.
Die Lücke (CVE-2022-37967) hat nun einen Weg aufgezeigt, wie ein vom DC ausgestelltes Kerberos Ticket verändert werden kann, dass der Benutzer mehr Berechtigungen im PAC hat aber der Service die Fälschung nicht erkennt. Angriffe auf das PAC sind daher für Angreifer interessant und Lücken wurden schon immer mal wieder gefunden und gefixt.
Die PAC Validation addiert eine Rückfrage des Servers gegen den DC, ob das vorgezeigte Kerberos-Ticket wirklich unverändert ist
- 4.2 Kerberos PAC Validation
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-apds/1d1f2b0c-8e8a-4d2a-8665-508d04976f84 - 2.8 PAC_SIGNATURE_DATA
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pac/6e95edd3-af93-41d4-8303-6c7955297315 - 3.3 Signatures
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pac/4174c356-68c7-4c60-91e1-50a02d1383be - CVE-2014-6324
https://msrc.microsoft.com/blog/2014/11/additional-information-about-cve-2014-6324/ - MS14-068 - Critical Vulnerability in
Kerberos Could Allow Elevation of Privilege
(3011780)
https://learn.microsoft.com/en-us/security-updates/SecurityBulletins/2014/ms14-068 - KB5020805: How to manage Kerberos
protocol changes related to CVE-2022-37967
https://support.microsoft.com/en-gb/topic/kb5020805-how-to-manage-kerberos-protocol-changes-related-to-cve-2022-37967-997e9acc-67c5-48e1-8d0d-190269bf4efb - CVE-2021-42287 - KB5008380—Authentication updates
https://support.microsoft.com/en-gb/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041
"After installing Windows updates dated November 9, 2021 or later, PACs will be added to the TGT of all domain accounts, even those that previously chose to decline PACs"
Rollout Zeitplan
Um die Sicherheit zu gewährleisten, können Sie "PAC Signing" als auch "PAC Validation" einsetzen. Beim Signing wird das PAC "digital signiert" und bei PAC-Verification fragt der Service zur Sicherheit noch mal beim DC mit, ob die Signatur auch korrekt ist. Allerdings können Sie nun nicht direkt auf allen Systemen den besten Schutz sofort aktivieren. Je älter ein Betriebssystem ist, desto schwächer sind seine Default-Einstellung und Möglichkeiten. Es ist daher wahrscheinlich, dass Sie erst ein Update auf alle Systeme installieren müssen und dann auch noch prüfen, welche Systeme mangels Update danach gar nicht mitspielen können.
Sie kennen das sicherlich am Beispiel des mittlerweile vorhandenen TLS 1.2 Enforcement Zwangs und der Abschaltung von TLS1.1, 1.0. SSL3 und dass z.B. der Internet Explorer auf Windows XP sich nicht mehr verbinden kann. Auch die DES Abschaltung bei Kerberos (Siehe Kerberos RC4 Abschaltung) hat alte Systeme ausgesperrt, wenn sie nicht absichtlich ihre Sicherheit geschwächt haben.
Das Update von PAC-Signing im November 2022 fällt auch unter diese Kategorie: Sie installieren zuerst die Updates, dann prüfen Sie, wer noch das weniger sicherere Verfahren nutzt, überlegen sich Lösungen, ehe Sie am Ende dann den Schutz scharf schalten.
Das bedeutet aber auch, dass allein die Installation des Nov 2022 Updates die Lücke noch nicht schließt.
Alle beteiligten System müssen generell erst einmal PAC Signing unterstützen, ehe Sie als Administrator die Funktion erst einmal als Default aktivieren und im letzten Schritt auf dem Service die Prüfung erzwingen können. Microsoft hat für den CVE-2022-37967 folgende Phasen vorgesehen:
Das Enforcement von CVE-202237967 am 11. April wurde auf 13. Jun 2023 verschoben. Siehe Office 365 Message Center Post MC541054 "Changes to the deployment phase for CVE-2022-37967"
Auf jede Phase können sie für eine gewisse Zeit Einfluss nehmen aber nicht auf Dauer unterbinden.
Datum | Aktion |
---|---|
8. Nov 2022 |
Mit der Installation der Security Updates wird das Verhalten so verändert, dass der DC alle neuen Kerberos-Tickets mit PAC Signing ausstattet aber die Überprüfung noch nicht erzwungen wird. Es könnte schon jetzt passieren, das gewisse Dienste mit der PAC-Extension nicht zurecht kommen und sich Anwender zumindest nicht per Kerberos anmelden können. Notfalls können Sie für diesen Dienst den SPN entfernen, damit Clients auf NTLM oder andere Verfahren umstellen oder die aktualisieren den Service, damit er mit PAC-signierte Tickets umgehen kann. Das Security Update wertet aber einen neuen Schlüssel in der Registrierung aus, über den sie die Ausstellung von PAC-signierten Kerberos-Tickets noch unterbinden können. Der Standardwert ist 1 für "Add Signature, but not verify". Mit einem "0" verhindern sie dies. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "KrbtgtFullPacSignature"=dword:00000000 Ich rate dringend davon ab, diesen Wert auf "0" zu setzen sondern besser die betroffenen Dienste zu fixen. Das Auditing auf diese unsicheren Tickets ist noch von Anfang an angeschaltet, da sonst alle noch nicht aktualisierten Clients eine Meldung generieren würde. Das könnten Sie aber schon früher aktivieren: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "KrbtgtFullPacSignature"=dword:00000001 Die Aktivierung des Auditing aktiviert auch immer die Signierung mit. Sonst gäbe es ja nichts zu vermelden. |
13. Dez 2022 |
Wenn nach ca. 1 Monat dann alle Clients das Nov 2022 Update bekommen haben, dann sollte Microsoft im Dezember 2022 per Default das Auditing einschalten. Wenn dies nicht passiert, dann setzen Sie bitten den Key manuell. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "KrbtgtFullPacSignature"=dword:00000002 In einem aktuellen Netzwerk sollten nun keine Meldungen erscheinen. Es dürften aber nur noch sehr alte Clients sein für die es eh keinen Support mehr gibt oder auf denen Sie per Konfiguration. Suchen Sie im System-Eventlog der DCs nach EventIDs 43/44 |
13. Jun 2023 (vormals 11. April 2023 |
Die nächste Stufe wird aktiviert, indem eine Einstellung von "KrbtgtFullPacSignature=0" nicht mehr akzeptiert wird. Ab jetzt wird immer signiert. Wer bis dahin die Systeme mit Problemen aufgrund von "Full PAC Signature" nicht angepasst wurden, kann auf diese nicht mehr per Kerberos zugreifen. Das Risiko ist allerdings sehr gering, da selbst Windows 2008 mit PAC umgehen kann. Schon Ende 2021 gab es eine Sicherheitslücke, die Microsoft mit einem Update gefixt hat:
|
11. Jul 2023 |
Nun wird es wieder ernst, denn ab dem Zeitpunkt wird PAC Signing überprüft (Enforce) und die Anforderung werden bei einem Fehler als ungültig verworfen. Nun kommen Clients nicht mehr an die Server, wenn die "Full PAC Signature" fehlt. Sie können aber noch diesen Zwang für einige Wochen abschalten: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "KrbtgtFullPacSignature"=dword:00000002 |
10. Okt 2023 |
Wer bislang nicht selbst die volle Schutzfunktion aktiviert hat, kann ab diesem Zeitpunkt diese aber auch nicht mehr abschalten. Alle Clients signieren und die Server erzwingen PAC Signatur, was dem Wert "KrbtgtFullPacSignature"=dword:00000003" entspricht. |
Auf der einen Seite ist dies ein fixer Zeitplan, der speziell Firmen mit inkompatiblen Geräten in Zeitnot bringen kann. Auf der anderen Seite sind ihre Systeme erst ab dem 11. Jul 2023 ihr System wirklich abgesichert, wenn Sie nicht schon vorher per Konfiguration die strenge Prüfung vorziehen.
PacRequestorEnforcement
Es gibt noch einen weiteren Schlüssel, der von Microsoft nicht direkt in Verbindung mit PAC-Signing und dem Nov 2022 Update genannt wird aber ebenso wichtig ist, um die Lücke "CVE-2021-42287" zu fixen. Die Updates sind aber schon im Nov 2021 Security Update enthalten.
After installing Windows updates dated November 9, 2021 or later, PACs will be
added to the TGT of all domain accounts, even those that previously chose to
decline PACs.
Quelle KB5008380—Authentication updates (CVE-2021-42287)
https://support.microsoft.com/en-gb/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041
Auch hier hat Microsoft eine abgestuftes Rollout umgesetzt:
Datum | Aktion |
---|---|
9. Nov 2021 |
Initiale Phase mit der Installation des Updates bringt neben einigen Updates auch die Auswertung des Schlüssels "PacRequestorEnforcement" mit. Der Default ist aber immer noch 0, wenn der Wert nicht gesetzt ist. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "PacRequestorEnforcement "=dword:00000000 |
12. Jul 2021 |
Ab dem Zeitpunkt ist der neue Default für "PacRequestorEnforcement=1" und sie können es nicht mehr auf "0" setzen. Das PAC wird nun immer addiert aber noch nicht geprüft Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "PacRequestorEnforcement "=dword:00000001 |
11. Okt 2021 |
Nun wird das Enforcement umgesetzt und der Wert von "PacRequestorEnforcement" wird nicht mehr ausgewertet. Es entspricht nun dem Wert 2 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kdc] "PacRequestorEnforcement "=dword:00000002 |
Wenn Sie damals besser vorbereitet sein wollten, dann hätten Sie schon damals den Wert möglichst früh auf "2" stellen sollen. Mittlerweile sollten aber alle DC dieses Updates schon lange haben und "PacRequestorEnforcement" ist aktiv. Damals gab es aber schon die ein oder anderen Probleme speziell mit Linux-Systemen.
- CVE-2021-42287
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-42287 - KB5008380—Authentication updates (CVE-2021-42287)
https://support.microsoft.com/en-gb/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041 - Microsoft KB5008380 for CVE-2021-42287: Unable to join Linux vm to AD domain
when in "Enforcement phase".
https://learn.microsoft.com/en-us/answers/questions/695954/microsoft-kb5008380-for-cve-2021-42287-unable-to-j - PACRequestorEnforcement and Kerberos
Authentication
https://blog.netwrix.com/2022/01/10/pacrequestorenforcement-and-kerberos-authentication/ - Microsoft CVE-2021-42287 and PacRequestorEnforcement: Unable to join Linux
instance to Active Directory domain
https://access.redhat.com/discussions/6645871 - Linux: Microsoft recommendation on enforcement mode against Active Directory
takeover may cause issues
https://borncity.com/win/2022/01/29/linux-microsoft-empfehlung-zum-enforcement-mode-gegen-active-directory-bernahme-kann-probleme-machen/ - Configuring a Squid Server to authenticate against Active Directory via
Kerberos
http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory - RHEL 6.x Active Directory integration and machine password resets
https://access.redhat.com/discussions/1283873
Überwachung
Sie sollten aber auf jeden Fall das Eventlog überwachen:
Eventlog |
Type |
Source |
EventID |
Bedeutung |
---|---|---|---|---|
System |
Warning |
Kdcsvc |
43 |
Die Überprüfung der "Full PAC Signature" ist fehlgeschlagen, d.h. der DC/Server/Client scheint das noch nicht richtig zu senden und wird ab dem 10 Okt 2023 ein Problem bekommen. |
System |
Warning |
Kdcsvc |
44 |
Das Ticket enthält noch keine "Full PAC Signature", d.h. der DC/Server/Client scheint das noch nicht zu senden und wird ab dem 10 Okt 2023 ein Problem bekommen. |
In beiden Fällen sollten sie prüfen, warum das Ticket keine gültige "Full PAC Signature" enthält. Wenn Sie keine Events auf aktualisierten DC finden, dann können und sollten Sie schon vorher die KrbtgtFullPacSignature erzwingen, denn bis zum 10 Okt 2023 noch könnten Sie es auch wieder abschalten.
PAC mit Wireshark
Wenn Sie mit Wireshark oder einem anderen Tool eine unverschlüsselte Kerberos-Verbindung mitschneiden, dann finden Sie z.B. in einem AS-REQ die Information, das PAC angefordert wird:
- 1.1 Glossary privilege attribute
certificate (PAC)
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/e720dd17-0703-4ce4-ab66-7ccf2d72c579#gt_26456104-0afb-4afe-a92e-ac160a9efdf8 - 3.1.5.1 Pre-authentication Data
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/ae60c948-fda8-45c2-b1d1-a71b484dd1f7 - 2.2.10 PA-PAC-OPTIONS
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/99721a01-c859-48d1-8310-ec1bab9b2838 - 2.2.3 KERB-PA-PAC-REQUEST
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/765795ba-9e05-4220-9bd3-b34464e413a7 - Kerberos Wireshark Captures: A Windows
Login Example
https://medium.com/@robert.broeckelmann/kerberos-wireshark-captures-a-windows-login-example-151fabf3375a
Blackhat
Man muss kein Hacker sein, aber Vorträge auf der Blackhat liefert oft viele Hintergrundinformationen. Sie zeigen aber auch, dass gefährlich ist, schwache Verschlüsselungsverfahren oder unsichere Clients zuzulassen. Programme wie Mimikatz u.a. versuchen z.B. das TGT abzugreifen, um damit weitere Tickets ohne Beisein des Benutzers zu erstellen. Angreifer können aber auch PAC umgehen, wenn der DC PAC nicht erzwingt.
WATCHING THE WATCHDOG: PROTECTING KERBEROS
AUTHENTICATION WITH NETWORK MONITORING
https://www.blackhat.com/docs/eu-15/materials/eu-15-Beery-Watching-The-Watchdog-Protecting-Kerberos-Authentication-With-Network-Monitoring-wp.pdf
Watching The Watchdog: Protecting
Kerberos Authentication With Network Monitoring
https://www.youtube.com/watch?v=7qbSFYVQJ7A&ab_channel=BlackHat
Weitere Links
- Microsoft 365 Message Center
- RPC Sealing
- TLS 1.2 Enforcement
- Windows Security Changes 2023
-
Checkliste Active Directory Absicherung
Keine Liste ist komplett aber fangen Sie heute an und hören sie nie auf - Kerberos RC4 Abschaltung - DES ist weg und RC4 will auch keiner mehr haben. Weckruf durch Nov 2022 Updates
- MC541054 "Changes to the deployment phase
for CVE-2022-37967"
https://admin.microsoft.com/AdminPortal/home?#/MessageCenter/:/messages/MC541054
Das Enforcement von CVE-202237967 am 11. April wurde auf 13. Jun 2023 verschoben. Siehe Office 365 Message Center Post - KB5020805: How to manage Kerberos
protocol changes related to CVE-2022-37967
https://support.microsoft.com/en-gb/topic/kb5020805-how-to-manage-kerberos-protocol-changes-related-to-cve-2022-37967-997e9acc-67c5-48e1-8d0d-190269bf4efb - KB5008380—Authentication updates
(CVE-2021-42287)
https://support.microsoft.com/en-gb/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041
"After installing Windows updates dated November 9, 2021 or later, PACs will be added to the TGT of all domain accounts, even those that previously chose to decline PACs"
Gilt für Windows Server 2008/2008R2//2012/2012R2/2016/2019/2022
Siehe auch CVE-2021-42287 Active Directory Domain Services Elevation of Privilege Vulnerability
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-42287
und: You may encounter authentication issues after installing the November 2021 Cumulative updates
https://dirteam.com/sander/2021/11/16/you-may-encounter-authentication-issues-after-installing-the-november-2021-cumulative-updates/ - Understanding Microsoft Kerberos PAC Validation
https://learn.microsoft.com/de-de/archive/blogs/openspecification/understanding-microsoft-kerberos-pac-validation - [MS-PAC]: Privilege Attribute
Certificate Data Structure
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-winerrata/54e7d766-95ed-4e47-bae3-0904176b5958 - Dude, where's my PAC?
https://techcommunity.microsoft.com/t5/microsoft-entra-azure-ad-blog/dude-where-s-my-pac/ba-p/243108 - Why! Won't! PAC! Validation! Turn! Off!
https://techcommunity.microsoft.com/t5/microsoft-entra-azure-ad-blog/why-won-t-pac-validation-turn-off/ba-p/243144 - What Is the Kerberos PAC?
https://blog.netwrix.com/2023/01/10/what-is-the-kerberos-pac/ - PACRequestorEnforcement and Kerberos
Authentication
https://blog.netwrix.com/2022/01/10/pacrequestorenforcement-and-kerberos-authentication/ - November-Update bringt 3 Patches für Domain-Controller (CVE-2022-37966,
CVE-2022-37967, CVE-2022-38023)
https://www.windowspro.de/news/november-update-bringt-3-patches-fuer-domain-controller-cve-2022-37966-cve-2022-37967-cve-2022