Kokkuvõte
Metsa trusts ette viis ressursside Active Directory metsa teise metsa identiteeti usaldada. See usaldus saab konfigureerida mõlemas suunas. Usaldatav mets on kasutajate allikas. Usaldavad metsa sisaldab abivahend, mis kasutajate autentimiseks. Usaldatav mets saab autentida kasutajad usaldavad metsa ilma tagurpidi tekkida.
Sundimatu Kerberose delegeerimine on mehhanism, mille kasutaja saadab oma mandaadi teenuse võimaldavad juurdepääsu ressurssidele kasutaja nimel. Sundimatu Kerberose delegeerimine lubamiseks peate teenusekonto Active Directory märgitud kui usaldusväärne delegeerimine. See tekitab probleemi, kui kasutaja ja teenuse kuuluvad erinevate metsade. Teenuse metsa vastutab võimaldab delegeerimine. Delegeerimine sisaldab kasutajate metsa kasutaja mandaate.
Võimaldab ühe metsa turvalisuse otsuseid, mis mõjutab teise metsa kontod rikub turvalisuse piiri metsade vahel. Ründaja, usaldavad metsa omanikust saab taotleda TGT identiteedi delegeerimine usaldatav mets annab juurdepääsu ressurssidele usaldatav mets. See ei kehti Kerberose piiratud delegeerimine (KCD).
Windows Serveri 2012 tuua jõustamise Kerberose täielik delegeerimine metsa piiri. See funktsioon on poliitika usaldusväärsest domeenist keelata sundimatu delegeerimine usalduse kohta eraldi. Vaikesäte see funktsioon võimaldab sundimatu delegeerimine ja ohtlik.
Turvalisuse tugevdamise pakuvad on olemas Windows Serveri järgmiste versioonide puhul:
-
Windows Serveri 2019
-
Windows Server 2016
-
Windows Server 2012 R2
-
Windows Server 2012
See funktsioon koos turbe täiustamine muutused olid backported järgmiste versioonide:
-
Windows Server 2008 R2
-
Windows Server 2008
Nende turvavärskenduste järgmised muudatused:
-
Uus metsa ja uue välise Trust vaikimisi keelatud sundimatu Kerberose delegeeriminepärast installimistmai 14 update ja uuemad värskendused.
-
Sundimatu Kerberose delegeerimine on keelatud metsa (uute ja olemasolevate) ja välise Trust pärast installimist on juuli 9, 2019 update ja uuemad värskendused.
-
Administraatorid lubada sundimatu Kerberose delegeerimine mai abil või NETDOM ja AD PowerShelli moodul uuemad versioonid.
Värskendused võivad põhjustada ühilduvuse konflikte rakendusi, mis nõuavad praegu sundimatu delegeerimine kogu metsas või välise Trust. See kehtib eriti välise trust, mille karantiini lipu (tuntud ka kui SID filtreerimine) on vaikimisi lubatud. Täpsemalt teenused, mis kasutavad sundimatu delegeerimine loetletud trust tüübid nurjuvad uute piletite tellimisel.
Avaldamise kuupäevad leiate värskendab ajaskaala.
Lahendus
Andmete ja konto turvalisus pakub Windows Serveri versiooni, mis on metsa piiri Kerberose täielik delegeerimine jõustamise funktsiooni, võib blokeerida TGT delegeerimine pärast märtsi 2019 värskenduste installimist üle sissetuleva trust määrates selle Netdom lipu EnableTGTDelegationNo järgmiselt:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:No
TGT delegeerimine on blokeeritud uue ja olemasoleva metsa ja välise Trust pärast installimist Mai ja juuli 2019 värskendab vastavalt.
Lubage kogu trusts delegeerimine ja naasta ebaturvaliste algse konfiguratsiooni kuni piiratud või ressursi delegeerimine saab lubatud, seadke EnableTGTDelegation lipu Jah.
NETDOM käsurea lubamiseks TGT delegeerimine on järgmine:
netdom trust <TrustedDomainName > /domain:<TrustingDomainName > /EnableTgtDelegation:Yes
Olemuselt Mõelge NETDOM süntaks lubamine TGT delegeerimine järgmiselt:
netdom trust <domain that you are administering> /domain:<domain whose trust NETDOM is modifying> /EnableTgtDelegation:Yes
Lubamiseks TGT delegeerimine fabrakam.com kasutajate contoso.com serverites NETDOM süntaks on järgmine:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:Yes
Märkused
-
EnableTGTDelegation lipu seadma usaldusväärses domeenis (antud juhul Fabricam.com) iga usaldavad domeeni (nt contoso.com). Pärast seda, kui seatakse lipu, luba usaldusväärsest domeenist enam usaldavad domeeni delegeeritud TGTs eluiga.
-
EnableTGTDelegation turvaline olek pole.
-
Rakendus või teenus, mis sõltub sundimatu delegeerimine metsade vahel nurjub, kui EnableTGTDelegation on käsitsi või automaatselt määratud Jah. EnableTGTDelegation vaikeväärtus on NO sisse uue ja olemasoleva hooldus pärast mai 2019 ja juuli 2019 värskendusi installida. Tuvastada selle tõrke kohta lisateabe saamiseks vaadake teenused, mis sõltuvad sundimatu delegeerimine leida. Vaadake värskenduste ajaskaala ajaskaala muudatusi, mis mõjutavad seda, kuidas seda lahendust saab rakendada.
-
Lugege lisateavet NETDOM Netdom.exe dokumentatsiooni.
-
Kui peate lubama TGT delegeerimine usalduse kohta, on soovitatav seda riski vähendamiseks, lubades Windows Defenderi mandaatide valvur klientarvutite. See hoiab kõik sundimatu delegeerimine arvutist, millel on Windows Defender mandaatide valvur lubatud ja töötab.
-
Kui teil on metsa või välise trust ja kas on konfigureeritud karantiini, ei saa lubada TGT delegeerimine, kuna kaks lipud on vastupidise semantika. Karantiini bit tugevdab turvalisuse piiri osalevad domeenide vahel. Lubamine TGT delegeerimine kustutab turvalisuse piirid, võimaldab kasutajatel mandaatide usaldavad domeeni juurdepääsu usaldusväärsest domeenist domeenide vahel. Te ei saa olla nii moodi.
Karantiin: no lipu lisada NETDOM Käsureasüntaks karantiini lipp on praegu lubatud.
-
Kui olete muutnud EnableTGTDelegationJah, kustutage Kerberose piletit pärinevaid ja kesktasemel helistades vastavalt vajadusele. Vastava pileti kustutamiseks on kliendi viide TGT kogu vajalikku usalduse. See võib hõlmata rohkem kui üks seade, sõltuvalt konkreetses keskkonnas delegeerimine hüpete arvu.
Selle toimingu kohta lisateabe saamiseks lugege Windows IT Pro Center järgmist artiklit:
Tuletatud domeeni mandaate Windows Defenderi mandaatide valvur kaitse
Värskenduste ajaskaala
12. märtsil 2019
Jõustamise eest metsa piir Kerberose täielik delegeerimine on saadaval värskendus kõigi toetatud versioonid Windows Server jaotises kehtib käesoleva artikli alguses loetletud selle funktsiooni. Soovitame määrata sissetuleva metsa trusts funktsiooni.
Värskendus lisab funktsiooni täitmise metsa piiri Kerberose täielik delegeerimine järgmistesse süsteemidesse:
-
Windows Server 2008 R2
-
Windows Server 2008
14. mai 2019
Värskendus anti välja mõne uue ohutu vaikimisi konfiguratsioon Uus metsa ja välise Trust lisamine. Kui vajate delegeerimine kogu Trust, EnableTGTDelegation lipu tuleks seada Jah enne 9 juuli 2019 värskenduse installimist. Kui te ei vaja delegeerimine kogu Trust, tuleks EnableTGTDelegation lippu ei määra. EnableTGTDelegation lipu ignoreeritakse kuni 9 juuli 2019 värskenduse installimist administraatoritel lubage sundimatu Kerberose delegeerimine, kui see on vajalik aega anda.
Selle värskenduse osana seatakse EnableTGTDelegation lippu ei kuvata vaikimisi ühtegi vastloodud Trust. See on varasema käitumise vastupidist. Me soovitame, et administraatorid konfigureerima selle asemel mõjutatud teenuseid kasutada ressurssi vastavalt piiratud delegeerimine.
Ühilduvusprobleemide tuvastamiseks kohta lisateabe saamiseks vaadake leida teenused, mis sõltuvad sundimatu delegeerimine.
9. juuli 2019
Värskendus anti välja mis jõustab uue vaikekäitumise metsa ja välise Trust sissetuleva poolel. Autentimine nõuab teenused, mis kasutavad sundimatu delegeerimine üle loetletud trust tüübid on autentimisega, kuid ilma delegeerimine. Teenus ei õnnestu, üritab delegeeritud operatsioonide.
Leevendamine, lugege jaotise "vastukaal".
Leida teenused, mis sõltuvad sundimatu delegeerimine
Otsige metsades, mis on sissetuleva usub, et võimaldada TGT delegeerimine ja luba sundimatu, mis tahes turvalisuse leidmiseks käivitage järgmine PowerShelli skriptide skripti faili (näiteks Get-RiskyServiceAccountsByTrust.ps1- Kogutud):
Märkus.
Samuti ei liigu - ScanAll lipu Trust, mis ei luba TGT otsimiseks.
[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
}
PowerShelli skriptide väljund loendis Active Directory domeenid, mis on konfigureeritud sissetuleva Trust täidesaatva domeeni, mis on konfigureeritud delegeerimine sundimatu turbepõhimõtete. Väljund sarnaneb järgmises näites.
Domeen |
sAMAccountName |
Objektiklassi |
partner.fabrikam.com |
ohtlike |
kasutaja |
partner.fabrikam.com |
labsrv$ |
arvuti |
Sundimatu delegeerimine kaudu Windowsi sündmuste tuvastamine
Kerberose pileti välja logib Active Directory domeenikontrolleri järgmised turvalisusega seotud üritused. Sündmused sisaldavad teavet target domeeni. Sündmuste abil saate määratleda, kas sundimatu delegeerimine kasutab sissetuleva trusts üle.
Märkus.
Kontrollige sündmuste kohta, mis on TargetDomainName väärtus, mis vastab usaldusväärse domeeni nimi.
Sündmuste logi |
Sündmuse allikas |
Sündmuse ID |
Üksikasjad |
Turvalisus |
Windows Microsoft Security Auditing |
4768 |
Kerberose TGT väljastati. |
Turvalisus |
Windows Microsoft Security Auditing |
4769 |
Teenuse Kerberose pilet on välja antud. |
Turvalisus |
Windows Microsoft Security Auditing |
4770 |
Teenuse Kerberose pilet taastatakse. |
Autentimise tõrgete tõrkeotsing
Sundimatu delegeerimine on keelatud, võivad rakendused on ühilduvusprobleeme, need muudatused kui rakendused sõltuvad sundimatu delegeerimine. Need rakendused peaksid olema konfigureeritud kasutamine piiratud delegeerimine või piiratud delegeerimine, mis põhineb ressursi. Fvõi rohkem teavet, see .Kerberose piiratud delegeerimine ülevaade
Rakendusi, mis sõltuvad edasi autentimist üle trusts, kasutades piiratud delegeerimine ei toetata. Näiteks on delegeerimine nurjub, kui rakenduse metsa b kontrollib kasutaja metsa a ja metsa b rakendus üritab delegeerida pilet tagasi metsa A.