{"id":403,"title":" NTLM'den Kerberos'a G\u00fcvenli Ge\u00e7i\u015f ","content":"<div id=\"model-response-message-contentr_d12d33341aa46250\" class=\"markdown markdown-main-panel enable-updated-hr-color\" dir=\"ltr\" aria-live=\"off\" aria-busy=\"false\">\n<div id=\"model-response-message-contentr_bc104393e9e5b2c0\" class=\"markdown markdown-main-panel enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\">Bu ge&ccedil;i\u015f, &ouml;zellikle sistem y&ouml;netimi ve g&uuml;venlik mimarisi a&ccedil;\u0131s\u0131ndan Windows ortam\u0131n\u0131zda k&ouml;kl&uuml; bir de\u011fi\u015fim yaratacakt\u0131r. NTLM'nin devre d\u0131\u015f\u0131 b\u0131rak\u0131lmas\u0131, sisteminizin art\u0131k sadece \"g&uuml;venli oldu\u011funu varsayd\u0131\u011f\u0131n\u0131z\" de\u011fil, protokol seviyesinde korundu\u011fu bir yap\u0131ya d&ouml;n&uuml;\u015fmesi demektir.<\/p>\n<p data-path-to-node=\"1\">\u0130\u015fte bu de\u011fi\u015fimin ortam\u0131n\u0131za yans\u0131yacak temel etkileri:<\/p>\n<h2 data-path-to-node=\"2\">1. Sald\u0131r\u0131 Y&uuml;zeyinin Daralmas\u0131 (En B&uuml;y&uuml;k Kazan\u0131m)<\/h2>\n<p data-path-to-node=\"3\">NTLM'nin ortadan kalkmas\u0131yla birlikte, a\u011f\u0131n\u0131zda y\u0131llard\u0131r s&uuml;regelen en yayg\u0131n sald\u0131r\u0131 vekt&ouml;rleri etkisiz hale gelecektir:<\/p>\n<ul data-path-to-node=\"4\">\n<li>\n<p data-path-to-node=\"4,0,0\"><strong data-path-to-node=\"4,0,0\" data-index-in-node=\"0\">Relay Sald\u0131r\u0131lar\u0131:<\/strong> Sald\u0131rganlar\u0131n a\u011f trafi\u011fini yakalay\u0131p ba\u015fka bir sunucuya \"yans\u0131tarak\" oturum &ccedil;alma devri kapanacakt\u0131r.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"4,1,0\"><strong data-path-to-node=\"4,1,0\" data-index-in-node=\"0\">Pass-the-Hash:<\/strong> NTLM hash'lerinin &ccedil;al\u0131narak yanal ilerleme (lateral movement) yap\u0131lmas\u0131 Kerberos'un biletleme (ticket) sistemi sayesinde imkans\u0131zla\u015facakt\u0131r.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"5\">2. \"Double-Hop\" Sorunlar\u0131 ve &Ccedil;&ouml;z&uuml;m Gereksinimi<\/h2>\n<p data-path-to-node=\"6\">NTLM bazen delegasyon gerektirmeyen durumlarda bir \"kurtar\u0131c\u0131\" gibi &ccedil;al\u0131\u015f\u0131yordu. Kerberos'a ge&ccedil;i\u015fle birlikte:<\/p>\n<ul data-path-to-node=\"7\">\n<li>\n<p data-path-to-node=\"7,0,0\">Bir sunucudan di\u011ferine kullan\u0131c\u0131 kimli\u011fi aktar\u0131lmas\u0131 gereken senaryolarda (&ouml;rne\u011fin IIS -&gt; SQL), <strong data-path-to-node=\"7,0,0\" data-index-in-node=\"96\">Kerberos Constrained Delegation<\/strong> yap\u0131land\u0131rmas\u0131 zorunlu hale gelecektir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,1,0\">SPN (Service Principal Name) kay\u0131tlar\u0131ndaki en ufak bir hata, uygulaman\u0131n eri\u015filemez olmas\u0131na neden olacakt\u0131r.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"8\">3. Eski Donan\u0131m ve Yaz\u0131l\u0131mlarda Kopmalar<\/h2>\n<p data-path-to-node=\"9\">Ortam\u0131n\u0131zdaki \"legacy\" (eski nesil) sistemler en b&uuml;y&uuml;k risk grubudur:<\/p>\n<ul data-path-to-node=\"10\">\n<li>\n<p data-path-to-node=\"10,0,0\"><strong data-path-to-node=\"10,0,0\" data-index-in-node=\"0\">Eski A\u011f Yaz\u0131c\u0131lar\u0131\/Taray\u0131c\u0131lar\u0131:<\/strong> SMB &uuml;zerinden tarama yapan eski cihazlar Kerberos desteklemiyorsa &ccedil;al\u0131\u015fmay\u0131 durduracakt\u0131r.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"10,1,0\"><strong data-path-to-node=\"10,1,0\" data-index-in-node=\"0\">Eski NAS Cihazlar\u0131:<\/strong> Sadece NTLM destekleyen eski depolama birimlerine eri\u015fim kesilecektir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"10,2,0\"><strong data-path-to-node=\"10,2,0\" data-index-in-node=\"0\">Hard-coded Scriptler:<\/strong> \u0130&ccedil;inde IP adresi bar\u0131nd\u0131ran ve NTLM kullanan eski PowerShell veya VBScript'ler hata verecektir (Kerberos IP yerine isim\/FQDN odakl\u0131 &ccedil;al\u0131\u015f\u0131r).<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"11\">4. DNS ve Zaman Senkronizasyonu Kritikli\u011fi<\/h2>\n<p data-path-to-node=\"12\">Kerberos, NTLM'den farkl\u0131 olarak iki \u015feye a\u015f\u0131r\u0131 duyarl\u0131d\u0131r:<\/p>\n<ul data-path-to-node=\"13\">\n<li>\n<p data-path-to-node=\"13,0,0\"><strong data-path-to-node=\"13,0,0\" data-index-in-node=\"0\">DNS:<\/strong> E\u011fer DNS kay\u0131tlar\u0131n\u0131z g&uuml;ncel de\u011filse veya ters DNS (PTR) kay\u0131tlar\u0131 eksikse Kerberos biletleri olu\u015fturulamaz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"13,1,0\"><strong data-path-to-node=\"13,1,0\" data-index-in-node=\"0\">Zaman (Time Sync):<\/strong> \u0130stemci ve Domain Controller aras\u0131ndaki zaman fark\u0131 5 dakikadan fazlaysa kimlik do\u011frulama tamamen &ccedil;&ouml;ker.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"14\">5. Yeni &Ouml;zelliklerin Getirdi\u011fi Kolayl\u0131k (IAKerb &amp; Local KDC)<\/h2>\n<p data-path-to-node=\"15\">Microsoft'un 2026 sonunda sunaca\u011f\u0131 &ouml;zellikler, ge&ccedil;i\u015fi daha az sanc\u0131l\u0131 hale getirecek:<\/p>\n<ul data-path-to-node=\"16\">\n<li>\n<p data-path-to-node=\"16,0,0\"><strong data-path-to-node=\"16,0,0\" data-index-in-node=\"0\">Local KDC<\/strong> sayesinde, yerel kullan\u0131c\u0131 hesaplar\u0131 (local accounts) bile art\u0131k NTLM yerine Kerberos benzeri bir g&uuml;venlikle do\u011frulanacak.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"16,1,0\"><strong data-path-to-node=\"16,1,0\" data-index-in-node=\"0\">IAKerb<\/strong> sayesinde, Domain Controller'\u0131 do\u011frudan g&ouml;rmeyen uzak ofis bilgisayarlar\u0131, sunucu &uuml;zerinden g&uuml;venli bir \u015fekilde do\u011frulanabilecek.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"17\">Ne Yapmal\u0131s\u0131n\u0131z?<\/h2>\n<p data-path-to-node=\"18\">Bu ge&ccedil;i\u015fin ortam\u0131n\u0131z\u0131 olumsuz etkilememesi i&ccedil;in \u015fimdiden <strong data-path-to-node=\"18\" data-index-in-node=\"57\">Denetim (Auditing)<\/strong> modunu a&ccedil;arak hangi cihazlar\u0131n NTLM \"f\u0131s\u0131ldad\u0131\u011f\u0131n\u0131\" bulmal\u0131s\u0131n\u0131z. &Ouml;zellikle <strong data-path-to-node=\"18\" data-index-in-node=\"152\">ondernet.local<\/strong> gibi yerel alan adlar\u0131n\u0131zdaki servis hesaplar\u0131n\u0131 gMSA (Group Managed Service Accounts) yap\u0131s\u0131na ge&ccedil;irmeniz, bu modernizasyon s&uuml;recinde i\u015finizi &ccedil;ok kolayla\u015ft\u0131racakt\u0131r.<\/p>\n<\/div>\n<p data-path-to-node=\"2\">Bu s&uuml;reci daha net anlamak ad\u0131na, Kerberos'un neden daha g&uuml;venli oldu\u011funu ve Microsoft'un bu yeni &ccedil;&ouml;z&uuml;mlerle neyi hedefledi\u011fini biraz daha yak\u0131ndan inceleyelim:<\/p>\n<h2 data-path-to-node=\"3\">Kerberos vs. NTLM: Neden De\u011fi\u015fiyor?<\/h2>\n<p data-path-to-node=\"4\">NTLM, \"Challenge-Response\" (Meydan Okuma-Yan\u0131t) mekanizmas\u0131na dayan\u0131r. Bu s&uuml;re&ccedil;te hash de\u011ferleri a\u011f &uuml;zerinden iletildi\u011fi i&ccedil;in sald\u0131rganlar bu trafi\u011fi yakalay\u0131p ba\u015fka bir sunucuya \"yans\u0131tabilir\" (Relay Attack). Kerberos ise &ccedil;ok daha sofistike bir biletleme sistemi kullan\u0131r.<\/p>\n<hr data-path-to-node=\"5\">\n<h2 data-path-to-node=\"6\">Microsoft'un Yeni Silahlar\u0131: IAKerb ve Local KDC<\/h2>\n<p data-path-to-node=\"7\">BT y&ouml;neticilerinin en b&uuml;y&uuml;k korkusu, NTLM'yi kapatt\u0131klar\u0131 g&uuml;n \"Local Admin\" hesaplar\u0131n\u0131n kilitlenmesi veya uzak ofislerdeki ba\u011flant\u0131lar\u0131n kopmas\u0131d\u0131r. Microsoft bunu a\u015fmak i&ccedil;in iki kritik k&ouml;pr&uuml; kuruyor:<\/p>\n<ol start=\"1\" data-path-to-node=\"8\">\n<li>\n<p data-path-to-node=\"8,0,0\"><strong data-path-to-node=\"8,0,0\" data-index-in-node=\"0\">IAKerb (Initial Authentication Kerberos):<\/strong> Kerberos'un &ccedil;al\u0131\u015fmas\u0131 i&ccedil;in normalde istemcinin Domain Controller (DC) ile do\u011frudan konu\u015fabilmesi gerekir. IAKerb, istemci ve sunucu aras\u0131ndaki mevcut ba\u011flant\u0131y\u0131 kullanarak Kerberos paketlerini DC'ye iletir (proxy g&ouml;revi g&ouml;r&uuml;r). Yani \"DC'yi g&ouml;remiyorum\" bahanesi ortadan kalkar.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"8,1,0\"><strong data-path-to-node=\"8,1,0\" data-index-in-node=\"0\">Local KDC (Key Distribution Center):<\/strong> Yerel hesaplar i&ccedil;in Kerberos biletlerini yerel olarak y&ouml;neten bir yap\u0131 sunar. Bu, NTLM'ye olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 yerel oturum a&ccedil;ma seviyesinde bile bitirmeyi hedefler.<\/p>\n<\/li>\n<\/ol>\n<h2 data-path-to-node=\"9\">Ge&ccedil;i\u015f Takvimi ve Stratejik &Ouml;nem<\/h2>\n<table data-path-to-node=\"10\">\n<thead>\n<tr>\n<td><strong>A\u015fama<\/strong><\/td>\n<td><strong>Zamanlama<\/strong><\/td>\n<td><strong>Temel Odak<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span data-path-to-node=\"10,1,0,0\"><strong data-path-to-node=\"10,1,0,0\" data-index-in-node=\"0\">Denetim (Audit)<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"10,1,1,0\">\u015eu an (Win 11 \/ Server 2025)<\/span><\/td>\n<td><span data-path-to-node=\"10,1,2,0\">NTLM trafi\u011finin haritalanmas\u0131 ve \"Sertle\u015fme\" (Hardening) haz\u0131rl\u0131\u011f\u0131.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"10,2,0,0\"><strong data-path-to-node=\"10,2,0,0\" data-index-in-node=\"0\">Geni\u015fletme<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"10,2,1,0\">2026 Sonu<\/span><\/td>\n<td><span data-path-to-node=\"10,2,2,0\">IAKerb ve Local KDC ile NTLM ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131n teknik olarak bitirilmesi.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"10,3,0,0\"><strong data-path-to-node=\"10,3,0,0\" data-index-in-node=\"0\">Varsay\u0131lan Engel<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"10,3,1,0\">Gelecek Faz<\/span><\/td>\n<td><span data-path-to-node=\"10,3,2,0\">NTLM'nin tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131lmas\u0131 (Sadece istisnalar i&ccedil;in manuel izin).<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-path-to-node=\"11\">Bu de\u011fi\u015fim, a\u011f\u0131n\u0131zdaki \"g&ouml;r&uuml;nmez kap\u0131lar\u0131\" kapatmak ad\u0131na devasa bir ad\u0131m. &Ouml;zellikle Pass-the-Hash sald\u0131r\u0131lar\u0131n\u0131n &ouml;n&uuml;n&uuml; kesmek, fidye yaz\u0131l\u0131m\u0131 (ransomware) gruplar\u0131n\u0131n lateral movement (yanal ilerleme) kabiliyetini ciddi oranda k\u0131s\u0131tlayacakt\u0131r.<\/p>\n<p data-path-to-node=\"12\"><strong data-path-to-node=\"12\" data-index-in-node=\"0\">Kurulu\u015funuzdaki eski uygulamalar\u0131n NTLM ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 tespit etmek i&ccedil;in &ouml;zel bir denetim (audit) stratejisi veya PowerShell scripti ile kontrol yapal\u0131m<\/strong><\/p>\n<p data-path-to-node=\"0\">NTLM'yi kapatmadan &ouml;nce at\u0131lacak en kritik ad\u0131m, a\u011f\u0131n\u0131zda <strong data-path-to-node=\"0\" data-index-in-node=\"88\">kimin, nereden ve hangi uygulamayla<\/strong> hala NTLM kulland\u0131\u011f\u0131n\u0131 sessizce izlemektir. E\u011fer bunu yapmadan protokol&uuml; devre d\u0131\u015f\u0131 b\u0131rak\u0131rsan\u0131z, eski bir veritaban\u0131 ba\u011flant\u0131s\u0131 veya bir a\u011f yaz\u0131c\u0131s\u0131 nedeniyle i\u015f ak\u0131\u015flar\u0131n\u0131z durabilir.<\/p>\n<p data-path-to-node=\"1\">A\u015fa\u011f\u0131daki PowerShell scripti, Windows Olay G&ouml;r&uuml;nt&uuml;leyicisi (Event Viewer) &uuml;zerindeki <strong data-path-to-node=\"1\" data-index-in-node=\"85\">NTLM Denetim (Auditing)<\/strong> kay\u0131tlar\u0131n\u0131 tarar ve size anlaml\u0131 bir &ouml;zet sunar.<\/p>\n<h2 data-path-to-node=\"2\">1. Ad\u0131m: Denetimi Etkinle\u015ftirme (GPO &uuml;zerinden)<\/h2>\n<p data-path-to-node=\"3\">Scripti &ccedil;al\u0131\u015ft\u0131rmadan &ouml;nce, sisteminizin bu verileri kaydetmesi gerekir. Grup \u0130lkesi D&uuml;zenleyicisi'nde (<code data-path-to-node=\"3\" data-index-in-node=\"104\">gpedit.msc<\/code>) \u015fu yolu izleyin:<\/p>\n<ul data-path-to-node=\"4\">\n<li>\n<p data-path-to-node=\"4,0,0\"><strong data-path-to-node=\"4,0,0\" data-index-in-node=\"0\">Bilgisayar Yap\u0131land\u0131rmas\u0131<\/strong> &gt; <strong data-path-to-node=\"4,0,0\" data-index-in-node=\"28\">Windows Ayarlar\u0131<\/strong> &gt; <strong data-path-to-node=\"4,0,0\" data-index-in-node=\"47\">G&uuml;venlik Ayarlar\u0131<\/strong> &gt; <strong data-path-to-node=\"4,0,0\" data-index-in-node=\"67\">Yerel \u0130lkeler<\/strong> &gt; <strong data-path-to-node=\"4,0,0\" data-index-in-node=\"83\">G&uuml;venlik Se&ccedil;enekleri<\/strong><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"4,1,0\"><strong data-path-to-node=\"4,1,0\" data-index-in-node=\"0\">A\u011f g&uuml;venli\u011fi: NTLM'yi k\u0131s\u0131tla: Bu etki alan\u0131ndaki NTLM denetimi<\/strong> -&gt; <strong data-path-to-node=\"4,1,0\" data-index-in-node=\"67\">T&uuml;m&uuml;n&uuml; Etkinle\u015ftir<\/strong> olarak ayarlay\u0131n.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"5\">\n<h2 data-path-to-node=\"6\">2. Ad\u0131m: NTLM Analiz Scripti<\/h2>\n<p data-path-to-node=\"7\">Bu script, <code data-path-to-node=\"7\" data-index-in-node=\"11\">NTLM Audit<\/code> loglar\u0131n\u0131 (Event ID 8001, 8002, 8003 ve 8004) tarayarak hangi kullan\u0131c\u0131lar\u0131n ve hangi sunucular\u0131n hala bu eski protokol&uuml; kulland\u0131\u011f\u0131n\u0131 listeler.<\/p>\n<p data-path-to-node=\"12\">&nbsp;<\/p>\n<pre class=\"language-markup\"><code># NTLM Kullan\u0131m\u0131n\u0131 Raporlama Scripti\n# Bu script 'Microsoft-Windows-NTLM\/Operational' g&uuml;nl&uuml;\u011f&uuml;n&uuml; analiz eder.\n\n$Events = Get-WinEvent -LogName \"Microsoft-Windows-NTLM\/Operational\" -ErrorAction SilentlyContinue\n\nif ($null -eq $Events) {\n    Write-Host \"[-] NTLM Log kayd\u0131 bulunamad\u0131. Denetim modunun a&ccedil;\u0131k oldu\u011fundan emin olun.\" -ForegroundColor Red\n    return\n}\n\n$NTLMReport = foreach ($Event in $Events) {\n    [xml]$XmlEvent = $Event.ToXml()\n    \n    # XML verisinden detaylar\u0131 ay\u0131klama\n    $TargetName = $XmlEvent.Event.EventData.Data | Where-Object { $_.Name -eq \"TargetName\" } | Select-Object -ExpandProperty \"#text\"\n    $UserName   = $XmlEvent.Event.EventData.Data | Where-Object { $_.Name -eq \"UserName\" }   | Select-Object -ExpandProperty \"#text\"\n    $Process    = $XmlEvent.Event.EventData.Data | Where-Object { $_.Name -eq \"ProcessName\" }| Select-Object -ExpandProperty \"#text\"\n\n    [PSCustomObject]@{\n        TimeCreated = $Event.TimeCreated\n        EventID     = $Event.Id\n        User        = $UserName\n        Target      = $TargetName\n        Process     = $Process\n        Message     = $Event.Message\n    }\n}\n\n# Sonu&ccedil;lar\u0131 Tablo Olarak G&ouml;ster\n$NTLMReport | Out-GridView -Title \"NTLM Kullan\u0131m Analizi\"\n\n# \u0130ste\u011fe ba\u011fl\u0131: CSV olarak d\u0131\u015fa aktar\n# $NTLMReport | Export-Csv -Path \"C:\\Temp\\NTLM_Audit_Report.csv\" -NoTypeInformation<\/code><\/pre>\n<p data-path-to-node=\"12\">&nbsp;<\/p>\n<ul data-path-to-node=\"11\">\n<li>\n<p data-path-to-node=\"11,0,0\"><strong data-path-to-node=\"11,0,0\" data-index-in-node=\"0\">TargetName:<\/strong> Hangi sunucuya ba\u011flan\u0131lmaya &ccedil;al\u0131\u015f\u0131ld\u0131\u011f\u0131n\u0131 g&ouml;sterir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"11,1,0\"><strong data-path-to-node=\"11,1,0\" data-index-in-node=\"0\">ProcessName:<\/strong> NTLM &ccedil;a\u011fr\u0131s\u0131n\u0131 yapan uygulaman\u0131n ad\u0131n\u0131 verir (&Ouml;rn: <code data-path-to-node=\"11,1,0\" data-index-in-node=\"64\">sqlservr.exe<\/code> veya bir eski muhasebe yaz\u0131l\u0131m\u0131).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"11,2,0\"><strong data-path-to-node=\"11,2,0\" data-index-in-node=\"0\">Event ID 8004:<\/strong> En kritik olan\u0131d\u0131r; \"E\u011fer NTLM'yi engelleseydik, bu ba\u011flant\u0131 kopacakt\u0131\" anlam\u0131na gelir.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"12\">Sonraki Ad\u0131mlar<\/h2>\n<p data-path-to-node=\"13\">Bu raporu ald\u0131ktan sonra, listedeki uygulamalar\u0131n konfig&uuml;rasyonlar\u0131n\u0131 inceleyip <strong data-path-to-node=\"13\" data-index-in-node=\"80\">\"Authentication Method\"<\/strong> k\u0131sm\u0131n\u0131 <strong data-path-to-node=\"13\" data-index-in-node=\"112\">Kerberos<\/strong> veya <strong data-path-to-node=\"13\" data-index-in-node=\"126\">Negotiate<\/strong> olarak g&uuml;ncellemeniz gerekecek.<\/p>\n<h2 data-path-to-node=\"13\">Kerberos SPN (Service Principal Name) yap\u0131land\u0131rmas\u0131<\/h2>\n<p data-path-to-node=\"0\">Kerberos d&uuml;nyas\u0131nda SPN (Service Principal Name), bir servisin kimli\u011fini etki alan\u0131 (Active Directory) i&ccedil;erisinde benzersiz k\u0131lan bir \"etiket\" gibidir. Kerberos biletleme sisteminin &ccedil;al\u0131\u015fmas\u0131 i&ccedil;in istemcinin hangi servis ile konu\u015ftu\u011funu tam olarak bilmesi gerekir.<\/p>\n<p data-path-to-node=\"1\">SPN do\u011fru yap\u0131land\u0131r\u0131lmad\u0131\u011f\u0131nda Kerberos ba\u015far\u0131s\u0131z olur ve sistem otomatik olarak (ve g&uuml;vensiz olan) <strong data-path-to-node=\"1\" data-index-in-node=\"101\">NTLM<\/strong>'e geri d&ouml;ner. NTLM'i emekliye ay\u0131r\u0131rken SPN hatalar\u0131n\u0131 &ccedil;&ouml;zmek bu y&uuml;zden hayatidir.<\/p>\n<hr data-path-to-node=\"2\">\n<h2 data-path-to-node=\"3\">1. SPN S&ouml;zdizimi (Syntax)<\/h2>\n<p data-path-to-node=\"4\">Bir SPN kayd\u0131 genellikle \u015fu formatta olur: <code data-path-to-node=\"4\" data-index-in-node=\"43\">ServisS\u0131n\u0131f\u0131 \/ AnaBilgisayarAd\u0131 : Port \/ ServisAd\u0131<\/code><\/p>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><strong data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">ServisS\u0131n\u0131f\u0131:<\/strong> HTTP, MSSQLSvc, HOST, NFS gibi servis t&uuml;r&uuml;.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><strong data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">AnaBilgisayarAd\u0131:<\/strong> Servisin &ccedil;al\u0131\u015ft\u0131\u011f\u0131 sunucunun FQDN (Tam Etki Alan\u0131 Ad\u0131) veya NetBIOS ad\u0131.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,2,0\"><strong data-path-to-node=\"5,2,0\" data-index-in-node=\"0\">Port:<\/strong> Standart d\u0131\u015f\u0131 bir port kullan\u0131l\u0131yorsa belirtilir.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"6\">\n<h2 data-path-to-node=\"7\">2. Kritik Komutlar (Setspn Kullan\u0131m\u0131)<\/h2>\n<p data-path-to-node=\"8\">SPN y&ouml;netimi i&ccedil;in en temel ara&ccedil; <code data-path-to-node=\"8\" data-index-in-node=\"32\">setspn.exe<\/code> komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu komutlar\u0131 <strong data-path-to-node=\"8\" data-index-in-node=\"79\">Domain Admin<\/strong> yetkisiyle &ccedil;al\u0131\u015ft\u0131rmal\u0131s\u0131n\u0131z.<\/p>\n<h4 data-path-to-node=\"9\">A. Mevcut SPN'leri Listeleme<\/h4>\n<p data-path-to-node=\"10\">Bir kullan\u0131c\u0131 veya bilgisayar hesab\u0131na atanm\u0131\u015f SPN'leri kontrol etmek i&ccedil;in:<\/p>\n<pre class=\"language-markup\"><code>setspn -L &lt;HesapAdi&gt;\n# &Ouml;rnek: setspn -L SQLServiceAccount<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h4 data-path-to-node=\"12\">B. Yeni Bir SPN Kayd\u0131 Ekleme<\/h4>\n<p data-path-to-node=\"13\">&Ouml;rne\u011fin, bir web sunucusu (IIS) i&ccedil;in uygulama havuzu kullan\u0131c\u0131s\u0131na SPN atamak:<\/p>\n<pre class=\"language-markup\"><code>setspn -S HTTP\/web01.sirket.local SQLServiceAccount\nsetspn -S HTTP\/web01 SQLServiceAccount<\/code><\/pre>\n<p data-path-to-node=\"13\">&nbsp;<\/p>\n<blockquote data-path-to-node=\"15\">\n<p data-path-to-node=\"15,0\"><strong data-path-to-node=\"15,0\" data-index-in-node=\"0\">Not:<\/strong> <code data-path-to-node=\"15,0\" data-index-in-node=\"5\">-S<\/code> parametresi (Add Unique), ayn\u0131 SPN'in ba\u015fka bir hesapta olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Bu, &ccedil;ak\u0131\u015fmalar\u0131 &ouml;nlemek i&ccedil;in <code data-path-to-node=\"15,0\" data-index-in-node=\"123\">-A<\/code> yerine tercih edilmelidir.<\/p>\n<\/blockquote>\n<h4 data-path-to-node=\"16\">C. Yinelenen (Duplicate) SPN'leri Bulma<\/h4>\n<p data-path-to-node=\"17\">Kerberos'un en b&uuml;y&uuml;k d&uuml;\u015fman\u0131 ayn\u0131 SPN'in iki farkl\u0131 hesapta tan\u0131ml\u0131 olmas\u0131d\u0131r. Bunu bulmak i&ccedil;in:<\/p>\n<pre class=\"language-markup\"><code>setspn -X<\/code><\/pre>\n<p data-path-to-node=\"17\">&nbsp;<\/p>\n<h2 data-path-to-node=\"20\">3. Yayg\u0131n Hata: \"Kay\u0131p SPN\" Senaryosu<\/h2>\n<p data-path-to-node=\"21\">Bir kullan\u0131c\u0131 <code data-path-to-node=\"21\" data-index-in-node=\"14\">http:\/\/app01<\/code> adresine gitmeye &ccedil;al\u0131\u015ft\u0131\u011f\u0131nda, Windows &ouml;nce bu isim i&ccedil;in bir Kerberos bileti ister. E\u011fer AD i&ccedil;erisinde <code data-path-to-node=\"21\" data-index-in-node=\"130\">HTTP\/app01<\/code> \u015feklinde bir SPN kayd\u0131 yoksa, Kerberos \"Ben bu servisi tan\u0131m\u0131yorum\" der ve <strong data-path-to-node=\"21\" data-index-in-node=\"216\">NTLM<\/strong> kullanmaya ba\u015flar.<\/p>\n<p data-path-to-node=\"22\"><strong data-path-to-node=\"22\" data-index-in-node=\"0\">&Ccedil;&ouml;z&uuml;m Ak\u0131\u015f\u0131:<\/strong><\/p>\n<ol start=\"1\" data-path-to-node=\"23\">\n<li>\n<p data-path-to-node=\"23,0,0\">Servisin hangi hesap (LocalSystem, NetworkService veya bir Domain User) alt\u0131nda &ccedil;al\u0131\u015ft\u0131\u011f\u0131n\u0131 bulun.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,1,0\">\u0130stemcilerin servise hangi isimle (FQDN veya k\u0131sa isim) eri\u015fti\u011fini netle\u015ftirin.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,2,0\">Eksik olan kombinasyonlar\u0131 <code data-path-to-node=\"23,2,0\" data-index-in-node=\"27\">setspn -S<\/code> ile ilgili hesaba tan\u0131mlay\u0131n.<\/p>\n<\/li>\n<\/ol>\n<hr data-path-to-node=\"24\">\n<h2 data-path-to-node=\"25\">4. PowerShell ile Otomatik Kontrol<\/h2>\n<p data-path-to-node=\"26\">E\u011fer elinizde uzun bir sunucu listesi varsa, SPN kay\u0131tlar\u0131n\u0131n durumunu \u015fu script ile h\u0131zl\u0131ca g&ouml;rebilirsiniz:<\/p>\n<pre class=\"language-markup\"><code># Belirli bir servis i&ccedil;in SPN kontrol&uuml;\n$SearchName = \"web01\" \nGet-ADObject -Filter \"ServicePrincipalName -like '*$SearchName*'\" -Properties ServicePrincipalName | \nSelect-Object Name, DistinguishedName, ServicePrincipalName | \nFormat-List<\/code><\/pre>\n<p data-path-to-node=\"26\">&nbsp;<\/p>\n<div id=\"model-response-message-contentr_1801658fa9c07ebd\" class=\"markdown markdown-main-panel enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\">MSSQL ve IIS, kurumsal ortamlarda NTLM'den Kerberos'a ge&ccedil;i\u015fte en &ccedil;ok \"SPN hatas\u0131\" veren iki servistir. Bu servisleri Kerberos ile modernize etmek, sadece g&uuml;venli\u011fi art\u0131rmakla kalmaz, ayn\u0131 zamanda \"double-hop\" (&ccedil;ift s\u0131&ccedil;rama) sorunlar\u0131n\u0131 &ccedil;&ouml;zmek i&ccedil;in de gereklidir.<\/p>\n<p data-path-to-node=\"1\">\u0130\u015fte bu iki servis i&ccedil;in <strong data-path-to-node=\"1\" data-index-in-node=\"24\">Best Practice<\/strong> (En \u0130yi Uygulama) ad\u0131mlar\u0131:<\/p>\n<hr data-path-to-node=\"2\">\n<h2 data-path-to-node=\"3\">1. MSSQL Server \u0130&ccedil;in Kerberos Yap\u0131land\u0131rmas\u0131<\/h2>\n<p data-path-to-node=\"4\">SQL Server genellikle <code data-path-to-node=\"4\" data-index-in-node=\"22\">MSSQLSvc<\/code> s\u0131n\u0131f\u0131n\u0131 kullan\u0131r. Kerberos'un &ccedil;al\u0131\u015fmas\u0131 i&ccedil;in SQL servisinin &ccedil;al\u0131\u015ft\u0131\u011f\u0131 <strong data-path-to-node=\"4\" data-index-in-node=\"102\">Service Account<\/strong> (Servis Hesab\u0131) &uuml;zerine kay\u0131t yap\u0131lmas\u0131 gerekir.<\/p>\n<h2 data-path-to-node=\"5\">Best Practice Ad\u0131mlar\u0131:<\/h2>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><strong data-path-to-node=\"6,0,0\" data-index-in-node=\"0\">Servis Hesab\u0131 Se&ccedil;imi:<\/strong> SQL servislerini m&uuml;mk&uuml;nse bir <strong data-path-to-node=\"6,0,0\" data-index-in-node=\"52\">Managed Service Account (gMSA)<\/strong> alt\u0131nda &ccedil;al\u0131\u015ft\u0131r\u0131n. Bu, \u015fifre y&ouml;netimini otomatikle\u015ftirir ve Kerberos s&uuml;reklili\u011fini sa\u011flar.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><strong data-path-to-node=\"6,1,0\" data-index-in-node=\"0\">FQDN ve Port Kullan\u0131m\u0131:<\/strong> Hem sunucu ad\u0131 hem de port (varsay\u0131lan 1433) i&ccedil;in SPN kayd\u0131 yap\u0131n.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"7\"><strong data-path-to-node=\"7\" data-index-in-node=\"0\">Gerekli Komutlar:<\/strong><\/p>\n<div class=\"code-block ng-tns-c3338509596-63 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwiptPzZnaWTAxUAAAAAHQAAAAAQwAE\">\n<div class=\"formatted-code-block-internal-container ng-tns-c3338509596-63\">\n<div class=\"animated-opacity ng-tns-c3338509596-63\">\n<pre class=\"ng-tns-c3338509596-63\">&nbsp;<\/pre>\n<pre class=\"language-markup\"><code># FQDN i&ccedil;in kay\u0131t\nsetspn -S MSSQLSvc\/sql01.ondernet.local:1433 ondernet\\sql_service_account\n\n# NetBIOS (K\u0131sa ad) i&ccedil;in kay\u0131t\nsetspn -S MSSQLSvc\/sql01:1433 ondernet\\sql_service_account<\/code><\/pre>\n<pre class=\"ng-tns-c3338509596-63\">&nbsp;<\/pre>\n<!----><\/div>\n<\/div>\n<\/div>\n<!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!---->\n<blockquote data-path-to-node=\"9\">\n<p data-path-to-node=\"9,0\"><strong data-path-to-node=\"9,0\" data-index-in-node=\"0\">&Ouml;nemli \u0130pucu:<\/strong> SQL Server ba\u015flad\u0131\u011f\u0131nda kendi SPN'ini kaydetmeye &ccedil;al\u0131\u015f\u0131r. E\u011fer servis hesab\u0131na AD &uuml;zerinde <strong data-path-to-node=\"9,0\" data-index-in-node=\"105\">\"Write servicePrincipalName\"<\/strong> yetkisi verirseniz, bu i\u015flem otomatik ger&ccedil;ekle\u015fir ve manuel kay\u0131tla u\u011fra\u015fmazs\u0131n\u0131z.<\/p>\n<\/blockquote>\n<hr data-path-to-node=\"10\">\n<h2 data-path-to-node=\"11\">2. IIS (Web Server) \u0130&ccedil;in Kerberos Yap\u0131land\u0131rmas\u0131<\/h2>\n<p data-path-to-node=\"12\">IIS taraf\u0131nda i\u015fler biraz daha kar\u0131\u015f\u0131kt\u0131r &ccedil;&uuml;nk&uuml; i\u015fin i&ccedil;ine \"Application Pool\" (Uygulama Havuzu) kimlikleri girer.<\/p>\n<h2 data-path-to-node=\"13\">Best Practice Ad\u0131mlar\u0131:<\/h2>\n<ul data-path-to-node=\"14\">\n<li>\n<p data-path-to-node=\"14,0,0\"><strong data-path-to-node=\"14,0,0\" data-index-in-node=\"0\">Kernel Mode Authentication:<\/strong> E\u011fer IIS 7.0 veya &uuml;zerini kullan\u0131yorsan\u0131z ve &ouml;zel bir servis hesab\u0131 tan\u0131mlad\u0131ysan\u0131z, \"Kernel Mode Authentication\" &ouml;zelli\u011fini <strong data-path-to-node=\"14,0,0\" data-index-in-node=\"153\">kapatman\u0131z<\/strong> veya <code data-path-to-node=\"14,0,0\" data-index-in-node=\"169\">useAppPoolCredentials<\/code> ayar\u0131n\u0131 <code data-path-to-node=\"14,0,0\" data-index-in-node=\"199\">True<\/code> yapman\u0131z gerekebilir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"14,1,0\"><strong data-path-to-node=\"14,1,0\" data-index-in-node=\"0\">Alias (CNAME) Kullan\u0131m\u0131:<\/strong> E\u011fer web sitenize <code data-path-to-node=\"14,1,0\" data-index-in-node=\"43\">https:\/\/portal.ondernet.net<\/code> gibi bir takma adla eri\u015filiyorsa, SPN kayd\u0131 sunucu ad\u0131na de\u011fil, bu <strong data-path-to-node=\"14,1,0\" data-index-in-node=\"138\">alias<\/strong> ad\u0131na yap\u0131lmal\u0131d\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"15\"><strong data-path-to-node=\"15\" data-index-in-node=\"0\">Gerekli Komutlar:<\/strong><\/p>\n<div class=\"code-block ng-tns-c3338509596-64 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwiptPzZnaWTAxUAAAAAHQAAAAAQwQE\">\n<div class=\"code-block-decoration header-formatted gds-title-s ng-tns-c3338509596-64 ng-star-inserted\">\n<div class=\"buttons ng-tns-c3338509596-64 ng-star-inserted\"><!----><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c3338509596-64 mat-unthemed ng-star-inserted\" aria-label=\"Kodu kopyala\"><!----><\/button><!----><!----><\/div>\n<pre class=\"language-markup\"><code># Web sitesi adresi i&ccedil;in SPN kayd\u0131\nsetspn -S HTTP\/portal.ondernet.net ondernet\\web_app_pool_user\nsetspn -S HTTP\/portal ondernet\\web_app_pool_user<\/code><\/pre>\n<\/div>\n<!----><\/div>\n<!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><br>3. \"Double-Hop\" Sorunu ve Delegation (Delegasyon)\n<p data-path-to-node=\"19\">E\u011fer bir kullan\u0131c\u0131 IIS'e ba\u011flan\u0131yor ve IIS de arka planda kullan\u0131c\u0131 ad\u0131na SQL Server'dan veri &ccedil;ekiyorsa, bu \"Double-Hop\" senaryosudur. NTLM burada havlu atar, &ccedil;&ouml;z&uuml;m Kerberos Delegasyonudur.<\/p>\n<p data-path-to-node=\"20\"><strong data-path-to-node=\"20\" data-index-in-node=\"0\">Yap\u0131land\u0131rma:<\/strong><\/p>\n<ol start=\"1\" data-path-to-node=\"21\">\n<li>\n<p data-path-to-node=\"21,0,0\"><strong data-path-to-node=\"21,0,0\" data-index-in-node=\"0\">Active Directory Users and Computers<\/strong>'\u0131 a&ccedil;\u0131n.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"21,1,0\">IIS servis hesab\u0131n\u0131 bulun ve <strong data-path-to-node=\"21,1,0\" data-index-in-node=\"29\">Delegation<\/strong> sekmesine gidin.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"21,2,0\"><strong data-path-to-node=\"21,2,0\" data-index-in-node=\"0\">\"Trust this user for delegation to specified services only\"<\/strong> (Sadece belirtilen servislere delegasyon i&ccedil;in bu kullan\u0131c\u0131ya g&uuml;ven) se&ccedil;ene\u011fini (Constrained Delegation) se&ccedil;in.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"21,3,0\">Listeye SQL Server'\u0131n SPN'ini ekleyin.<\/p>\n<\/li>\n<\/ol>\n<hr data-path-to-node=\"22\">\n<h2 data-path-to-node=\"23\">&Ouml;zet Kontrol Listesi<\/h2>\n<table data-path-to-node=\"24\">\n<thead>\n<tr>\n<td><strong>Kontrol Noktas\u0131<\/strong><\/td>\n<td><strong>MSSQL<\/strong><\/td>\n<td><strong>IIS<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span data-path-to-node=\"24,1,0,0\"><strong data-path-to-node=\"24,1,0,0\" data-index-in-node=\"0\">Hesap T&uuml;r&uuml;<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"24,1,1,0\">gMSA veya Domain User tercih edilmeli.<\/span><\/td>\n<td><span data-path-to-node=\"24,1,2,0\">AppPool Identity (Domain User\/gMSA)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"24,2,0,0\"><strong data-path-to-node=\"24,2,0,0\" data-index-in-node=\"0\">SPN S\u0131n\u0131f\u0131<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"24,2,1,0\"><code data-path-to-node=\"24,2,1,0\" data-index-in-node=\"0\">MSSQLSvc<\/code><\/span><\/td>\n<td><span data-path-to-node=\"24,2,2,0\"><code data-path-to-node=\"24,2,2,0\" data-index-in-node=\"0\">HTTP<\/code><\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"24,3,0,0\"><strong data-path-to-node=\"24,3,0,0\" data-index-in-node=\"0\">Port Belirtilmeli mi?<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"24,3,1,0\">Evet (Genelde 1433).<\/span><\/td>\n<td><span data-path-to-node=\"24,3,2,0\">Hay\u0131r (Protokol bazl\u0131d\u0131r).<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"24,4,0,0\"><strong data-path-to-node=\"24,4,0,0\" data-index-in-node=\"0\">Delegasyon<\/strong><\/span><\/td>\n<td><span data-path-to-node=\"24,4,1,0\">Genelde gerekmez (Son durakt\u0131r).<\/span><\/td>\n<td><span data-path-to-node=\"24,4,2,0\">SQL'e eri\u015fecekse \"Constrained\" \u015fart.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-path-to-node=\"25\">Kaynak: <a href=\"https:\/\/cybernews.com\/security\/microsoft-windows-to-disable-ntlm-protocol\/\">https:\/\/cybernews.com\/security\/microsoft-windows-to-disable-ntlm-protocol\/<\/a><\/p>\n<p data-path-to-node=\"25\">&nbsp;Yaz\u0131y\u0131 okudu\u011funuz i&ccedil;in te\u015fekk&uuml;rler, g&uuml;venli sistemleriniz olsun.<\/p>\n<p data-path-to-node=\"25\">&nbsp;<\/p>\n<p data-path-to-node=\"25\">&nbsp;<\/p>\n<\/div>\n<\/div>","excerpt":"NTLM'nin emekliye ayr\u0131lmas\u0131, siber g\u00fcvenlik d\u00fcnyas\u0131nda \"nihayet\" dedirten o b\u00fcy\u00fck d\u00f6n\u00fcm noktalar\u0131ndan biri. 30 y\u0131l bir teknoloji i\u00e7in sadece uzun bir s\u00fcre de\u011fil, dijital bir \u00f6m\u00fcr demek. \u00d6zellikle NTLM'nin kriptografik zay\u0131fl\u0131klar\u0131 ve relay (yans\u0131tma) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131zl\u0131\u011f\u0131 d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, bu ge\u00e7i\u015f bir tercihten ziyade modern altyap\u0131lar i\u00e7in bir zorunluluk.","created_at":"2026-03-16 23:16:57","updated_at":"2026-09-23 13:08:56","category_id":6,"view_count":727,"reading_time":12,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-03-16 20:29:32","featured_image":"\/uploads\/images\/2026\/03\/69b867eed1e82_1773692910.jpeg","slug":"ntlm-den-kerberos-a-guvenli-gecis","category_name":"Sistem","category_slug":"sistem","category_color":"#3b82f6"}