Kerberos RC4 Abschaltung
Die zur Authentifizierung genutzten Kerberos Tickets werden digital signiert und verschlüsselt. DES, RC4, AES sind übliche und unterschiedlich sichere Algorithmen. DES ist unsicher und auch RC4 darf wohl als geknackt gelten, so dass heute AES gesetzt sein sollte. Diese Seite begleitet den Wechsel von DES/RC4 zu AES.
Auch wenn RC4 noch unterstützt wird, sollten sie schauen, dass Sie RC4 loswerden, ehe die Abschaltung irgendwann per Update erzwungen wird.
Diese Seite beschreibt am Anfang noch die Änderungen seit Nov 2022 und danach die Schritte zur geplanten RC4-Abschaltung.
Beachten Sie dazu auch die Seite Windows Security Changes 2023, Kerberos Encryption, RC4 - Nein Danke und Checkliste Active Directory Absicherung
Nov 2022 Probleme mit AES-Wechsel
Mit Windows 2000 wurde erstmals Kerberos zur Authentifizierung bereitgestellt aber schon mit dem Wechsel auf Windows Vista/Windows Server 2008 wurde DES per Default deaktiviert. Mit dem Windows Security Update Nov 2022 hat Microsoft RC4 zwar nicht abgeschaltet aber als neue Standard-Einstellung für ausgestellte Kerberos-Tickets nutzt. Diese Änderung habt aber durchaus Einfluss auf bestehende Umgebungen, wenn dort ältere Windows Systeme oder 3rd Party Lösungen integriert sind. Es kann an mehreren Stellen knirschen.
Das Schaubild zeigt die grundlegende Funktion eines Zugriffs des Clients zum Service. Wir gehen davon aus, dass der Client bereits angemeldet und ein gültiges Ticket Granting Ticket (TGT) hat wo natürlich auch schon RC4/AES-Probleme auftreten könnten:
- Anonymer Zugriff:
Der Client weiß noch nicht, was der Server kann und greift anonym zu und fängt sich eine "Access Denied"-Meldung ein, die aber u..a die Information enthält, dass eine Anmeldung mit einem Kerberos Ticket möglich ist - Ticket Request
Der Client geht nun zum KDC um ein Ticket zu bekommen - KDC erstellt Ticket
Dazu sucht er das Konto anhand des angefragten SPN und wertet dort aus, welches Verfahren dieser Services unterstützt. Wenn nichts hinterlegt ist, dann ist das früher RC4 gewesen und seit Nov 2022 nun AES265. Sie können pro Konto aber Einfluss auf das ausgestellte Ticketformat nehmen. - Ticket geht zum Client
Das AES-Ticket landet nun bei Client. Ich hoffe ihr Client ist "jung" genug, dass er das Ticket verarbeiten kann. Ein Administrator kann hier aber z.B. AES auch irrtümlich deaktiviert haben. Sehr alte Systeme (z.B.: Windows 2000/XP können aber kein AES) - Client mit Serviceticket zum Server
Der Zugriff enthält nun das AES-Ticket, welches der Server decodieren und verstehen muss. Auch hier können aktuelle Windows Server meist damit umgehen aber bei Kunden hat mit SAMBA-Servern, NetApp-Boxen Apache etc. Probleme gegeben, wenn AES nicht konfiguriert war oder eine sehr alte Version im Einsatz war.
Dies ist nur die Beschreibung von Kerberos mit einem Client, Service und KDC. RC4 und AES kommen z.B. auch bei Windows Trusts zwischen Domänen vor. Siehe dazu auch die Seiten:
- Windows Security Changes 2023
- PAC Signing mit Kerberos
- RPC Sealing
- SMB1 Abschaltung
- May 2023 enforcement coming for servers running Active Directory Certificate
Services and Windows domain controllers
https://admin.microsoft.com/#/MessageCenter/:/messages/MC465515
Lösung des AES-Problems
Wenn alle Clients und Server bereits Windows Vista oder neuer sind und per Gruppenrichtlinie nichts vorgegeben haben, dann sollte es keine Probleme geben. Wenn aber die ein oder andere Anmeldung z.B. an einem Webserver o.ä., nicht mehr möglich ist, dann kann hier eine mögliche Lösung für das Problem beschrieben sein:
- Alle machen AES
Sorgen Sie dafür, dass alle Clients und Server mit AES265 umgehen können, dann sind sie "am sichersten" und haben keine Probleme. Das funktionierst seit Windows Vista aber prüfen Sie die Gruppenrichtlinien, ob Sie die Verschlüsselungsverfahren vielleicht eingeschränkt haben. Es ist falsch auf dem Domain Controller und den Clients das AES-Verfahren abzuschalten, nur weil es ein Service nicht kann. Hier ist der korrekte Wet die Konfiguration der Verfahren auf dem AD-Objekte mit dem SPN. - Downgrade auf RC4
Wenn Sie einen Service haben, der AES nicht kann und auch nicht aktualisiert oder anders konfiguriert werden kann, dann suchen Sie das Dienstkonto zu dem Computer oder Service anhand des Service Principal Namens (Siehe Kerberos SPN) und setzen Sie dort die Verschlüsselung auf einen kompatiblen Wert. - Windows 2000/XP-Clients
Sollten Sie immer noch solch alte Clients haben, die kein AES unterstützen, dann müssen Sie auf AES verzichten. Sie können DCs durchaus dazu bringen auch nach der Installation der Security Updates vom November 2022 weiter mit RC4 zu arbeiten. Mit einer späteren Abschaltung von RC4 ist hier natürlich dann das finale Ende erreicht. Windows XP unterstützt sogar AES265 in SessionEncryptionkeys aber nicht bei Tickets
Eine Deinstallation des Nov 2022 Security Updates ist aus meiner Sicht keine Lösung. Zumal sie dann auch kein nachfolgendes Update mehr installieren dürfen, bis Sie alle Altlasten beseitigt haben.
Aber bis dahin können Sie durchaus eine Zusammenarbeit hinsichtlich Kerberos erreichen. Windows 2000 und Windows XP werden aber im Sommer 2023 dann durch die Aktivierung von RPC Sealing und PAC Signing wohl nicht mehr mitspielen dürfen. Höchste Zeit diese alten Systeme abzulösen oder aus der Domain in Einzelhaft zu verlagern und nur über kontrollierte Kommunikationswege einzubinden.
- Windows Security Changes 2023
- Windows XP
- Alte Clients Windows 2008
- Alte Clients Windows XP
-
Preventing Kerberos change password that
uses RC4 secret keys
https://learn.microsoft.com/en-us/windows-server/security/kerberos/preventing-kerberos-change-password-that-uses-rc4-secret-keys
Kompatibilität
Microsoft hat schon deutlich dokumentiert, welches Produkt mit welchem Verfahren zurecht kommt. Die Einstellung befindet sich in der Gruppenrichtlinie, mit der sie auf Servern und Clients die erlaubten Verfahren konfigurieren können.
Diese Tabelle gibt die Default Einstellungen nach Betriebssystem zum Stand Feb 2023 wieder und bezieht sich auf das Kerberos Ticket Encryption aber nicht auf die SessionKeyEncryption
Betriebssystem | DES_CBC_CRC | DES_CBC_MD5 | RC4_HMAC_MD5 | AES128_HMAC_SHA1 | AES256_HMAC_SHA1 |
---|---|---|---|---|---|
Windows 2000 |
Supportet |
Supportet |
Supportet |
Kein Support |
Kein Support |
Windows XP |
Supportet |
Supportet |
Supportet |
Kein Support |
Kein Support |
Windows 2003 |
Supportet |
Supportet |
Supportet |
Kein Support |
Kein Support |
Windows Vista |
Supportet |
Supportet |
Supportet |
Supportet |
Supportet |
Windows 2008 |
Supportet |
Supportet |
Supportet |
Supportet |
Supportet |
Windows 7 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Windows 2008R2 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Windows 10 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Windows 2012 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Windows 2012R2 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Windows 11 |
Deaktiviert |
Deaktiviert |
Supportet |
Supportet |
Supportet |
Samba |
Deaktiviert |
Deaktiviert |
Deaktiviert ab 4.17.4 |
Supportet |
Supportet |
NetApp |
Aktiv |
Aktiv |
Aktiv |
Deaktiviert! |
Deaktiviert! |
Apache |
Konfiguration |
Konfiguration |
Konfiguration |
Konfiguration |
Konfiguration |
Für Systeme wie z.B. Apache habe ich keine Default-Einstellung gefunden, da Sie bei der Einrichtung hier explizit etwas konfigurieren müssen.
Auch wenn sie DES bei neueren Versionen per Gruppenrichtlinien reaktivieren könnten, rate ich davon dringend ab. DES ist nicht sicher!
Achtung: Windows 2000/XP/2003 verstehen kein AES und können auch nicht mehr aktiviert werden
Achtung: Samba 4.17.4 schaltet ebenfalls RC4 per Defalt ab
(15. Dez 2022)
Samba 4.17.4 - Release Notes
https://www.samba.org/samba/history/samba-4.17.4.html
DomUsers can't login on joined Windows XP client anymore -
UCS - Univention Corporate Server - Univention Help
However, since Windows 7 and Windows
Server 2008 R2, DES_CBC_CRC and DES_CBC_MD5 are no longer
supported as supported Kerberos encryption types
Quelle:
https://dirteam.com/sander/2022/11/08/spend-some-time-on-properly-configuring-and-monitoring-your-domain-controllers-this-patch-tuesday/
To take advantage of the strongest
security with Kerberos-based communication, you can enable
AES-256 and AES-128 encryption on the SMB server. If you do
not want the SMB server to select the AES encryption types
for Kerberos-based communication with the Active Directory
(AD) KDC, you can disable AES encryption. By default, AES
encryption is disabled.
Quelle:https://docs.netapp.com/us-en/ontap/smb-admin/enable-disable-aes-encryption-kerberos-task.html
- Kerberos Encryption
- Kerberos Enhancements: Usage of AES
with different Windows operating systems
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749438(v=ws.10) - Network security: Configure encryption
types allowed for Kerberos
https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-security-configure-encryption-types-allowed-for-kerberos - KDC event ID 16 or 27 is logged if DES
for Kerberos is disabled
https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/kdc-event-16-27-des-encryption-disabled - KB5021131: How to manage the Kerberos protocol changes related to CVE-2022-37966
https://support.microsoft.com/en-gb/topic/kb5021131-how-to-manage-the-kerberos-protocol-changes-related-to-cve-2022-37966-fd837ac3-cdec-4e76-a6ec-86e67501407d - MIT Kerberos Documentation - Retiring
DES
http://web.mit.edu/kerberos/krb5-latest/doc/admin/advanced/retiring-des.html - CVE-2022-37966 rc4-hmac Kerberos session
keys issued == to modern servers
https://www.samba.org/samba/security/CVE-2022-37966.html - Samba 4.17.4 Bugfix und Security Release
https://www.taste-of-it.de/samba-4-17-4-bugfix-und-security-release/ - Technical details Fixing issues related
to Kerberos UnSupportet encryption types
between Samba and Active Directory
https://active-directory-wp.com/docs/Technical_details/Fixing_issues_related_to_Kerberos/UnSupportet_encryption_types_between_Samba_and_Active_Directory.html - NetApp: Enable or disable AES encryption
for Kerberos-based communication
https://docs.netapp.com/us-en/ontap/smb-admin/enable-disable-aes-encryption-kerberos-task.html
Default ist "off"! - Apache: 5 - Kerberos Crypto and
Encryption Types
https://directory.apache.org/kerby/user-guide/5-crypto-and-encryption-types.html - Configuring Kerberos for Apache
https://docs.typo3.org/p/causal/ig_ldap_sso_auth/2.1/en-us/AdministratorManual/ConfigureApacheKerberos.html - Microsoft Lifecycle-Richtlinie
https://learn.microsoft.com/de-de/lifecycle/
SupportetEncryptionTypes
Die Standardeinstellungen greifen natürlich nur, wenn Sie nicht die Konfiguration der Clients und Server durch die Registrierung oder Gruppenrichtlinien beeinflusse. Maßgeblich ist dazu der folgende Schlüssel:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\parameters] „SupportetEncryptionTypes"=dword:00000024
Jedes Bit hat dabei eine besondere Bedeutung:
Bit | dez-Wert | hex-Wert | Verfahren |
---|---|---|---|
0 |
1 |
0x01 |
DES_CBC_CRC |
1 |
2 |
0x02 |
DES_CBC_MD5 |
2 |
4 |
0x04 |
RC4 |
3 |
8 |
0x08 |
AES128 |
4 |
16 |
0x10 |
AES256 |
Die weitere Bits sind für zukünftige Verfahren reserviert. Wen Sie also zur AES128/AES265 zulassen, dann ist 24dez der richtige Wert RC4 ist dann auch abgeschaltet. Die Einstellung ist über Gruppenrichtlinien sehr einfach zu setzen. Die folgende Einstellungen entspricht der Standardeinstellung und erlaubt AES127, AES256 aber auch RC4.
Diese Einstellung hat aber nichts mit "Default Encryption Typ" zu tun. Sie könnten Damit aber temporär z.B. AES128/AES256 blockieren. Das ist aber der falsche Weg.
Microsoft empfiehlt die Einstellung komplett zu deaktivieren, also nicht zu konfigurieren. Das ist auch meine Empfehlung, damit Sie sich vielleicht nicht mal selbst aussperren, wen zwei Systeme nicht zueinander kompatibel sind.
- Decrypting the Selection of Supportet
Kerberos Encryption Types
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-Supportet-kerberos-encryption-types/ba-p/1628797 - Interpreting the SupportetEncryptionTypes Registry Key
https://learn.microsoft.com/en-us/archive/blogs/petergu/interpreting-the-Supportetencryptiontypes-registry-key - 2.2.7 Supportet Encryption Types Bit Flags
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/6cfc7b50-11ed-4b4d-846d-6f08f0812919?redirectedfrom=MSDN - LDAPWiki: msDS-SupportedEncryptionTypes
https://ldapwiki.com/wiki/msDS-SupportedEncryptionTypes - KnowledgeBase: You experience errors with Event ID 14 and source
Kerberos-Key-Distribution-Center on Domain Controllers
https://dirteam.com/sander/2022/11/11/knowledgebase-you-experience-errors-with-event-id-14-and-source-kerberos-key-distribution-center-on-domain-controllers/ - Spend some Time on Properly Configuring and Monitoring your Domain
Controllers this Patch Tuesday
https://dirteam.com/sander/2022/11/08/spend-some-time-on-properly-configuring-and-monitoring-your-domain-controllers-this-patch-tuesday/
Audit: SPN-Konto und msDS-SupportedEncryptionTypes
Am Anfang der Seite habe ich beschrieben, dass der KDC im Active Directory anhand des "ServicePrincipalName" nach dem Konto sucht, um das Kerberosticket damit zu verschlüsseln. Über dieses Konto können Sie als Administrator dem KDC mitteilen, welche Verschlüsselungsverfahren das System versteht. Normalerweise ist das Feld leer und der KDC nutzt sein "Default Verfahren". Genau das wurde aber im November 2022 von RC4 auf AES256 umgestellt und wenn bislang andere Dienste mit RC4 zufrieden waren aber AES nicht verstehen, dann ist das der Ort um das Problem für genau diesen einen Dienst zu beseitigen. Sie schwächen damit nicht die gesamte Umgebung, die weiterhin AES nutzt aber die Tickets für diesen einen Dienst sind dann natürlich wieder mir RC4 codiert.
Einen Teil der Konfiguration können Sie über Active Directory Benutzer und Computer einstelle. Als RC4 noch der Default war, konnten S hier z.B. AES128/AES256 aktivieren oder auch ein Downgrade auf DES erzwingen. Microsoft hat hier aber keinen eigenen Eintrag für z.B. RC4 in der GUI vorgesehen.
Wenn Sie nun also für einen Service die Nutzung von RC4 vorschreiben wollen, dann bleibt nur die Konfiguration des entsprechenden Feldes:
Bei den meisten Objekten sollte das Feld leer sein, damit die Standardwerte greifen. Wenn Sie nun aber RC4 vorgeben wollen dann müssen Sie ein 04dez als Werte eintragen. Auch hier gibt es wieder eine Bitmaske analog zu "SupportetEncryptionTypes" der Gruppenrichtlinien.
Bit | Dez-Wert | Hex-Wert | Verfahren |
---|---|---|---|
0 |
1 |
0x01 |
DES_CBC_CRC |
1 |
2 |
0x02 |
DES_CBC_MD5 |
2 |
4 |
0x04 |
RC4-HMAC |
3 |
8 |
0x08 |
AES128-CTS-HMAC-SHA1-96 |
4 |
16 |
0x10 |
AES256-CTS-HMAC-SHA1-96 |
- 2.2.7 Supported Encryption Types Bit
Flags
https://learn.microsoft.com/de-de/openspecs/windows_protocols/ms-kile/6cfc7b50-11ed-4b4d-846d-6f08f0812919
Sie können auch "07dez" eintragen um neben RC4 auch beide schwächeren DES-Varianten zuzulassen. Allerdings müssen Sie dann auch auf dem Client und KDC das Feld "SupportetEncryptionTypes" entsprechend anpassen, dass auch DES erlaubt wäre. Eine Suche nach solchen Objekten ist dann per AD-PowerShell schnell gestartet
Get-ADObject ` -Filter "msDS-SupportedEncryptionTypes -bor 0x7 -and -not msDS-SupportedEncryptionTypes -bor 0x18"
Dieser Aufruf zeigt alle Clients, die DES oder RC aktiv haben und explizit kein AES erlauben. Sie können auch einfach alle Elemente ausgeben, die manuell konfiguriert sind.
Get-ADObject ` -Filter "msDS-SupportedEncryptionTypes -bor 0x1f"
Bitte aktivieren Sie nicht DES_CBC_CRC oder DES_CBC_MD5
- Decrypting the Selection of Supportet Kerberos Encryption Types
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-Supportet-kerberos-encryption-types/ba-p/1628797 - Find Active Directory accounts
configured for DES and RC4 Kerberos
encryption
https://4sysops.com/archives/find-active-directory-accounts-configured-for-des-and-rc4-kerberos-encryption/ - AD-Konten mit DES- und RC4-Algorithmus
für Kerberos-Verschlüsselung finden
https://www.windowspro.de/wolfgang-sommergut/konten-des-rc4-algorithmus-fuer-kerberos-verschluesselung-finden
DC: DefaultDomainSupportedEncTypes
Auf dem KDC, d.h. auf jedem Domain Controller können Sie seit den Security Updates vom 8. November 2022 steuern, welches Verschlüsselungsverfahren er zum Ausstellen des Kerberos-Tickets nutzen soll, wenn beim SPN-Konto nichts hinterlegt ist. Der Default ist 0x27 (00100111bin), d.h. DES, RC4, AES sind erlaubt. Wenn Sie hier z.B. DES und RC4 entfernen wollen, dann wäre 0x38 korrekt. 0x3C aktiviert das Bit 3 und erlaubt RC4.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\KDC] "DefaultDomainSupportedEncTypes"=dword:00000038
Diese Einstellung hat Microsoft mit dem Nov 2022 Update von RC4 auf AES geändert. Wenn Sie den Wert ändern wollen, dann müssen Sie diesen aus einer Tabelle ermitteln, bei der jedes Bit eine eigene Funktion hat. Die Änderungen werden ohne Neustart sofort aktiv.
- 2.2.7 Supportet Encryption Types Bit
Flags
https://learn.microsoft.com/de-de/openspecs/windows_protocols/ms-kile/6cfc7b50-11ed-4b4d-846d-6f08f0812919 - KnowledgeBase: You experience errors with Event ID 14 and source
Kerberos-Key-Distribution-Center on Domain Controllers
https://dirteam.com/sander/2022/11/11/knowledgebase-you-experience-errors-with-event-id-14-and-source-kerberos-key-distribution-center-on-domain-controllers/ - KB5021131: How to manage the Kerberos
protocol changes related to CVE-2022-37966
https://support.microsoft.com/en-gb/topic/kb5021131-how-to-manage-the-kerberos-protocol-changes-related-to-cve-2022-37966-fd837ac3-cdec-4e76-a6ec-86e67501407d
Details zum Update RC4 auf AES
Das November 2022 Security Update hat eine ganze Menge an Korrekturen mitgebracht und der Wechsel von RC4 auf AES als Standardverschlüsselung bei Kerberos ist nur ein Teil in dem Paket. Microsoft hat noch zwei weitere kritische Lücken gesichert, die ebenfalls die alten Windows Betriebssysteme wie XP, 2003, 2000 und älter aussperren.
- RPC Sealing
RPC-Pakete, wie sie bei WMI, SMB, NETLOGON etc. genutzt werden, werden zukünftig besser gesichert. Im Nov 2022 Update ist die Basis gelegt aber im Laufe des Jahres 2023 werden die Einstellungen schrittweise erzwungen und können auch nicht mehr rückgängig gemacht werden - PAC Signing
Auch das PAC im Kerberos-Ticket wird gegen Veränderungen besser gesichert. Auch hier wird mit dem Nov 2022 Update die Basis gelegt und im Laufe des Jahres 2023 schrittweise erzwungen und können ebenfalls nicht rückgängig gemacht werden.
Diese Änderungen sind doch recht tiefgreifend und für die Sicherheit erforderlich. Allerdings sind auch hier ältere Betriebssysteme dann außen vor und können nicht mehr mit den aktualisierten Servern kommunizieren..
Siehe dazu auch Windows Security Changes 2023
- What happened to Kerberos Authentication
after installing the November 2022/OOB
updates?
https://techcommunity.microsoft.com/t5/ask-the-directory-services-teams/what-happened-to-kerberos-authentication-after-installing-the/ba-p/3696351
Es gibt daher für den Nov 2022 Update ein "Out of band" Hotfix, um Probleme bei betroffenen Umgebungen zu lösen.
- November 2022 Out of Band update released! Take action!
https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/november-2022-out-of-band-update-released-take-action/ba-p/3680144 - Take action: OOB update to address an issue with sign in and Kerberos
authentication
https://learn.microsoft.com/en-us/windows/release-health/windows-message-center#2961
Mit Links zu den Download für
Windows Server 2016 (https://support.microsoft.com/help/5021655)
Windows Server 2019 (https://support.microsoft.com/help/5021655)
Windows Server 2022 (https://support.microsoft.com/help/5021656) - KB5021653: Out-of-Band-Update für Windows Server 2012 R2: 17. November 2022
https://support.microsoft.com/de-de/topic/kb5021653-out-of-band-update-f%C3%BCr-windows-server-2012-r2-17-november-2022-8e6ec2e9-6373-46d7-95bc-852f992fd1ff - 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
Allerdings löst das nicht auf allen Umgebungen die Probleme, speziell wenn Systeme nur RC4 können und ihre Clients AES anfordern und bekommen. Sie könnten nun z.B. per Gruppenrichtlinie alle Clients anweisen, RC4-Tickets anzufordern. Ratsam finde ich das nicht. Die Schlüssel sind eher interessant, um nur sichere Verfahren zuzulassen.
Audit: klist - Kontrolle auf dem Client
Wenn Sie nun ihre Konfiguration entsprechend umgesetzt haben dann sollten Sie auf einem Client einfach mit KLIST die erhaltenen Kerberos-Tickets für den Benutzer und den entsprechenden Service kontrollieren:
Sie sehen hier direkt das genutzte Verfahren. Dies ist insbesondere hilfreich, wenn Sie auf den Service nicht zugreifen können. Wenn Sie kein Kerberos-Ticket bekommen, dann hat der Service entweder gar nicht mitgeteilt, dass er "NEGOTIATE" anbietet oder der Client konnte den KDC nicht fragen oder KDC hat den SPN nicht gefunden. Wenn der Client aber ein Ticket hat, dann sind all diese Punkte erledigt und es stellt sich nur noch die Frage, warum der Service das Ticket nicht akzeptiert.
Audit: KDC Eventlog
Der zweite Ort ist das Eventlog, welches Sie auf dem DC, genauer dem KDC, erst noch aktivieren müssen. Ich nutze dazu gerne die "Default Domain Controller"-Policy, damit alle Server auch abgedeckt sind.
Sie finden dann auf den Servern, die als Kerberos Distribution Center (KDC) genutzt werden, d.h. alle DCs, verschiedene Meldungen im Security Eventlog. Dort suchen Sie dann nach Meldungen der EventID 4768 und werten den "Ticket Encryption Type" aus.
Ticket Encryption Type (hex) | Ticket Encryption Type (Dez) | Status | Beschreibung |
---|---|---|---|
0x1 |
01 |
DES-CBC-CRC |
Sollte nicht erscheinen, da es seit Windows 7 / Windows 2008R2 by Default deaktiviert ist |
0x3 |
03 |
DES-CBC-MD5 |
Sollte nicht erscheinen, da es seit Windows 7 / Windows 2008R2 by Default deaktiviert ist |
0x11 |
17 |
AES128-CTS-HMAC-SHA1-96 |
Seit Windows 2008/Vista möglich und "sicher" |
0x12 |
18 |
AES256-CTS-HMAC-SHA1-96 |
Seit Windows 2008/Vista möglich und "sicher" |
0x17 |
23 |
RC4-HMAC |
Standardverfahren vor Windows 2008/Vista und immer noch möglich |
0x18 |
24 |
RC4-HMAC-EXP |
Standardverfahren vor Windows 2008/Vista und immer noch möglich |
0xFFFFFFFF |
|
- |
Fehlermeldung |
Sie sehen aber auch, dass seit Windows 2008/Vista schon AES128/AES256 der Standard ist und mittlerweile alle System es können. Wer heute noch RC4 nutzt, sollte prüfen warum dem so ist.
# Suche nach TGT Ausstellung Get-WinEvent ` -LogName Security ` -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (EventID=4768)]]" ` | where {$_.properties[7].value -notin (17,18)}
# Suche nach Ticket Ausstellung Get-WinEvent ` -LogName Security ` -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (EventID=4769)]]" ` | where {$_.properties[5].value -notin (17,18)}
# Direkte Suche nach 0x17 in "TicketEncryptionType" nach Hinweis eines Lesers Get-WinEvent ` -LogName Security ` -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] ` and (EventID=4768)]` and ( ` EventData[Data[@Name='TicketEncryptionType']='0x17'] ` or EventData[Data[@Name='TicketEncryptionType']='0x18'] ` ) ` ]"
Denken Sie daran, dass Sie vielleicht die Größe des Security-Eventlog vergrößern müssen, um länger in die Vergangenheit zu blicken.
Bei der Menge der Events ist es sicher nicht sinnvoll, jedes mal per Event Action ein PowerShell-Skript zur Meldung zu starten. Da gibt es andere Weg wie Event Subscriptions, Syslog-Forwarding, SIEM etc.
- 4769(S, F): A Kerberos service ticket was requested.
https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769 - Trigger a PowerShell Script from a Windows Event s
https://learn.microsoft.com/de-de/archive/blogs/wincat/trigger-a-powershell-script-from-a-windows-event - How to audit Kerberos authentication
events in Active Directory
https://www.manageengine.com/products/active-directory-audit/how-to/audit-kerberos-authentication-events.html -
PowerShell Beispiele : Eventlog
Beispiel um mit "System.Management.ManagementEventWatcher" auf Events zu warten - ManagementEventWatcher Klasse
https://learn.microsoft.com/de-de/dotnet/api/system.management.managementeventwatcher?view=netframework-4.8 - Detecting Forged Kerberos Ticket (Golden Ticket & Silver Ticket) Use in
Active Directory
https://adsecurity.org/?p=1515 - Kerberos Service Ticket Request Using RC4 Encryption
https://splunkresearch.com/endpoint/7d90f334-a482-11ec-908c-acde48001122/ - How to Track Important Windows Security Events with PowerShell
https://adamtheautomator.com/windows-security-events/ - KDC event ID 16 or 27 is logged if DES for Kerberos is disabled
https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/kdc-event-16-27-des-encryption-disabled - TrackLoginEvents
gMSA und SupportedEncryptionType
Bei der Installation des AzureAD Cloud Sync auf einem DC, bei dem SupportedEncryptionTpe=0x18, also AES128/AES256, stand, konnte AzureAD Connect Cloud Sync kein GroupManagedServiceAccount anlegen.
Zuerst war ich unschlüssig, woran es lag aber im Eventlog habe ich dann auch eine passende Meldung gefunden:
Log Name: Microsoft-Windows-Security-Netlogon/Operational Source: Microsoft-Windows-Security-Netlogon Event ID: 9002 Task Category: MSA Level: Error Keywords: User: SYSTEM Computer: DC01.carius.de Description: Netlogon failed to add provAgentgMSA$ as a managed service account to this local machine. The provided context did not match the target.
Die ersten Treffer der Suchmaschine haben schon den richtigen Hinweis gegeben:
A managed service account is dependent
upon Kerberos supported encryption types.When a client
computer authenticates to a server using Kerberos the DC
creates a Kerberos service ticket protected with encryption
both the DC and server supports. The DC uses the account's
msDS-SupportedEncryptionTypes attribute to determine what
encryption the server supports and, if there is no attribute,
it assumes the client computer does not support stronger
encryption types. If the host is configured to not support
RC4, then authentication will always fail. For this reason,
AES should always be explicitly configured for MSAs.
Quelle:
https://learn.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview#BKMK_SOFT
Ich muss hier zumindest temporär RC4 aktivieren, damit das Setup das Konto anlegen kann. Danach sollte ich aber auf dem gMSA den EncryptionType aus AES stellen.
Set-ADServiceAccount ` -Identity provAgentgMSA ` -KerberosEncryptionType AES128,AES256
- AzureAD Cloud Sync
- Group Managed Service Accounts Overview
https://learn.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview
Überwachen und Anpassen
Nun heißt es etwas "warten" und kontrollieren und anpassen. Sie müssen quasi jedem Event aus dem Eventlog nachgehen, warum ein Client vom KDC ein RC4/DES-Ticket für einen Service angefordert hat und die Ursache finden und beheben. Das ist eine mühsame Arbeit, insbesondere wenn 3rd Party-Produkte involviert sind, die per KEYTAB und anderen Einstellungen mit dem Active Directory verbunden wurde.
Moving forward with enforcing AES for Kerberos will require analysis and one of
the best inputs for that assessment are 4769 events from the domain controller
security log which show the encryption type (Ticket Encryption Type field) of
issued service tickets. Event 4768 will show the same information for issued
TGTs. If you have the luxury of having centralized log collection and analysis
tool, then getting a quick handle on your ticket encryption types will be
achievable
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-supported-kerberos-encryption-types/ba-p/1628797
Knifflig wird es mit Client und Services, die kein AES128/AES256 können und nur RC4/DES verstehen. Dazu gehören z.B.: Windows XP und ältere Versionen, die maximal RC4 verstehen.
Ich weiß auch, dass es immer wieder Spezialfälle gibt, bei denen so alte Systeme noch genutzt werden und nicht einfach ersetzt werden können. Da hilft auch die Drohung mit "kein Support, Keine Security Updates" nicht weiter und die Firmen werden schon selbst solche Geräte in ein eigenes Subnetz mit strenger Abschottung verbannt haben.
Aber wenn sie ihr aktive primäres Active Directory auf AES umstellen und vielleicht auch noch TLS 1.2 erzwingen, SMB 1 abschalten, NTLMv1 und BasicAuth verbieten und andere Mindestvorgaben umsetzen, dann werden diese alten Schätzchen nicht mehr mitspielen. Einen allgemeinen Plan B gibt es hier leider nicht. Natürlich können Sie auf Kerberos verzichten und hoffen, dass eine Anmeldung per NTLMv2 noch möglich ist. Vielleicht läuft es am Ende auf ein wirklich komplett abgeschottetes eigenes Netzwerk hinaus, zu dem es nur ganz wenig klar definierte Übergabepunkte gibt die keine der beiden Seiten in Gefahr bringt.
- 4768(S, F): A Kerberos authentication ticket (TGT) was requested.
https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4768 - 4769(S, F): A Kerberos service ticket was requested
https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769 - Decrypting the Selection of Supported Kerberos Encryption Types
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-supported-kerberos-encryption-types/ba-p/1628797
Sonderfall XP
Natürlich ist Windows XP schon lange nicht mehr supportet aber das soll auch nur ein Beispiel sein . Es könnte auch ein Samba-Server o.ä. sein. Als die Windows Security Changes 2023 installiert wurden, trat folgendes Fehlerbild in Erscheinung:
Richtung |
Status |
Beschreibung |
---|---|---|
XP-Client -> Windows Server 2016 |
OK |
Der Windows XP Klient kann ein AES und erhält vom DC noch ein RC4-Ticket, weil AES nicht erzwungen ist. Der Client kann damit auf den Server zugreifen. |
Windows Server 2016 -> Windows XP Client |
Fail |
Natürlich ist ein Windows XP-System kein "Server" aber es kann ja sein, dass ein Administrator aus der Ferne auf einen Client per "C$" zugreifen möchte. Auf einem neuen Client bekommt der Administrator ein AES-Token für den Client. Windows XP versteht aber kein AES und die Verbindnug kommt nicht zustande. |
Dieses Problem können Sie gut mit KLIST auf dem Admin-Client sehen, welcher ein AES-Token hat:
Auch ohne RC4-Abschaltung kann schon der Wechsel des Default Verfahrens zu Problemen beim Zugriff auf alte Systeme führen.
Aber selbst dann kann es passieren, dass ein Windows XP Gerät im Active Directory mittels msds-supportedEncryptionType=4 einen RC4 Ticket bekommt aber sie dennoch nicht auf den Windows XP Client remote zugreifen können. Dann kann es daran liegen, das der Session Key dennoch AES ist.
Windows XP ist nun mal kein guter Server und dieses Problem können Sie nur lösen, indem Sie auf RC4 als Default zurückstellen.
... Server 2000, Server 2003 and XP do not support either version of AES.
Therefore, if you have those legacy operating systems still in your domain you
are not ready to remove RC4 support from your domain controllers.
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-supported-kerberos-encryption-types/ba-p/1628797
- Windows Security Changes 2023
- Alte Clients Windows XP
-
Network security: Configure encryption types allowed for
Kerberos
https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-security-configure-encryption-types-allowed-for-kerberos
RC4 deaktivieren
Wenn Sie sichergestellt haben, dass kein Computer/Benutzer-Objekte mehr RC4 oder DES anfordert und auch das Eventlog über einige Zeit hinweg keine RC4/DES-Tickets mehr ausgestellt hat, dann können Sie im nächsten Schritt auf allen Domain Controllern die Nutzung von RC4 deaktivieren. Dazu ist mindestens Windows 2008 und Windows Vista erforderlich. Frühere Versionen von Windows können noch kein AES. Aber heute sollten alle Versionen mit AES zurecht kommen.
Prüfen Sie bitte das Kennwort ihres KDC-Service Account und führen Sie ggfls. einen KRBTGT Key Rollover durch. Speziell wenn das Kennwort vor 2005 gesetzt wurde kann dies die Nutzung von AES blockieren.
Für Windows 2012/2012R2 Domain Controller benötigen Sie ggfls. einen Hotfix:
- Lsass.exe crashes and system shuts down
automatically on a Windows Server 2012
R2-based server
https://support.microsoft.com/en-us/topic/lsass-exe-crashes-and-system-shuts-down-automatically-on-a-windows-server-2012-r2-based-server-5abde4d6-917e-7825-867e-4c9f4ff616b9 - Computer is forcibly restarted if RC4 is
disabled in Windows Server 2012
https://support.microsoft.com/en-us/topic/computer-is-forcibly-restarted-if-rc4-is-disabled-in-windows-server-2012-28119493-f59d-b511-b0a6-93a64be148bb - Tough Questions Answered: Can I disable RC4 Etype for Kerberos on Windows
10?
https://techcommunity.microsoft.com/t5/itops-talk-blog/tough-questions-answered-can-i-disable-rc4-etype-for-kerberos-on/ba-p/382718 - Preventing Kerberos change password that
uses RC4 secret keys
https://learn.microsoft.com/en-us/windows-server/security/kerberos/preventing-kerberos-change-password-that-uses-rc4-secret-keys - Windows 2012 Hotfix Required
Erzwungener Neustart bei deaktiviertem RC4 in Windows Server 2012
https://support.microsoft.com/de-de/topic/erzwungener-neustart-bei-deaktiviertem-rc4-in-windows-server-2012-28119493-f59d-b511-b0a6-93a64be148bb - Windows 2012R2 Hotfix Required
https://support.microsoft.com/de-de/topic/lsass-exe-abst%C3%BCrzt-und-system-schaltet-automatisch-auf-einem-windows-server-2012-r2-server-5abde4d6-917e-7825-867e-4c9f4ff616b9
Fehlermeldung "Angegebenes Konto ist nicht vorhanden", wenn Domänenbenutzer versuchen, ihr Kennwort im UPN-Format in einer anderen Domäne zu ändern - Why you should change your KRBTGT
password prior disabling RC4
https://www.vcloudnine.de/why-you-should-change-your-krbtgt-password-prior-disabling-rc4/
Sie können auch diese Härtung aber schrittweise umsetzen, indem Sie nicht gleich auf dem DC die Nutzung von RC4 abschalten, sondern per Gruppenrichtlinie auf den Clients die Nutzung von Kerberos auf AES128/AES256 und neuer beschränken:
GPO: Computer Configuration\Windows settings\Security Settings\Local Policies \Security Options
Damit verhindern Sie auf den so konfigurierten Clients und Servern die Nutzung von RC4 und DES. Die Einstellungen landen in der Registrierung unter:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters] "SupportedEncryptionTypes"=dword:00000018
Achtung: Stellen Sie den Werte nie auf "1" oder die GPO nur auf "DES_CBC_CRC" denn dieses Verfahren ist zumindest bei Windows 2016 deaktiviert. Siehe auch Kerberos Encryption. Selbst die Einstellung "3", die "DES_CBC_MD5" erlauben sollte, bringt einen Server nicht dazu, damit zu antworten.
So können Sie schnell kontrollieren, ob die Richtlinie gezogen hat. Den Schlüssel manuell zu setzen ist nicht empfehlenswert, da Richtlinien überschreibend wirken.
- Preventing Kerberos change password that uses RC4 secret
keys
https://learn.microsoft.com/en-us/windows-server/security/kerberos/preventing-kerberos-change-password-that-uses-rc4-secret-keys - Decrypting the Selection of Supportet Kerberos Encryption Types
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-Supportet-kerberos-encryption-types/ba-p/1628797 - MIT Kerberos Documentation - Retiring DES
http://web.mit.edu/kerberos/krb5-latest/doc/admin/advanced/retiring-des.html - Lessons in Disabling RC4 in Active Directory
https://syfuhs.net/lessons-in-disabling-rc4-in-active-directory - Active Directory Kerberos Attacks
https://splunkresearch.com/stories/active_directory_kerberos_attacks/ -
How To Attack Kerberos 101
https://m0chan.github.io/2019/07/31/How-To-Attack-Kerberos-101.html -
Cracking Active Directory Passwords with AS-REP Roasting
https://stealthbits.com/blog/cracking-active-directory-passwords-with-as-rep-roasting/ -
Steal or Forge Kerberos Tickets: Kerberoasting
https://attack.mitre.org/techniques/T1558/003/ -
Use Alternate Authentication Material: Pass the Ticket
https://attack.mitre.org/techniques/T1550/003/ -
Steal or Forge Kerberos Tickets: AS-REP Roasting
https://attack.mitre.org/techniques/T1558/004/
Weitere Links
- Microsoft 365 Message Center
-
Checkliste Active Directory Absicherung
Keine Liste ist komplett aber fangen Sie heute an und hören sie nie auf - Kerberos Encryption
- Windows Security Changes 2023
- PAC Signing mit Kerberos
- RPC Sealing
- SMB1 Abschaltung
- RC4 - Nein Danke
- May 2023 enforcement coming for servers running Active Directory Certificate
Services and Windows domain controllers
https://admin.microsoft.com/#/MessageCenter/:/messages/MC465515 - Alt-Security-Identities attribute
https://docs.microsoft.com/en-us/windows/win32/adschema/a-altsecurityidentities - Preventing Kerberos change password that
uses RC4 secret keys
https://learn.microsoft.com/en-us/windows-server/security/kerberos/preventing-kerberos-change-password-that-uses-rc4-secret-keys - 4.2 Kerberos PAC Validation
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-apds/1d1f2b0c-8e8a-4d2a-8665-508d04976f84 - Kerberos protocol registry entries and
KDC configuration keys in Windows
https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/kerberos-protocol-registry-kdc-configuration-keys - Erlaubte Relative Distinguished Names
(RDNs) im Subject ausgestellter Zertifikate
https://www.gradenegger.eu/?p=2717 - Die Reihenfolge der Relative
Distinguished Names (RDNs) im Subject
ausgestellter Zertifikate ändern
https://www.gradenegger.eu/?p=10183 - Encryption Type Selection in Kerberos Exchanges
https://docs.microsoft.com/en-us/archive/blogs/openspecification/encryption-type-selection-in-kerberos-exchanges - Windows Configurations for Kerberos Supportet
Encryption Type
https://docs.microsoft.com/en-us/archive/blogs/openspecification/windows-configurations-for-kerberos-Supportet-encryption-type - The RC4 Removal Files - Part 1: What's in an
error message?
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/the-rc4-removal-files-part-1-what-s-in-an-error-message/bc-p/2670690#M3889 - The RC4 Removal Files - Part 2: In AES We Trust
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/the-rc4-removal-files-part-2-in-aes-we-trust/ba-p/1029439 - msDS-SupportedEncryptionTypes – Episode 1 -
Computer accounts
https://docs.microsoft.com/en-us/archive/blogs/openspecification/msDS-SupportedEncryptionTypes-episode-1-computer-accounts - Preventing Kerberos change password that uses
RC4 secret keys
https://docs.microsoft.com/en-us/windows-server/security/kerberos/preventing-kerberos-change-password-that-uses-rc4-secret-keys - Lessons in Disabling RC4 in Active Directory
https://syfuhs.net/lessons-in-disabling-rc4-in-active-directory - KDC event ID
16 or 27 is logged if DES for Kerberos is
disabled
https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/kdc-event-16-27-des-encryption-disabled - Exchange
Server Setup fragt bei Migration nach
Organisationsnamen
https://www.frankysweb.de/exchange-server-setup-fragt-bei-migration-nach-organisationsnamen/
Manchmal macht auch ein Trust Probleme - Why you
should change your KRBTGT password prior
disabling RC4
https://www.vcloudnine.de/why-you-should-change-your-krbtgt-password-prior-disabling-rc4/