Jump to content

Patchday November - Kerberos Quickfix


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Problem: https://www.borncity.com/blog/2022/11/14/microsoft-besttigt-kerberos-authentifizierungsprobleme-nach-nov-2022-updates/

Schnelle kleine Lösung - nur für kleinere Umfelder geeignet, da wenig performant. Aber funktionsfähig :-)

 

$Results = [Collections.Arraylist]::new()
$Filter = "(samaccountname=*)"
$Results.AddRange( @( Get-ADComputer -LDAPFilter $Filter | Select-Object -Property * ) )
$Results.AddRange( @( Get-ADUser -LDAPFilter $Filter | Select-Object -Property * ) )
$Results.AddRange( @( Get-ADServiceAccount -LDAPFilter $Filter | Select-Object -Property * ) )

Foreach ( $Object in $Results ){
    Set-ADObject $Object.DistinguishedName -Replace @{'msds-supportedencryptiontypes'=28} -Verbose
}

 

Wer sich über das Select-Object -Property * wundert - Stackoverflow mal durchsuchen, da gibt's ein Issue mit den AD-Cmdlets :-)

Geschrieben

...aber Du fügst weniger Daten zur ArrayList hinzu. Ansonsten auf die Schnelle:

$as = New-Object System.DirectoryServices.DirectorySearcher
$as.Filter = "(|(objectClass=computer)(objectClass=user)(objectClass=msDS-GroupManagedServiceAccount))"
$as.PropertiesToLoad.add('distinguishedName')
$Results = $as.FindAll().Foreach({$_.Properties['distinguishedName'][0]})

 

Und hier vermutlich auch für mittelgroße Umgebungen geeignet:

$as = New-Object System.DirectoryServices.DirectorySearcher
$as.Filter = "(|(objectClass=computer)(objectClass=user)(objectClass=msDS-GroupManagedServiceAccount))"
$as.PageSize = 1000
$as.PropertiesToLoad.add('distinguishedName')

$as.FindAll().Foreach({ 
    $de = $_.GetDirectoryEntry()
    $de.InvokeSet('msds-supportedencryptiontypes',28)
    $de.CommitChanges() 
})

 

Geschrieben

Wenn ich das richtig sehe, aktiviert das wieder RC4 korrekt? Da bin ich bei solchen Quick'n'dirty Lösungen ja immer skeptisch,  ob hinterher überall auch wieder auf 24 gesetzt wird. ;) Und dann sind sich alle sicher, dass sie immer gepatcht haben und vergessen die Q'n'D Aktion ausm November 2022. ;)

Geschrieben

Wir haben ne Domain Policy mit Kerberos ETypes (AES only). Das Problem ist nur, daß der Client wohl RC4 mitschicken muß, damit der Server das im richtigen Codezweig verarbeitet - oder irgendwas in die Richtung. Das INet ist diesbezüglich noch ziemlich wirr...

 

@cj_berlin hat natürlich Recht - wenn bei uns jetzt plötzlich RC4-Tickets ausgestellt würden, hätte sich unser SOC schon längst gemeldet :-)

 

Und mit System.DirectoryServices werden wir das auch in unserer Produktion machen. Aber nicht mit dem DirectorySearcher, sondern mit Protocols.SearchRequest. Hat den Vorteil, daß wir in den paged Searches über jeweils 1000 Ergebnisse iterieren können und nicht alle Objekte auf einmal in einer Schleife landen. Hab mein Sample von oben mal in einer Testumgebung mit 300k Objekten laufen lassen -> 3 GB RAM. Prod hat bei uns "etwas" mehr Objekte :pfui1:

vor 23 Stunden schrieb cj_berlin:

...aber Du fügst weniger Daten zur ArrayList hinzu.

 

JETZT hab sogar ich es kapiert. Ich war bei "Get-ADUser -Properties DistinguishedName", aber Du meintest beim Select :-) ACK!

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...