~/sibercrew
Windows ve Active Directory Temelleri

Windows Kimlik Doğrulama: NTLM ve Kerberos Basitçe

Bir kullanıcı Windows'ta oturum açtığında, kimliği kanıtlamak için perde arkasında ne oluyor?

Bu makalede, Windows/Active Directory dünyasının en önemli (ve ileri seviyede en çok saldırıya uğrayan) iki kimlik doğrulama protokolüne, NTLM ve Kerberos'a başlangıç seviyesinde bir giriş yapıyoruz.

Neden İki Farklı Protokol Var?

Microsoft, yıllar içinde kimlik doğrulama yöntemini geliştirdi: eski, daha basit yöntem NTLM'dir; daha yeni, daha güvenli ve daha karmaşık yöntem ise Kerberos'tur. Günümüzde Active Directory ortamlarında varsayılan olarak Kerberos kullanılır, ama NTLM hâlâ (eski sistemlerle uyumluluk için) arka planda mevcuttur ve bazı durumlarda hâlâ kullanılır.

NTLM: Basit Ama Sınırlı Bir Yöntem

NTLM (NT LAN Manager), basitleştirilmiş bir "meydan okuma-yanıt" (challenge-response) mekanizmasıyla çalışır:

  1. Kullanıcı, bir sisteme bağlanmak ister.
  2. Sunucu, kullanıcıya rastgele bir "meydan okuma" (challenge) değeri gönderir.
  3. Kullanıcının bilgisayarı, kendi şifresinin hash'ini kullanarak bu meydan okumaya bir yanıt üretir ve gönderir.
  4. Sunucu (veya Domain Controller), bu yanıtın doğru olup olmadığını kontrol eder.

Bu yöntemin bir zayıflığı, "pass-the-hash" adı verilen bir saldırı tekniğine açık olmasıdır: eğer bir saldırgan kullanıcının ŞİFRESİNİ bilmeden sadece HASH'İNİ ele geçirirse (örneğin bir sistemin belleğinden), bu hash'i doğrudan kullanarak (şifreyi hiç çözmeden) kimlik doğrulamayı geçebilir — çünkü NTLM protokolü, gerçek şifreyi değil, hash'i doğrulamaya dayanır.

Kerberos: Bilet Tabanlı, Daha Güvenli Sistem

Kerberos, çok daha karmaşık ama daha güvenli bir sisteme dayanır — adını Yunan mitolojisindeki, yeraltı dünyasının kapısını bekleyen üç başlı köpek Kerberos'tan alır (üç taraflı bir güven ilişkisini simgeler: kullanıcı, hizmet, ve güvenilir bir üçüncü taraf). Basitleştirilmiş akış:

  1. Kullanıcı, giriş yaparken Domain Controller'daki özel bir servise (KDC - Key Distribution Center) kimliğini kanıtlar ve karşılığında bir TGT (Ticket Granting Ticket) alır — bunu bir "günlük giriş bileti" gibi düşünebilirsin.
  2. Kullanıcı, belirli bir hizmete (örneğin bir dosya sunucusuna) erişmek istediğinde, TGT'sini KDC'ye gösterip o hizmete özel bir hizmet bileti (service ticket) talep eder.
  3. Bu hizmet bileti, doğrudan dosya sunucusuna sunulur — dosya sunucusu, kullanıcının şifresini HİÇ görmeden, sadece bu bileti doğrulayarak erişim izni verir.

Bu "bilet" sistemi, kullanıcının şifresinin (veya hash'inin) her hizmete tekrar tekrar gönderilmesini gerektirmez — bu, NTLM'e kıyasla önemli bir güvenlik avantajıdır.

Kerberos'un da Kendi Zayıflığı Var: Kerberoasting

Kerberos daha güvenli olsa da, MÜKEMMEL değildir. "Kerberoasting" adı verilen bir teknik, bir saldırganın normal, düşük yetkili bir kullanıcı hesabıyla bile, belirli hizmet biletlerini talep edip bu biletleri OFFLINE olarak (yani Domain Controller'a tekrar tekrar bağlanmadan, kendi bilgisayarında) kırmaya çalışmasına dayanır — eğer o hizmet hesabının şifresi zayıfsa, saldırgan zamanla bu şifreyi çözebilir.

Neden Bu Bilgi Önemli?

Bu iki protokolü temel seviyede anlamak, ileride Malware Analizi ve Adli Bilişim kütüphanelerimizde göreceğimiz "kimlik bilgisi hırsızlığı" (credential theft) ve "yanal hareket" (lateral movement) tekniklerinin NEDEN mümkün olduğunu anlamanın ilk adımıdır — bu ileri seviye saldırı teknikleri, büyük ölçüde bu temel kimlik doğrulama mekanizmalarının nasıl çalıştığını (ve nerelerde zayıf kalabildiğini) istismar eder.

Bu makale, NTLM ve Kerberos'a giriş niteliğinde, başlangıç seviyeli bir özetidir; SiberCrew ekibi tarafından hazırlanmış özgün içeriktir.