Kerberos authentication protocol

Kerberos authentication protocol كما لم تراه من قبل

هو البرتكول الاساسى الخاص بمايكروسوفت الخاص بعمليه Authentication وتم تفعيله من اول اصدار Windows Server 2000 وده لضعف NTLM protocol من الناحيه الامنيه واخر اصدرا حاليا من Kerberos احنا بنقوم باستخدامه هو Kerberos version 5 مش حابب اتكلم فى الفرق مابين Kerberos و NTLM لانه موضوع قديم جدا تقدر تقرا عنه وكمان عشان ما اعتقدش ان لسه فى حد بيشتغل NTLM authentication protocol بسبب ضعفه الشديد من الناحيه الامنيه وسهوله اختراقه

فى قصص كتير على تسميه Kerberos authentication protocol بهذا الاسم بس القصه اللى انا شخصيا شبه مقتنع بيها انه تم تسميته بهذا الاسم هو استنادا الى Cerberos وده معانه الكلب الشرس زو 3 رؤس اللى كان موجود فى الاساطير اليونيانيه زمان وده عشان Kerberos protocol بيتشغل ب 3 رؤس هما “جهاز اليوزر + السرفير اللى عليه السرفيس اللى عاوز اليزور يستفيد بالخدمه بتاعتها + Key Distribution Center (KDC)”

حلو ايه هو بقى Key Distribution Center (KDC)

هى جزء من Kerberos authentication protocol وهي سرفيس موجوده على كل دومين كنترولر DCs عندك فى الشبكه وهى بتتكون من 2 من services هما Ticket-Granting Service (TGS) & Authentication Service (AS)

مبدائيا كده خليك عارف ان Authentication Service (AS) هى اللى بتطلع TGT وان Ticket-Granting Service (TGS) هى اللى بتطلع TGS Ticket

طيب خلينا نشوف ازاى Kerberos protocol بيقوم بعميله authentication وايه دور Key Distribution Center (KDC) وايه فايده TGT & TGS

1- مبدائيا عشان اليوزر يقدر Authentication فجهاز المستخدم هيبعت طلب الى KDC Authentication Service (AS) الطلب بيكون فيه البياانات الخاصه باليوزر زى “ username, date and time” وبيانات تانيه كتير خاصه باليوزر والجهاز المهم تعرفه فى الجزء ده ان كل البيانات اللى بيعتها اليوزر الموجوده فى الطلب بتكون متشفره ماعدا Username وبيتم تشفير البيانات عن طريق استخدام الباسورد هاش الخاصه باليوزر

2- الطلب بيروح لل KDC Authentication Service (AS) وعن طريق Username لانه مش متشفر زى ماقولنا بيقدر يروح يشوف اليوزر ده موجود فى directory service وعن طريق الباسورد هاش الموجوده هناك بيقدر يفك تشفير الطلب وبيحصل على كل البيانات المطلوبه فى حاله ان باسورد اليوزر كانت صحيحه هيبعت KDC Authentication Service (AS) الى اليوزرTicket Granting Ticket (TGT) فيها unique session key وفيها كمان timestamp اللى بيتحدد فيها ان السيشن دى هتكون متاحه لحد امتى وده بيكون 10 ساعات فى الاغلب وبتقدر تتحكم فى الوقت ده عن طريق default domain policy اللى موجوده عندك فى Group Policy ومطبقه على كل الدومين عندك وكمان TGT بيكون فيها A Privilege Attribute Certificate (PAC) وهى عباره عن مجموعه معلومات عن صلاحيات اليوزر وهى معلومات خطيره جدا وبيكون من اهداف الهكر انه يحصل عليها عشان يقدر يخترق الدومين زى ماهنشوف بعد كده ولو حابب تشوفPAC والمعلومات اللى فيها ليوزر معين ممكن تجرب البايثون الاسكربت ده https://github.com/…/imp…/blob/master/examples/getPac.py

بس المهم تعرف انه قبل ما يبعت TGT الى اليوزر بيقوم بتشفرها عن طريق باسورد الخاصه بيوزراسمه KRBTGT هتلاقى موجود عندك فى كل دومين كنترولر وهتلاقيه كمان معموله disable والباسورد بتاعته طبعا بيحصلها replication مابين كل الدومين كنترولر وده منطقى لان احنا عرفنا ان KDC موجوده على كل الدومين كنترولر الموجوده عندنا فى الشبكه واكيد KDC هيحتاج الباسورد فى انه يشفرTGT او حتى يفك تشفيرها زى ماهنشوف

3- فى حاله ان اليوزر عاوز يستخدم اى سرفيس عندك فى الشبكه هيبعت TGT اللى متسجله عنده وهيبعت معاها service principal name (SPN) الخاصه بالسرفيس اللى عاوز يستفيد من خدمتها الى KDC وبالتحديد الى Ticket Granting Service (TGS) وبعد ما KDC TGS يفك تشفير TGT بالباسورد الخاصه ب KRBTGT User زى ماقولنا ويتاكد ان الوقت محدد لل TGT لسه صالحه هينسخ بيانات PAC الخاصه باليورز اللى لاقها فى TGT هيعمل تيكت جديده اسمها Ticket Granting Service ticket (TGS) وهيحط فيها PAC اللى نسخها وهيشفرها بال Service Account password hash اللى بتكون معروفه مابين DC والسرفير اللى عليه السرفيس بس وبعدين هيبعتها لليوزر

4- اليوزر هيبعت TGS Ticket الى File Server او Application server اللى عاوز يستفيد من الخدمه بتاعته Application Server هيفك تشفير TGS Ticket بالباسورد الموجوده عنده وهيراجع صلاحيات اليوزر الموجوده فى PAC بالتحديد وبناءا عليه هيسمحله بانه ييستفد من السرفيس ولا لاء حسب صلاحيات اليوزر

وبعد ماعرفينا ازاى Kerberos authentication بيشتغل هنتعرف دولوقتى على Vulnerabilities الخاصه بيه

فى ثغرات كتير بتهدد Kerberos وبتحاول تسرق الباسورد هاش او حتى Ticket اللى بيطلعها KDC واشهر الاخترقات هى Kerberoasting, Golden Ticket and Silver Ticket attacks, and pass-the-ticket attacks

عشان المقال مايطولش اكتر من كده والشباب تستصعب الموضوع هنتكلم عن انواع الاختراقات المختلفه فى المقال القادم

اتمنى اكون وضحت الموضوع بشكل كويس وواضح لانه فعلا من اصعب المواضيع اللى حاولت اشرحها ببساطه بسبب تعقيدها