Windows Etki Alanında NTLM Kimlik Doğrulaması Nasıl Devre Dışı Bırakılır
NTLM (NT LAN Manager), Windows NT'ye dayanan eski bir Microsoft kimlik doğrulama protokolüdür. Microsoft daha güvenli Kerberos kimlik doğrulama protokolünü Windows 2000'de tanıtmış olsa da, NTLM (çoğunlukla NTLMv2) Windows etki alanı ağlarında kimlik doğrulama için hâlâ yaygın olarak kullanılmaktadır. Bu yazımızda Active Directory etki alanında NTLMv1 ve NTLMv2 protokollerini nasıl devre dışı bırakacağımıza ve Kerberos'a nasıl geçeceğimize bakacağız.
Temel NTLMv1 sorunları:
zayıf şifreleme;
çeşitli araçlar (Mimikatz gibi) kullanılarak Windows belleğinden düz metin olarak çıkarılabilen ve hash-the-has komut dosyalarını kullanarak daha sonraki saldırılar için kullanılabilen, LSA hizmetinin belleğinde parola karmasını depolamak;
bir sunucu ile bir istemci arasında karşılıklı kimlik doğrulamanın olmaması, verilerin kesilmesine ve kaynaklara yetkisiz erişime yol açar (Yanıtlayıcı gibi bazı araçlar, ağ üzerinden gönderilen NTLM verilerini yakalayabilir ve bunları ağ kaynaklarına erişmek için kullanabilir);
-
ve diğer güvenlik açıkları.
Bunlardan bazıları, daha güvenli şifreleme algoritmaları kullanan ve yaygın NTLM saldırılarının önlenmesine izin veren bir sonraki sürüm olan NTLMv2'de olmuştur. NTLMv1 ve LM kimlik doğrulama protokolleri, Windows 7 ve Windows Server 2008 R2'den başlayarak varsayılan olarak devre dışıdır.
NTLM Kimlik Doğrulaması Denetim Günlüğü Nasıl Etkinleştirilir?
Bir etki alanında NTLM'yi tamamen devre dışı bırakıp Kerberos'a geçmeden önce, etki alanında NTLM auth gerektiren ve kullanan hiçbir uygulama olmadığından emin olmak iyi bir fikirdir. Ağınızda NTLMv2 (veya Kerberos) yerine NTLMv1 kimlik doğrulamasını kullanan eski aygıtlar veya hizmetler olabilir.
NTLM kimlik doğrulaması kullanan hesapları veya uygulamaları izlemek için, GPO kullanan tüm bilgisayarlarda denetim günlüğü ilkelerini etkinleştirebilirsiniz. Varsayılan Etki Alanı Denetleyici Politikası'nı açın, Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> Güvenlik Seçenekleri bölümüne gidin, Ağ Güvenliği: NTLM'yi Kısıtla:'yı bulun ve etkinleştirin: Bu alan adı politikasında NTLM kimlik doğrulamasını denetleyin ve değerini Tümünü etkinleştir olarak ayarlayın.
Aynı şekilde, Varsayılan Etki Alanı İlkesi'nde aşağıdaki ilkeleri etkinleştirin:
Ağ Güvenliği: NTLM'yi Kısıtla: Gelen NTLM Trafiğini Denetle - değerini Etki alanı hesapları için denetimi etkinleştir olarak ayarlayın
Ağ güvenliği: NTLM'yi kısıtla: Uzak sunuculara giden NTLM trafiği: Tümünü denetle'yi ayarlayın
Bu politikalar etkinleştirildikten sonra, NTLM kimlik doğrulamasının kullanımıyla ilgili olaylar, Olay Görüntüleyici'nin Uygulama ve Hizmet Günlükleri-> Microsoft -> Windows -> NTLM bölümünde görünecektir. >
Her sunucudaki olayları analiz edebilir veya merkezi Windows Olay Günlüğü Toplayıcı'da toplayabilirsiniz.
Olay Kimliği 4624 olan Microsoft-Windows-Security-Auditing kaynağındaki olayları aramanız gerekir - “
An Account was successfully logged on“. "Ayrıntılı Kimlik Doğrulama Bilgileri " bölümündeki bilgileri not edin. Kimlik Doğrulama Paketi değerinde NTLM varsa, bu kullanıcının kimliğini doğrulamak için NTLM protokolü kullanılmıştır.
Paket Adı (yalnızca NTLM) değerine bakın. Bu satır, kimlik doğrulama için hangi protokolün (LM, NTLMv1 veya NTLMv2) kullanıldığını gösterir. Bu nedenle, eski protokolü kullanan tüm sunucuları/uygulamaları tanımlamanız gerekir.
Ayrıca, kimlik doğrulama için Kerberos yerine NTLM kullanılırsa, günlükte Olay Kimliği 4776 görünür:
The computer attempted to validate the credentials for an account
Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0Örneğin, tüm etki alanı denetleyicilerinde tüm NTLMv1 kimlik doğrulama olaylarını aramak için aşağıdaki PowerShell betiğini kullanabilirsiniz:
$ADDCs = Get-ADDomainController -filter
$Now = Get-Date
$Yesterday = $Now.AddDays(-1)
$NewOutputFile = "c:\Events\$($Yesterday.ToString('yyyyddMM'))_AD_NTLMv1_events.log"
function GetEvents($DC){
Write-Host "Searching log on " $DC.HostName
$Events = Get-EventLog "Security" -After $Yesterday.Date -Before $Now.Date -ComputerName $DC.HostName -Message "*NTLM V1*" -instanceid 4624
foreach($Event in $Events){
Write-Host $DC.HostName $Event.EventID $Event.TimeGenerated
Out-File -FilePath $NewOutputFile -InputObject "$($Event.EventID), $($Event.MachineName), $($Event.TimeGenerated), $($Event.ReplacementStrings),($Event.message)" -Append
}
}
foreach($DC in $ADDCs){GetEvents($DC)}Etki alanınızda NTLM kullanan kullanıcıları ve uygulamaları belirledikten sonra, onları Kerberos (muhtemelen SPN kullanarak) kullanacak şekilde değiştirmeyi deneyin. Kerberos kimlik doğrulamasını kullanmak için bazı uygulamaların biraz yeniden yapılandırılması gerekir (IIS'de Kerberos Kimlik Doğrulaması, Kerberos kimlik doğrulaması için farklı tarayıcıları yapılandırma, Kerberos Kimlik Doğrulamayı Kullanarak Keytab Dosyası Oluşturma). Kendi deneyimlerime göre, büyük ticari ürünlerin bile hala Kerberos yerine NTLM kullandığını, bazı ürünlerin güncelleme veya yapılandırma değişikliği gerektirdiğini görüyorum. Buradaki fikir, hangi uygulamaların NTLM kimlik doğrulamasını kullandığını belirlemektir ve artık bu yazılımları ve cihazları tanımlamanın bir yolunu buluyorsunuz.
Küçük açık kaynaklı ürünler, çeşitli ağ tarayıcılarının (taramaları paylaşılan ağ klasörlerinde depolayan) eski modelleri, bazı NAS cihazları ve diğer eski donanım, eski yazılım ve işletim sistemlerinde NTLMv1 devre dışı bırakıldığında muhtemelen kimlik doğrulama sorunları olabilir.
Kerberos'u kullanamayan uygulamalar istisnalara eklenebilir. Bu, etki alanı düzeyinde devre dışı bırakılmış olsa bile NTLM kimlik doğrulamasını kullanmalarına izin verir. Bunu yapmak için Ağ güvenliği: NTLM'yi Kısıtla: Bu etki alanında NTLM kimlik doğrulaması için sunucu istisnaları ekle ilkesi kullanılır. NTLM kimlik doğrulamasının kullanılabileceği sunucuların adlarını da (NetBIOS adları, IP adresleri veya FQDN) istisnalar listesine ekleyin. İdeal olarak, bu istisna listesi boş olmalıdır. joker karakter kullanabilirsiniz
*
Bir uygulamada Kerberos kimlik doğrulamasını kullanmak için sunucunun IP adresi yerine DNS adını belirtmeniz gerekir. Kaynaklarınıza bağlanırken bir IP adresi belirtirseniz, NTLM kimlik doğrulaması kullanılacaktır.
Active Directory'yi NTLMv2'yi GPO aracılığıyla Zorlayacak Şekilde Yapılandırma
Bir AD etki alanında NTLM'yi tamamen devre dışı bırakmadan önce, daha savunmasız sürümü olan NTLMv1'i devre dışı bırakmanız önerilir. Etki alanı yöneticisinin, ağlarının kimlik doğrulama için NTLM veya LM kullanımına izin vermediğinden emin olması gerekir, çünkü bazı durumlarda bir saldırgan bir NTLM/LM isteğine yanıt almak için özel istekler kullanabilir.
Etki alanı GPO'sunu kullanarak tercih edilen kimlik doğrulama türünü ayarlayabilirsiniz. Grup İlkesi Yönetim Düzenleyicisi'ni açın (
gpmc.msc) ve Varsayılan Etki Alanı Denetleyicileri Politikasını düzenleyin. Bilgisayar Yapılandırmaları -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> Güvenlik Seçenekleri GPO bölümüne gidin ve Ağ Güvenliği: LAN Yöneticisi kimlik doğrulama düzeyi ilkesini bulun >.
İlke ayarlarında seçim yapabileceğiniz 6 seçenek vardır::
LM ve NTLM yanıtları gönderin;
LM ve NTLM yanıtları gönderin - anlaşmalıysanız NTLMv2 oturum güvenliğini kullanın;
Yalnızca NTLM yanıtı gönder;
Yalnızca NTLMv2 yanıtı gönder;
Yalnızca NTLMv2 yanıtı gönder. LM'yi reddet;
Yalnızca NTLMv2 yanıtı gönder. LM ve NTLM'yi reddet.
NTLM kimlik doğrulama seçenekleri, güvenlik geliştirme sırasına göre listelenir. Varsayılan olarak, Windows 7 ve sonraki işletim sistemleri Yalnızca NTLMv2 yanıtı gönder seçeneğini kullanır. Bu seçenek etkinleştirilirse, istemci bilgisayarlar NTLMv2 kimlik doğrulamasını kullanır, ancak AD etki alanı denetleyicileri LM, NTLM ve NTLMv2 isteklerini kabul eder.
NTLMv2, Kerberos protokolünün başarısız olduğu yerlerde ve bazı işlemler için (örneğin, etki alanına katılmış bilgisayarlarda yerel grupları ve hesapları yönetme) veya çalışma gruplarında kullanılabilir.
Politika değerini en güvenli seçenek olan 6 olarak değiştirebilirsiniz: "Yalnızca NTLMv2 yanıtı gönder. LM ve NTLM'yi Reddet ”. Bu ilke, etki alanı denetleyicilerinin LM ve NTLM isteklerini de reddetmesine neden olur.
NTLMv1'i kayıt defteri aracılığıyla da devre dışı bırakabilirsiniz. Bunu yapmak için HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa kayıt defteri anahtarı altında LmCompatibilityLevel adında 0 ile 5 arasında bir değere sahip bir DWORD parametresi oluşturun. Değer 5, "Yalnızca NTLMv2 yanıtı gönder" ilke seçeneğine karşılık gelir. LM NTLM'yi reddet ”.
Aynı GPO bölümünde Ağ güvenliği: LAN Manager karma değerini bir sonraki parola değişikliğinde saklama ilkesinin etkinleştirildiğinden emin olun. Windows Vista/Windows Server 2008'den başlayarak varsayılan olarak etkindir ve bir LM karması oluşturulmasını engeller.
NTLMv1'i kullanmadığınızdan emin olduktan sonra, daha ileri gidebilir ve NTLMv2'yi devre dışı bırakmayı deneyebilirsiniz. NTLMv2 daha güvenli bir kimlik doğrulama protokolüdür ancak güvenlik açısından Kerberos'a önemli ölçüde kaybeder (gerçi NTLMv2'de NTLMv1'e göre daha az güvenlik açığı vardır, ancak yine de verileri yakalama ve yeniden kullanma şansı vardır) çünkü karşılıklı kimlik doğrulamayı desteklemez).
NTLM'yi devre dışı bırakmanın ana riski, hala NTLM kimlik doğrulaması kullanıyor olabilecek eski veya yanlış yapılandırılmış uygulamaların olası kullanımıdır. Bu durumda, Kerberos'a geçmek için güncellenmeleri veya özel olarak yapılandırılmaları gerekir.
Ağınızda bir Uzak Masaüstü Ağ Geçidi sunucunuz varsa, istemcilerin NTLMv1 kullanarak bağlanmasını önlemek için ek bir yapılandırma yapmanız gerekecektir. Bir kayıt defteri girdisi oluşturun:
REG add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core" /v EnforceChannelBinding /t REG_DWORD /d 1 /fNTLM'yi Tamamen Kısıtlayın ve Bir AD'de Kerberos Kimlik Doğrulamasını Kullanın
Bir etki alanındaki farklı uygulamalarda kimlik doğrulamanın NTLM kullanmadan nasıl çalıştığını kontrol etmek için, gerekli kullanıcıların hesaplarını Korumalı Kullanıcılar etki alanı grubuna ekleyebilirsiniz (Windows Server 2012 R2 sürümünden beri mevcuttur). Bu güvenlik grubunun üyeleri, yalnızca Kerberos kullanarak kimlik doğrulaması yapabilir (NTLM, Digest Authentication veya CredSSP'ye izin verilmez). Bu, Kerberos kullanıcı kimlik doğrulamasının farklı uygulamalarda doğru şekilde çalıştığını doğrulamanıza olanak tanır.
Ardından, Ağ Güvenliği: NTLM'yi Kısıtla: Bu etki alanında NTLM kimlik doğrulaması politikasını kullanarak NTLM'yi Active Directory etki alanında tamamen devre dışı bırakabilirsiniz.
Politikanın 5 seçeneği vardır:
Devre Dışı Bırak: politika devre dışıdır (etki alanında NTLM kimlik doğrulamasına izin verilir);
Etki alanı sunucularına etki alanı hesaplarını reddet: etki alanı denetleyicileri, etki alanı hesapları altındaki tüm sunucular için NTLM kimlik doğrulama girişimlerini reddeder ve "NTLM engellendi " hata mesajı görüntülenir;
Etki alanı hesapları için reddet: etki alanı denetleyicileri, tüm etki alanı hesapları için NTLM kimlik doğrulama girişimlerini engelliyor ve "NTLM engellendi " hatası görüntüleniyor;
Etki alanı sunucuları için reddet: NTLM kimlik doğrulama istekleri, sunucu adı "Ağ güvenliği: NTLM'yi Kısıtla: Bu etki alanında NTLM kimlik doğrulaması için sunucu istisnaları ekle" politikasındaki istisna listesinde olmadığı sürece tüm sunucular için reddedilir;
Tümünü reddet: etki alanı denetleyicileri, tüm etki alanı sunucuları ve hesapları için tüm NTLM isteklerini engeller.
NTLM artık etki alanında devre dışı bırakılmış olsa da, bilgisayarlarda yerel oturum açma işlemlerini işlemek için hala kullanılmaktadır (NTLM her zaman yerel kullanıcı oturum açma işlemleri için kullanılır).
Ayrı Varsayılan Etki Alanı Politikası seçeneklerini kullanarak etki alanı bilgisayarlarında gelen ve giden NTLM trafiğini de devre dışı bırakabilirsiniz:
Ağ güvenliği: NTLM'yi kısıtla: Gelen NTLM trafiği=Tüm hesapları reddet
Ağ güvenliği: NTLM'yi kısıtla: Uzak sunuculara giden NTLM trafiği=Tümünü reddet
Denetimi etkinleştirdikten sonra Olay Görüntüleyici, kimlik doğrulama için NTLM kullanırken LsaSRV kaynağından EventID 6038 de görüntüler:
Microsoft Windows Server has detected that NTLM authentication is presently being used between clients and this server. This event occurs once per boot of the server on the first time a client uses NTLM with this server.
NTLM is a weaker authentication mechanism. Please check:
Which applications are using NTLM authentication?
Are there configuration issues preventing the use of stronger authentication such as Kerberos authentication?
If NTLM must be supported, is Extended Protection configured?
Kerberos'un kullanıcı kimlik doğrulaması için kullanıldığını şu komutla kontrol edebilirsiniz:
klist sessionsBu komut, tüm kullanıcıların Kerberos kimlik doğrulamalı olduğunu gösterir (kimliği her zaman NTLM kullanılarak doğrulanan yerleşik yerel Yönetici dışında).
NTLM'yi devre dışı bıraktıktan sonra çok sayıda kullanıcı hesabı kilitleme olayıyla karşılaşıyorsanız, 4771 kimlikli olaylara yakından bakın (
Kerberos pre-authentication failed). Hata açıklamasındaki Hata Kodunu kontrol edin. Bu, kilidin nedenini ve kaynağını gösterecektir.
Active Directory güvenliğini daha da geliştirmek için şu makaleleri okumanızı tavsiye ederim:
Active Directory'de yönetici hesaplarının güvenliğini sağlama
TCP/IP Üzerinden LLMNR ve NetBIOS Nasıl Devre Dışı Bırakılır?








