Active Directory Security Breach - 15 Zeichen Kennwortrichtlinie nicht möglich

05.12.2019 | Autor: Mark Heitbrink

Breaking the AD ... Unglaublich aber wahr

Update, *jubelgeschfrei*! 
August Update 2020: Minimum Password Length auditing and enforcement on certain versions of Windows
Nach dem Update ist es keine Problem mehr, es umstädnlich gelöst, aber jetzt auch nativ machbar. Der Wert selbst kann nicht über 14 Zeichen hinaus definiert werden, aber es gibt einen neuen (MinimumPasswordLengthAudit), der alternativ einspringt und dann bis zu 128 Zeichen erlaubt.
siehe auch: Security baseline (FINAL): Windows 10 and Windows Server, version 2004

Was bisher galt:
Das AD kann keine Kennworte größer 14 Zeichen über die Gruppenrichtlinie setzen, obwohl die Oberfläche des GP Editors 20 Zeichen erlaubt. Ich habe ein AD 2019 in der Testumgebung mit DFL und FFL 2016, also aktuell genug, als das es gehen sollte.

Ich habe schon einige Male eine optionale Regel eingeführt, die 20 Zeichen erfordert, allerdings über ein PSO (Passwort Settings Object) mit den FGPPs (Fine Grained Password Policies). Dieses wird auf eine Sicherheitsgruppe angewendet, ist also nicht immer für alle gültig. Diese Regel habe ich als Angebot für nette Angestellte mit denen ich geredet habe, Der Deal ist: Die machen eine ordentliches Kennwort (3-4 nicht assozierbare Begriffe, min 20 Zeichen) dafür dürfen sie es 2 Jahre behalten.

Fine Grained Password Policies (FGPP) - Password Settings Objects (PSO)

Mittlerweile würde ich aber gern 15 Zeichen als Default vorgeben und stolpere über die Security Baselines von Microsoft, die 14 Zeichen vorgibt. Warum diese krumme Zahl, warum nicht 15? Die Antwort lautet schlicht: Weil es nicht geht.

Es geht nicht nativ über den normalen Weg der Gruppenrichtlinie, Da muss man über einen Umweg lösen.

Situation: Default Domain Passwort Policy
Kennwort muss Komplexitätsvoraussetzungen entsprechen= Aktiviert
Kennwortchronik erzwingen = 24 gespeicherte Kennwörter
Kennwörter mit umkehrbarer Verschlüsselung speichern = Deaktiviert
Maximales Kennwortalter = 42 Tage
Minimale Kennwortlänge = 7 Zeichen
Minimales Kennwortalter = 1 Tage

Stellt ihr diese auf 15 Zeichen ein, passieren 2 Dinge nach jedem gpupdate.exe:

1. Ihr erhaltet einen Fehler im Eventlog: SceCli 1202, Die Sicherheitsrichtlinien wurden mit Warnungen propagiert. 0x57 : Falscher Parameter auf JEDEM Rechner, denn die Default Domain Policy kommt idR überall an.

2. Im AD wird das korrespondierende Attribut nicht umgestellt. Es bleibt bei 7 Zeichen. Das ist der Breach. Ihr denkt ihr habt 15 Zeichen Kennworte, aber es sind weiterhin 7 erlaubt.

Die Lösung erscheint relativ trivial. Ihr ändert das AD Attribut minPwdLength. Es gibt Powershell Befehle mit denen das gemacht werden kann oder ihr tragt es einfach direkt per Hand in die dc=euredom,dc=tld ein. Das funktioniert technisch für die Vergabe der Kennworte einwandfrei, aber es bleibt der Fehler im Eventlog. Den kriegt ihr nicht weg, solange dort der Wert größer 14 Zeichen drin enthalten ist. Wer noch lokale Benutzer verwendet, der wird dieselben Fehler für diese Konten auf den Maschinen haben.

Mein Vorschlag:

1. Ihr baut die Default Domain Policy auf 14 Zeichen um. Das beseitigt den Fehler.

2. Ihr baut ein Password Settings Object mit der gewünschten Länge und filtert das auf die "Domänen-Benutzer". Der Vorteil ist, dann gilt das PSO auch für Benutzer, die gerade erstellt werden. Was bei einer eigenen Sicherheitsgruppe nicht der Fall wäre.

In meinem Beispiel ist das PSO auf 20 Zeichen ausgelegt, die Default Domain Policy auf 14 Zeichen.

Im letzten Bild könnt ihr sehen, daß die 14 Zeichen sowohl bei einer Kennwortänderung vorhandener Konten nicht ausreichen, als auch bei der Neuerstellung die 20 Zeichen Regel gilt.

Erstellt man den Benutzer in der Commandline mit einem Kennwort größer 14 Zeichen, dann erscheint eine Fehlermeldung. Allerdings verweist das auf eine Problematik, von der jeder glaubt, daß sie ihn nicht betrifft. 15 Zeichen ... NetBIOS? Da war mal was. Bei einigen klingelt es im Hinterkopf. Aber wer hat noch DOS, Windows 95/98 oder NT 4.0? Ein Modernes OS sollte das können .... Windows kann es ja auch, aber nicht so, wie man es im ersten Moment einrichten würde.

C:\> net user Otto Kennwortmit000000020 /add
Das eingegebene Kennwort enthält mehr als 14 Zeichen. Computer mit Vorgängerversionen von Windows 2000 werden nicht auf dieses Konto
zugreifen können. möchten Sie den Vorgang fortsetzen? (J/N) [J]: j

Der Befehl wurde erfolgreich ausgeführt.
C:\>