Kerberos
Windows 2000 server ve sonrası için default kimlik doğrulama yöntemidir. Networkte geçişleri kontrol eder. Kontrolü yaparken client ve server arasında güvenli bir iletişim kurulmasını sağlayan kdc'den (key distribution center) yardım alır kimliğini doğrulatmak ya da bir servisten faydalanmak isteyen client client'in talep ettiği servisi sağlayan server hem client hem de server tarafından güvenilen bir dc
Kerberos mantığı: Kerberos bilet sistemiyle çalışan 3WayHandshake'ye benzetebileceğimiz bir sistemdir. Bir kullanıcı bir ap'ye gitmek istediği zaman şifre ve kullanıcı adı vermeden gidiyor. Peki bu nasıl oluyor ? Kerberos bir protokoldür. Bu protokolde authentication ve authorization ile çalışır. Bir kullanıcı gitmek istediği AP'ye ulaşmak için öncelikle KDC'ye kendini doğrulaması gerekir. Bu işlem biletler ile gidip gelmesiyle oluşur. Kendini doğruladıktan sonra gitmek istediği AP'ye gitme yetkisi olup olmadığını doğrulaması gerekir. Eğer kendini doğrularsa ve yetkisi de var iste ilk önce TGT bileti ile kendini doğrular. Daha sonra da gitmek istediği AP'ye TGS ile gider.
KRB_AS_REQ
Kullanıcı Domain Controller'a (DC) bir Ticket Granting Ticket (TGT) için bir istek gönderir. Bu isteğe KRB_AS_REQ (Kerberos Kimlik Doğrulama Hizmeti İsteği) adı verilir. İstemci tarafından talep edilen TGT, bir oturum anahtarı ve kullanıcı bilgilerini (ID, ad, gruplar, hash vb.) içeren bir şifreli bilgi parçasıdır. Bu TGT isteğini gerçekleştirmek için, kullanıcı adını KDC'ye ve isteğin yapıldığı zamanı hashli bir sürümüyle gönderir. KDC bu kullanıcı adını alır ve veri tabanında var olduğunu doğrular. Kullanıcının hashi ile şifrelediği isteği kullanıcının hashi ile açar.

KRB_AS_REP
TGT kullanıcın verileri ile oluşturulur ve yalnızca KDC servisinin açacağı şekilde şifrelenir. Bu bilgilerin ele geçirilme şansları elbette vardır. Kullanıcıyı doğrulayan KDC bu bilgileri artık TGT'ye iletir.

KRB_TGS_REQ
Bu sefer kullanıcı erişmek istediği servisin bilgisini ekliyor isteğine. Bu servise erişme yetkimiz olup olmadığı kontrol ediliyor. Doğru olduğunda artık cevap veriyor.

KRB_TGS_REP
Artık KDC, kullanıcının gerçekten var olduğunu doğrulayabildiğine göre, kullanıcının hizmete istekte bulunmasına izin verecek bilgileri geri gönderecektir. Bu mesaj KRB_TGS_REP'dir. Aşağıdaki unsurları içerir:
İstenen hizmetin adını ve ana bilgisayarını, kullanıcının kullanıcı adını ve yalnızca kullanıcı ile erişmek istediği servis arasındaki iletişimler için belirli bir süre geçerli olan yeni bir oturum anahtarını içeren bir bilet. Bu bilet, hizmetin anahtarıyla şifrelenir.
Ve oturum anahtarı.

KRB_AP_REQ
Kullanıcı erişmek istediği servise gider, bu servis de kullanıcının buraya erişip erişemediğini KDC'ye sorar ve hizmeti verir.
Kaliden kinit komutu ile kdc sunucuna istekte bulunuyoruz. kinit useradı@domainadı.local ile bağlanıyoruz. Bizden parola istiyor. Parolayı doğru girersek az önceki şemada anlatılan bütün aksiyonlar gerçekleştirilip bize ticketımız teslim ediliyor.
Herhangi bir ticketımız olup olmadığına bakmak için klist komutunu yazıyoruz.
DNS sunucumuz mutlaka KDC sunucusunun yer almış olduğu domain controllerın ipsi olması gerekiyor. Sebebi dc nin üzerinde de bi dns serverı çalışıyor. Ona da cat /etc/resolv.conf ‘dan erişebiliriz. Kullanıcı adını büyük küçük harfe dikkat ederek yazmalıyız. Çünkü Windows bunu otomatik büyük harf yapar byük küçük harf ayrımı yoktur ama linuxta büyük küçük harf ayrımı olduğu için biz direkt olarak büyük yazmalıyız:
Kinit support@SUPPORT.HTB
Klist dediğimizde giriş yaptığımız kullanıcının tgt nin oluştuğunu görüyorum.
Last updated