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

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 :-)

Link zu diesem Kommentar

...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() 
})

 

Link zu diesem Kommentar

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!

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...