Özet
Orman güvenleri kimlikleri başka bir ormandaki güven için bir Active Directory ormanındaki kaynaklar için bir yol sağlar. Bu güven her iki yönde de yapılandırılabilir. Güvenilen ormandaki kullanıcı kimliği kaynağıdır. Güvenen ormandaki kaynak için kullanıcıların kimliğini içerir. Güvenilen ormandaki ters oluşmasına izin verilmeden güvenen ormandaki kullanıcıların kimlik doğrulamasını yapabilirsiniz.
Sınırlandırılmamış Kerberos temsilcisi olarak kullanıcı kimlik bilgilerini kullanıcı adına kaynaklara erişmek hizmeti etkinleştirmek üzere bir hizmetine gönderir bir mekanizmadır. Sınırlandırılmamış Kerberos temsilci seçmeyi etkinleştirmek için Active Directory hizmet hesabında işaretlenmelidir temsilci seçme için güvenilir. Kullanıcı ve hizmet için farklı ormanlardaki aitse, bu bir sorun oluşturur. Temsilci seçme olanağı tanımak için hizmet orman sorumludur. Temsilci kullanıcının ormanından kullanıcıların kimlik bilgilerini içerir.
Başka bir ormanın hesaplarını etkileyen güvenlik kararları vermek bir orman izin vererek, ormanlar arasında güvenlik sınırını ihlal ediyor. Güvenen orman sahibi bir saldırganın güvenilen ormandaki kaynaklara erişim veren güvenilir ormandan TGT için kimlik bilgilerinin aktarılmasına isteyebilir. Bu kısıtlı Kerberos temsilcisi (KCD) için geçerli değildir.
Windows Server 2012 zorlama orman sınırının tam Kerberos temsilcisi içinkullanılmaya başlandı. Bu özellik bir ilke sınırlandırılmamış temsilci seçme güveni başına temelinde devre dışı bırakmak için güvenilen etki alanı eklendi. Bu özellik için varsayılan ayarı sınırlandırılmamış temsilci sağlar ve güvenli değildir.
Güvenliği sağlamlaştırma sağlayan güncelleştirmeleri Windows Server'ın aşağıdaki sürümleri için mevcuttur:
-
Windows Server 2019
-
Windows Server 2016
-
Windows Server 2012 R2
-
Windows Server 2012
Bu özellik güvenliği sağlamlaştırma değişiklikleri ile birlikte olan backported aşağıdaki sürümleri için:
-
Windows Server 2008 R2
-
Windows Server 2008
Bu güvenlik güncelleştirmeleri aşağıdaki değişiklikleri yapın:
-
Sınırlandırılmamış Kerberos temsilcisi yeni orman ve yeni dış güvenler varsayılan olarak devre dışı bırakılıryükledikten sonra14 Mayıs güncelleştirme ve sonraki güncelleştirmeleri.
-
9 Temmuz 2019, güncelleştirme ve sonraki güncelleştirmeleri yükledikten sonra sınırlandırılmamış Kerberos temsilcisi ormanlar (birYeni ve varolan) ve dış güvenleri devre dışı bırakılır.
-
Yöneticiler, Mayıs kullanarak sınırlandırılmamış Kerberos temsilcisi veya NETDOM ve AD PowerShell Modül'ün sonraki sürümlerinde etkinleştirebilirsiniz.
Güncelleştirmeler şu anda orman veya dış güvenleri sınırlandırılmamış temsilci gerektiren uygulamalar için Uyumluluk çakışmalarına neden olabilir. Bu, özellikle dış güven karantina bayrağı (olarak da bilinen SID filtreleme) varsayılan olarak etkin olduğu doğrudur. Özellikle, yeni biletleri istemek sınırlandırılmamış temsilci üzerinde listelenen güven türlerini kullanan hizmetler için kimlik doğrulama istekleri başarısız olur.
Zaman çizelgesini güncelleştiriryayın tarihleri için bkz.
Geçici Çözüm
Ayarlayarak bir gelen güven üzerinde Mart 2019 güncelleştirmeleri yükledikten sonra orman sınırının tam Kerberos temsilcisi için zorlama özelliği olan bir Windows Server sürüm veri ve hesap güvenliği sağlamak için temsilci TGT engelleyebilirsiniz Netdom bayrak yok, EnableTGTDelegation aşağıdaki gibi:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:No
TGT temsilci Mayıs yükleyip Temmuz 2019 günceleştirir sonra yeni ve varolan orman ve dış güvenler engellenir.
Kısıtlanmış veya kaynak tabanlı temsilci etkin kadar güvensiz Başlangıçtaki yapılandırmaya geri dönmek ve güvenleri üzerinden yeniden etkinleştirmek için EnableTGTDelegation bayrağı Evetolarak ayarlayın.
TGT etkinleştirmek için NETDOM komut satırı aşağıdaki gibidir:
netdom trust <TrustedDomainName > /domain:<TrustingDomainName > /EnableTgtDelegation:Yes
TGT temsilci şekilde etkinleştirmek için NETDOM sözdizimi kavramsal olarak düşünebilirsiniz:
netdom trust <domain that you are administering> /domain:<domain whose trust NETDOM is modifying> /EnableTgtDelegation:Yes
Fabrakam.com kullanıcı contoso.com sunucularda TGT etkinleştirmek için NETDOM sözdizimi aşağıdaki gibidir:
netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:Yes
Notlar
-
EnableTGTDelegation bayrağı (fabrikam.com Bu durumda) (örneğin, contoso.com) güvenen her etki alanı için güvenilen etki alanında ayarlamanız gerekir. Bayrak ayarladıktan sonra güvenilen etki alanı güvenen etki alanına geçirilmesine izin TGT'ler izin verir.
-
Güvenli bir duruma EnableTGTDelegation için Hayır' dır.
-
Herhangi bir uygulama veya sınırlandırılmamış temsilci üzerinde ormanlarda dayanır hizmet EnableTGTDelegation el ile veya programlı olarak ayarlandığında başarısız olur Evet.Hayır , sonra yeni ve varolan güvenleri EnableTGTDelegation varsayılanlara Mayıs 2019 ve Temmuz 2019 güncelleştirmeleri yükleyin. Bu hata algılama hakkında daha fazla bilgi için bkz: Hizmetleri, üzerinde sınırlandırılmamış temsilci kullanan bulma. Zaman çizelgesini güncelleştirir , bu geçici çözümün nasıl uygulanabilir etkileyen değişiklikler için bir zaman çizelgesi bakın.
-
NETDOM hakkında daha fazla bilgi için Netdom.exe belgelerinebakın.
-
TGT temsilci seçme güveni üzerinde etkinleştirmeniz gerekir, istemci bilgisayarlarda Windows Defender kimlik koruma sağlayarak bu riski ortadan kaldırmak önerilir. Bu, etkin ve çalışan Windows Defender kimlik bilgisi Guard bulunan bir bilgisayardan sınırlandırılmamış tüm temsilci engeller.
-
İki bayrak karşıt semantiklerine sahip olduğundan, bir orman veya dış güven varsa ve karantinaya gibi yapılandırılmış TGT temsilci etkinleştirilemez. Karantina bit katılımcı etki alanları arasındaki güvenlik sınırı güçlendirir. TGT temsilcisi etkinleştirme güvenilen etki alanından güvenen etki alanı erişimi için kullanıcı kimlik bilgileri vererek etki alanları arasındaki güvenlik sınırları siler. Her iki yönde olamaz.
Şu anda Karantina bayrağı etkinse, NETDOM komut satırı sözdizimi için Karantina: Hayır bayrak ekleyin.
-
EnableTGTDelegation Evetdeğiştirdiyseniz, Kerberos biletleri üzerinde gerektiği gibi kaynak ve Ara arayanlar silin. Silmek için uygun istemcinin başvuru TGT ilgili güven üzerinden bir fırsattır. Bu, belirli bir ortamda temsilci atlama sayısına bağlı olarak birden fazla aygıt ilgili.
Bu yordam hakkında daha fazla bilgi için aşağıdaki Windows IT Pro merkezi makalesine bakın:
Türetilmiş etki alanı kimlik bilgileriyle Windows Defender kimlik koruma korumak
Güncelleştirme zaman çizelgesi
12 Mart 2019
Orman sınırının için zorlama için Kerberos temsilcisi tam olarak bu makalenin başındaki Aşağıdakilere uygulanır bölümünde listelenen tüm desteklenen sürümleri Windows Server'ın bu özelliği etkinleştirmek için bir güncelleştirme kullanılabilir. Gelen orman güvenleri özelliğini ayarlamak öneririz.
Güncelleştirme aşağıdaki sistemler için orman sınırının tam Kerberos temsilcisi için zorlama özelliğini ekler:
-
Windows Server 2008 R2
-
Windows Server 2008
14 Mayıs 2019
Bir yeni güvenli varsayılan yapılandırma Yeni orman ve dış güvenler için ekleme bir güncelleştirme yayımlanmıştır. Temsilci güvenleri üzerinden gerektiriyorsa, 9 Temmuz 2019 güncelleştirme yüklenmeden önce EnableTGTDelegation bayrağı Evet olarak ayarlanmalıdır. Güvenleri üzerinden temsilci gerek duymuyorsanız, EnableTGTDelegation bayrağı ayarlamamalısınız. Yöneticiler gerekli olduğunda sınırlandırılmamış Kerberos temsilcisi yeniden etkinleştirmek için zaman vermek için 9 Temmuz 2019 güncelleştirme yükleninceye kadar EnableTGTDelegation bayrağı gözardı.
Bu güncelleştirmenin bir parçası olarak, EnableTGTDelegation bayrağı için herhangi bir yeni oluşturulan güvenler varsayılan olarak Hayır ' a ayarlanır. Önceki davranış tersidir. Yöneticilerin Kısıtlanmış temsilci seçme kaynak tabanlı kullanmak için etkilenen hizmetlerin yerine yeniden yapılandırmanız önerilir.
Uyumluluk sorunları algılamak hakkında daha fazla bilgi için bkz: Hizmetleri, üzerinde sınırlandırılmamış temsilci kullanan bulma.
9 Temmuz 2019
Dış güvenler ve orman gelen tarafında yeni varsayılan davranış zorlayan bir güncelleştirme yayımlanmıştır. Sınırlandırılmamış temsilci üzerinde listelenen güven türlerini kullanan Hizmetleri kimlik doğrulaması için ancak temsilcisi olmadan kimlik doğrulama istekleri. Temsilci seçilen işlemler çalıştırmayı denediğinde bu hizmeti başarısız olur.
İçin Azaltıcı Etkenler, "geçici çözüm" bölümüne bakın.
Sınırlandırılmamış temsilci üzerinde dayanan bulma hizmetleri
TGT temsilci seçmeye izin verecek gelen güven ve güvenlik sınırlandırılmamış temsilci izin ilkeleri bulmak için aşağıdaki PowerShell çalıştırmak için ormanları taramak için (örneğin, Get-RiskyServiceAccountsByTrust.ps1 - bir komut dosyası komut dosyası Ödemeli):
Not
TGT temsilci izin vermeyen güvenleri üzerinden arama yapmak için - ScanAll bayrağı da iletebilirsiniz.
[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
}
PowerShell komut dosyası çıkışını bir temsilci yapılandırılmış serbest yürütülen bir etki alanından gelen güveni için yapılandırılmış olan etki alanlarında Active Directory güvenlik sorumluları listeleyin. Aşağıdaki örnek çıktı benzer.
etki alanı |
sAMAccountName |
objectClass |
partner.fabrikam.com |
tehlikeli |
Kullanıcı |
partner.fabrikam.com |
labsrv$ |
bilgisayar |
Windows olayları ile sınırlandırılmamış temsilci algılama
Active Directory etki alanı denetleyicisine Kerberos bileti kesilirken, aşağıdaki güvenlik olaylarını günlüğe kaydeder. Olaylar, hedef etki alanı hakkında bilgi içerir. Olaylar, sınırlandırılmamış temsilci gelen güvenler kullanılmakta olup olmadığını belirlemek için kullanabilirsiniz.
Not
Güvenilen etki alanı adıyla eşleşen bir HedefEtkiAlanıAdı değeri içeren olayları denetleyin.
Olay günlüğü |
Olay kaynağı |
Olay Kimliği |
Ayrıntılar |
Güvenlik |
Microsoft-Windows-Güvenlik-Denetim |
4768 |
Kerberos TGT verildi. |
Güvenlik |
Microsoft-Windows-Güvenlik-Denetim |
4769 |
Kerberos hizmet bileti verildi. |
Güvenlik |
Microsoft-Windows-Güvenlik-Denetim |
4770 |
Kerberos hizmet bileti yenilendi. |
Kimlik doğrulama hataları giderme
Sınırlandırılmamış temsilci seçmeyi devre dışı bırakıldığında, sınırlandırılmamış temsilci üzerinde uygulamalar kullanan uygulamalar bu değişiklikler ile ilgili uyumluluk sorunları olabilir. Bu uygulamaların kullanımı Kısıtlı temsilci seçmek için yapılandırılmış olması veya kaynak tabanlı kısıtlanmış. Fveya daha fazla bilgi, see .Kerberos Kısıtlı temsilci seçme genel bakış
Kısıtlanmış temsilci seçme kullanarak güvenleri üzerinden gidiş-dönüş kimlik doğrulamasını kullanan uygulamalar desteklenmez. Örneğin, bir temsilci orman B içinde bir uygulama için orman A içindeki bir kullanıcı kimliğini doğrular ve uygulama orman B içinde orman a geri bilet temsilci çalışılırken başarısız olur