AD-Konten mit DES- und RC4-Algorithmus für Kerberos-Verschlüsselung finden


    Tags: , ,

    EncryptionNachdem DES schon lange als unsicher gilt, beschleunigt CVE-2022-37966 nun den Abschied von RC4 für die Ver­schlüsselung von Kerberos-Tickets. Wenn man Konten keinen Algorithmus zugewiesen hat, dann kommt künftig AES zum Einsatz. Welche Accounts durch eine schwache Ver­schlüsselung gefährdet sind, kann man mit PowerShell ermitteln.

    Dem automatischen Umstieg auf eine stärkere Verschlüsselung kann in manchen Umgebungen eine ungünstige Konfiguration entgegenstehen. Dies ist etwa der Fall, wenn bestimmten Konten spezifische Algorithmen zugewiesen wurden.

    Prüfen sollte man zudem, ob per Gruppenrichtlinie bestimmte Verfahren für die Verschlüsselung zugelassen wurden. Zuständig dafür ist die Einstellung Netzwerk­sicherheit: Für Kerberos zulässige Verschlüsselungs­typen konfigurieren.

    Sie findet sich unter Computer­konfiguration => Richtlinien => Windows-Einstellungen => Sicher­heits­einstellungen => Lokale Richtlinien => Sicherheits­­optionen.

    Über diese Gruppenrichtlinie lassen sich Algorithmen festlegen, die der Kerberos-Client verwenden darf.

    Wurde hier unter anderem DES aktiviert, das Windows standardmäßig nicht mehr unterstützt, dann sollte man nachsehen, ob Accounts im Attribut UserAccountControl das Flag Nur Kerberos-DES-Verschlüsselungstypen für dieses Konto gesetzt haben. Sie wären dann auf den veralteten und unsicheren Algorithmus beschränkt. Daher sollte man dieses Flag entfernen. 

    Für einzelne Benutzer kann man das in Active Directory-Benutzer und -Computer unter der Registerkarte Konto tun.

    Über AD-Benutzer und -Computer lässt sich DES als einziger Algorithmus festlegen

    Wenn man alle Konten finden möchte, die auf diese Weise konfiguriert waren, dann erledigt dies folgender Aufruf von PowerShell:

    Get-ADUser -Filter 'UserAccountControl -band 0x200000'

    Das Bit-weise und von UserAccountControl mit 0x200000 zeigt, ob das Flag für die DES-Verschlüsselung gesetzt ist. Wenn man dieses entfernen möchte, dann kann man dies so tun:

    Get-ADUser -Filter 'UserAccountControl -band 0x200000' |
    foreach {Set-ADAccountControl -Identity $_ -UseDESKeyOnly $false}

    Auf RC4 prüfen

    Das Active Directory ist bei der Speicherung der bevorzugten Algorithmen für die Kerberos-Verschlüsselung nicht konsistent. Während sich die Information für den exklusiven Gebrauch von DES im Attribut UserAccountControl befindet, legt es sonst die Konfiguration unter msDS-SupportedEncryptionTypes ab.

    Auch dieses Attribut von Typ unsigned long fungiert als Bitmask, so dass man den Status der einzelnen Flags prüfen muss, um zu sehen, welche Algorithmen zugelassen sind. Im Fall von RC4 handelt es sich um das dritte Bit. Entsprechend sieht eine Abfrage so aus:

    Get-ADUser -Filter 'msDS-SupportedEncryptionTypes -band 0x4' `
    -Properties msDS-SupportedEncryptionTypes |
    Select name, msDS-SupportedEncryptionTypes

    RC4 aus dem Attribut entfernen

    Um RC4 bei diesen Konten zu entfernen, kann man so vorgehen:

    Durch die Subtraktion von 4 wird das dritte Bit auf null gesetzt, alle Werte für die anderen Algorithmen bleiben jedoch erhalten.

    Wenn man das Attribut hingegen komplett neu schreiben möchte, dann kann man dafür den Parameter KerberosEncryptionType verwenden:

    Im obigen Beispiel würde man allen Konten, die bisher RC4 als zulässigen Algorithmus konfiguriert haben, die zwei AES-Algorithmen zuweisen. Verwendet man "none" als Wert für den Parameter, dann wird das Attribut auf 0x0 gesetzt und das Konto nutzt somit das Standardverfahren für die Verschlüsselung.

    Attribut msDS-SupportedEncryptionTypes mit Set-ADUser auf 0x0 zurücksetzen

    Verschlüsselungstyp für alle User dokumentieren

    Wenn man den Status des AD-Attributs für die Kerberos-Verschlüsselung dokumentieren möchte, dann kann dies mit Hilfe der Tabelle in diesem Blog-Beitrag tun. Sie enthält nicht nur die Werte für die einzelnen Algorithmen, sondern auch für sämtliche Kombinationen davon.

    Das folgende Script erzeugt für alle Benutzerkonten in der OU Finance eine CSV-Ausgabe, die man bei Bedarf in eine Datei schreiben könnte:

    Der try/catch-Abschnitt fängt Fehler ab, die dadurch entstehen, dass das Attribut keinen Wert enthält, wenn sich der Benutzer noch nie angemeldet hat.

    Status von msDS-SupportedEncryptionTypes für alle Konten dokumentieren

    Ein Wert von 0x0 entspricht laut Tabelle "Not defined - defaults to RC4_HMAC_MD5". Dies ändert sich jedoch mit KB5019081, so dass Microsoft künftig AES als Standard verwendet. Dies könnte man im Script entsprechend aktualisieren.

    Zusammenfassung

    Da Kerberos-Tickets häufig ein Ziel für Angriffe sind, um erhöhte Privilegien zu erhalten, sollte man sicherstellen, dass das Active Directory dafür eine starke Verschlüsselung einsetzt. DES und nun auch RC4 erfüllen diese Anforderung nicht.

    Mit dem November-Update 2022 wechselt Microsoft automatisch zu AES, es sei denn, Konten wurde gezielt ein anderer Algorithmus zugewiesen. Daher ist es wichtig, AD-User darauf zu prüfen, ob sie einzig auf DES festlegt oder ob sie explizit für RC4 konfiguriert wurden.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links

    2 Kommentare

    Hallo Wolfgang, ich weiß nicht, ob du es mitbekommen hast. Man darf das RC4 nicht entfernen. Es wird leider von Microsoft noch für einen anderen Zweck missbraucht. Kunden die dies zuvor schon umgesetzt haben, hatten ihre liebe Not mit den aktuellen CUs.

    Bild von Wolfgang Sommergut

    Hallo Karl, habe ich mitbekommen :-) Dieser Beitrag behandelt im Allgmeinen, wie man die konfigurierten Verschlüsselungstypen abfragt bzw. ändert. Ich gebe hier keine Empfehlung für bestimmte Algorithmen.