Rezime
Šume pouzdanost omogućavaju za resurse u Active Directory љumi da verujem identitete iz druge šume. Ukazano povjerenje može biti podešen u oba pravca. Šumi pouzdan je izvor identitet korisnika. Šumi poverenja sadrži resurs na koji potvrdi identitet korisnika. Šumi pouzdanih mogao da potvrdi korisnicima da veruje šumi bez omogućavanja obrnuto da dođe do.
Neusiljeno Kerberos delegiranje je mehanizam u kojem korisnik šalje svoje akreditive uslugama da omogućite uslugu za pristup resursima u ime korisnika. Da biste omogućili neusiljeno Kerberos delegiranje, nalog za servis u Aktivnom direktoriju mora biti označen kao pouzdan za delegaciju. Ovo stvara problem ako korisnik i usluga pripadaju različitim šume. Šumi servisa je odgovoran za dozvoljavanje delegacija. Delegacija uključuje akreditiva korisnika iz korisnikove Foresta.
Omogućavajući onu sumu da donosi odluke za bezbednost koja utiče na druge šume nalozi krše sigurnosne granice između šume. Napadač u čijem je vlasništvu šumi poverenja možete zatražiti delegacije na TGT za identitetom od pouzdanih šumu, je dati pristup resursima u šumi pouzdanih. Ovo se ne primenjuje na ograničena Kerberos delegiranje (KCD).
Windows Server 2012 predstavio UT za šume granica za punu Kerberos delegiranje. Ova opcija dodaje politiku domene kojoj se vjeruje da onemogućite neusiljeno delegacija na osnovu po poverenje. Podrazumevana postavka za ova funkcija omogućava neusiljeno delegacija i je nesigurno.
Ispravke koje obezbeđuju sigurnost PolicyAgent postoje za sledeće verzije sistema Windows Server:
-
Windows Server 2019
-
Windows Server 2016
-
Windows Server 2012 R2
-
Windows Server 2012
Ova funkcija zajedno sa promenama u bezbednosti PolicyAgent bili backported na sledeće verzije:
-
Windows Server 2008 R2
-
Windows Server 2008
Ovi bezbednosnih ispravki izvršite sledeće promene:
-
Neusiljeno Kerberos delegiranje je onemogućena po podrazumevanoj vrednosti na nove šume i novi eksterni odnosinakon instalacije14 maja ažuriranja i kasnije dopune.
-
Neusiljeno Kerberos delegiranje je onemogućena na šume (novih i postojećih) i spoljni odnosi nakon instalacije u julu 9, 2019, ažuriranje i kasnije dopune.
-
Administratori mogu da omoguće neusiljeno Kerberos delegiranje pomoću u maju ili novije verzije NETDOM i AD PowerShell modula.
Dopune može izazvati sukobe kompatibilnosti za aplikacije koje trenutno zahtevaju neusiljeno delegacija preko šume ili eksterni fondove. Ovo se posebno odnosi na spoljni pouzdanost za koju je podrazumevano omogućena karantin zastavu (poznat i kao SID filtriranja). Konkretno, zahtevi za potvrdu identiteta za usluge koje koriste neusiljeno delegacija nad tipovima navedenih poverenje otkazaće kada zatražite novi karte.
Datumi objavljivanja, potražite ažurira vremenskoj osi.
Rešenje
Da pruži sigurnost podataka i računa na verziju Windows Server koji ima funkciju za sprovođenje za šume granica za punu Kerberos delegiranje , možete blokirati TGT delegacija nakon što instalirate ispravke marta 2019 preko za dolazne poverenje postavljanjem na zastava netdom EnableTGTDelegation da ne, na sledeći način:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:No
TGT delegacija je blokiran na nove i postojeće šume i spoljni odnosi nakon što instalirate u maju i jula 2019 ažurira tim redom.
Da ponovo omogućite delegacija preko fondove i vratiti originalnu konfiguraciju nesigurno dok ne može da se omogući sustavom resursa ili ograničeno delegiranje, postavite zastavu EnableTGTDelegationda.
NETDOM komandne linije da biste omogućili TGT delegacija je na sledeći način:
netdom trust <TrustedDomainName > /domain:<TrustingDomainName > /EnableTgtDelegation:Yes
Konceptualno možete da NETDOM sintaksu za omogućavanje TGT delegacija na sledeći način:
netdom trust <domain that you are administering> /domain:<domain whose trust NETDOM is modifying> /EnableTgtDelegation:Yes
Sintaksa "NETDOM" da biste omogućili TGT delegacija fabrakam.com korisnika na serverima contoso.com je na sledeći način:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:Yes
Napomene
-
EnableTGTDelegation zastava treba da bude postavljeno na pouzdanom domenu (fabrikam.com u ovom slučaju) za svakog poverenja domena (kao što je contoso.com). Nakon što je postavljena zastavica, pouzdanog domena će omogućiti više ne TGTs da se delegira poverenja domena.
-
Sigurnosno stanje za EnableTGTDelegation je ne.
-
Bilo koji aplikacija ili usluga koja se oslanja na neusiljeno delegacija preko šume će propasti kada EnableTGTDelegation ručno ili programski podešen na da. EnableTGTDelegation podrazumevane vrednosti na ne na nove i postojeće fondove za tobom instalirajte 2019 maja i jula 2019 ispravke. Više informacija o tome kako da otkrije greški, potražite u odeljku Pronalaženje usluge koje se oslanjaju na neusiljeno delegacija. Pogledajte ažurira vremenskoj osi za sva vremena promene koje utiču na to kako se ovo zaobilazno rješenje može primeniti.
-
Za više informacija o NETDOM, pogledajte dokumentaciju za Netdom.exe.
-
Ako morate da omogućite TGT delegacija na fond, preporučuje se da da ublaže taj rizik tako što ćete omogućiti Windows Defender akreditiv garde na klijentskim računarima. Ovo sprečava sve neusiljeno delegacija iz računara koji je Windows Defender akreditiv garde omogućena i pokrenuta.
-
Ako imate šume ili eksterni poverenje, a ni su konfigurisani kao u karantin, TGT delegacija ne može se omogućiti jer dve zastave su suprotni semantika. Karantin malo jača sigurnosne granice između učesnica domeni. Omogućavanje TGT delegacija briše bezbednosti granice između domena davanjem poverenja pristup domenu akreditiva korisnika iz pouzdanih domena. Te ne mogu imati obe stvari.
U karantinu: ne na zastavicu Sintaksa komandne linije NETDOM ako karantin zastava je trenutno omogućena.
-
Ako si se EnableTGTDelegation na da, Izbriši Kerberos ulaznice na izvorne i srednji pozivaoci po potrebi. Odgovarajuću kartu da biste izbrisali je klijentovu preporuku TGT preko relevantnih trust. Ovo mogu da uključuju više od jednog uređaja, u zavisnosti od broja delegacija hmelj u datom okruženju.
Za više informacija o ovom postupku, pogledajte sledeći članak Windows Pro centar:
Zaštiti akreditive izvedenog domena sa Windows Defender akreditiv garde
Ažuriranje vremenske ose
12. marta 2019.
Primena za ivicu šume za Kerberos punu delegacija će biti dostupan kao ažuriranje da biste omogućili ovu funkciju na svim podržanim verzijama operativnog sistema Windows Server koji su navedeni u odeljku " odnosi se na " na vrhu ovog članka. Preporučujemo da podesite opciju na dolazne šume fondove.
Ažuriranje će dodati funkcije za UT za šume granica za punu Kerberos delegiranje sledećih sistema:
-
Windows Server 2008 R2
-
Windows Server 2008
14. maja 2019.
Ispravka je pušten dodajući da je novi sigurnom podrazumevane konfiguracije za nove šume i spoljni odnosi. Ako je potrebno da delegacija preko fondove, EnableTGTDelegation zastavu treba da bude postavljeno na da pre nego što je 9 jula, 2019 ispravka instalirana. Ako vam nije potrebno da delegacija preko fondova, ne treba da podesite EnableTGTDelegation zastavu. EnableTGTDelegation zastava će biti zanemarene dok je 9 jula, 2019 ispravka instalirana da administratori vremena da biste ponovo omogućili neusiljeno Kerberos delegiranje kada ona nije potrebna.
U sklopu ovog ažuriranja, zastava EnableTGTDelegation će biti postavljen na ne po podrazumevanoj vrednosti za svaki novokreirani fondove. Ovo je suprotno od prethodne ponašanje. Preporučujemo da administratori umesto toga ponovo konfigurišete pogođene usluge koristiti zasnovane na resursa ograničeno delegiranje.
Više informacija o tome kako da otkrije probleme sa kompatibilnošću potražite u odeljku Pronalaženje usluge koje se oslanjaju na neusiljeno delegacija.
9. jula 2019.
Ažuriranje koje primenjuje novi podrazumevano ponašanje na ulaznim strani šume i spoljni odnosi pušten. Potvrda identiteta zahteva za usluge koje koriste neusiljeno delegacija nad tipovima navedenih pouzdanost će biti ovlašćeni, ali bez delegacija. Servis će propasti kada pokuša da pokrene delegiranih operacije.
Za ublažavanje, potražite u odeljkuzaobilaženje”.
Pronalaženje usluge koje se oslanjaju na neusiljeno delegacije
Skeniranje za šume koje imate dolazni fondove koji omogućavaju TGT delegacija i pronaci ikakve sigurnosti principi koji omogućavaju neusiljeno delegacija, pokrenite sledeću PowerShell skripte u skriptu datoteka (na primer, se-RiskyServiceAccountsByTrust.ps1- Prikupite):
Napomena
Takođe možete da prolaze zastava " -ScanAll " da biste pretražili fondove koji ne dozvoljavaju TGT delegacija.
[CmdletBinding()]
Param
(
[switch]$Collect,
[switch]$ScanAll
)
if ($Debug) {
$DebugPreference = 'Continue'
}
else {
$DebugPreference = 'SilentlyContinue'
}
function Get-AdTrustsAtRisk
{
[CmdletBinding()]
Param
(
[string]$Direction = "Inbound",
[switch]$ScanAll
)
if ($ScanAll) {
return get-adtrust -filter {Direction -eq $Direction}
}
else {
return get-adtrust -filter {Direction -eq $Direction -and TGTDelegation -eq $false}
}
}
function Get-ServiceAccountsAtRisk
{
[CmdletBinding()]
Param
(
[string]$DN = (Get-ADDomain).DistinguishedName,
[string]$Server = (Get-ADDomain).Name
)
Write-Debug "Searching $DN via $Server"
$SERVER_TRUST_ACCOUNT = 0x2000
$TRUSTED_FOR_DELEGATION = 0x80000
$TRUSTED_TO_AUTH_FOR_DELEGATION= 0x1000000
$PARTIAL_SECRETS_ACCOUNT = 0x4000000
$bitmask = $TRUSTED_FOR_DELEGATION -bor $TRUSTED_TO_AUTH_FOR_DELEGATION -bor $PARTIAL_SECRETS_ACCOUNT
$filter = @"
(&
(servicePrincipalname=*)
(|
(msDS-AllowedToActOnBehalfOfOtherIdentity=*)
(msDS-AllowedToDelegateTo=*)
(UserAccountControl:1.2.840.113556.1.4.804:=$bitmask)
)
(|
(objectcategory=computer)
(objectcategory=person)
(objectcategory=msDS-GroupManagedServiceAccount)
(objectcategory=msDS-ManagedServiceAccount)
)
)
"@ -replace "[\s\n]", ''
$propertylist = @(
"servicePrincipalname",
"useraccountcontrol",
"samaccountname",
"msDS-AllowedToDelegateTo",
"msDS-AllowedToActOnBehalfOfOtherIdentity"
)
$riskyAccounts = @()
try {
$accounts = Get-ADObject -LDAPFilter $filter -SearchBase $DN -SearchScope Subtree -Properties $propertylist -Server $Server
}
catch {
Write-Warning "Failed to query $Server. Consider investigating seperately. $($_.Exception.Message)"
}
foreach ($account in $accounts) {
$isDC = ($account.useraccountcontrol -band $SERVER_TRUST_ACCOUNT) -ne 0
$fullDelegation = ($account.useraccountcontrol -band $TRUSTED_FOR_DELEGATION) -ne 0
$constrainedDelegation = ($account.'msDS-AllowedToDelegateTo').count -gt 0
$isRODC = ($account.useraccountcontrol -band $PARTIAL_SECRETS_ACCOUNT) -ne 0
$resourceDelegation = $account.'msDS-AllowedToActOnBehalfOfOtherIdentity' -ne $null
$acct = [PSCustomobject] @{
domain = $Server
sAMAccountName = $account.samaccountname
objectClass = $account.objectclass
isDC = $isDC
isRODC = $isRODC
fullDelegation = $fullDelegation
constrainedDelegation = $constrainedDelegation
resourceDelegation = $resourceDelegation
}
if ($fullDelegation) {
$riskyAccounts += $acct
}
}
return $riskyAccounts
}
function Get-RiskyServiceAccountsByTrust
{
[CmdletBinding()]
Param
(
[switch]$ScanAll
)
$riskyAccounts = @()
$trustTypes = $("Inbound", "Bidirectional")
foreach ($type in $trustTypes) {
$riskyTrusts = Get-AdTrustsAtRisk -Direction $type -ScanAll:$ScanAll
foreach ($trust in $riskyTrusts) {
$domain = $null
try {
$domain = Get-AdDomain $trust.Name -ErrorVariable eatError -ErrorAction Ignore
} catch {
write-debug $_.Exception.Message
}
if($eatError -ne $null) {
Write-Warning "Couldn't find domain: $($trust.Name)"
}
if ($domain -ne $null) {
$accts = Get-ServiceAccountsAtRisk -DN $domain.DistinguishedName -Server $domain.DNSRoot
foreach ($acct in $accts) {
Write-Debug "Risky: $($acct.sAMAccountName) in $($acct.domain)"
}
$risky = [PSCustomobject] @{
Domain = $trust.Name
Accounts = $accts
}
$riskyAccounts += $risky
}
}
}
return $riskyAccounts
}
if ($Collect) {
Get-RiskyServiceAccountsByTrust -ScanAll:$ScanAll | Select-Object -expandProperty Accounts | format-table
}
Izlaz skripte PowerShell listu Active Directory nosioci sigurnosti u domeni koji su konfigurisani za jedan dolazni poverenje od izvršavanju domena koji je neusiljeno delegacija konfigurisan. Izlazna biće slična sledećem primeru.
domena |
sAMAccountName |
klase objekata |
partner.fabrikam.com |
opasno |
korisnik |
partner.fabrikam.com |
labsrv$ |
kompjuter |
Otkrivanje neusiljeno delegacija kroz Windows događaji
Nakon izdavanja kartu Kerberos, kontrolera domena aktivnog direktorijuma evidentira sledeće događaje vezane za bezbednost. Događaja sadrže informacije o ciljni domen. Događaja možete da koristite da biste utvrdili da li neusiljeno delegaciju koja se koristi preko dolazne fondove.
Napomena
Potvrdu za događaje koje sadrže TargetDomainName vrednost koja se podudara sa imenom pouzdanog domena.
Evidencije događaja |
Izvor događaja |
ID događaja |
Detalji |
Sigurnost |
Microsoft-Windows--nadzor bezbednosti |
4768 |
TGT je Kerberos je izdat. |
Sigurnost |
Microsoft-Windows--nadzor bezbednosti |
4769 |
Objavljen je kartu za usluge Kerberos. |
Sigurnost |
Microsoft-Windows--nadzor bezbednosti |
4770 |
Kartu za usluge Kerberos je obnovljen. |
Rešavanje problema identiteta otkazivanja
Kada je neusiljeno delegacija onemogućen, aplikacija možda problema sa kompatibilnošću sa ovih promena ako aplikacije koje se oslanjaju na neusiljeno delegacija. Ove aplikacije je trebao biti konfigurisan da koristi ograničena delegacija ili ograničena delegacije koja je zasnovan na resurs. Fili više informacija, see Pregled delegacija ograničena Kerberos.
Aplikacije koje se oslanjaju na povratnu potvrdu identiteta preko fondove podržani su samo pomoću ograničeno delegiranje. Na primer, delegacija propadne ako korisnik u šumi-U potvrđuje identitet u aplikaciju u šumi B i aplikacija u šumi B pokušava da delegirate kartu za šume A.