Kerberos Delegation
- Use And Abuse -
By
Saeed Alzahrani
بسم الله الرحمن الرحيم ..
المقالة تشرح واحد من اهم المفاهيم في بيئات الـ Active Directory وهو مفهوم Kerberos Delegation حيث يعتبر البوابة لنقل المستخدمين واعطائهم حق الوصول لـ اصول الشبكة دون الحاجة للوصول بشكل مباشر من قبلهم, يقدم Kerberos Delegation ثلاث انواع للتفويض تم تناول تفاصيل عملها وامكانية استغلال كل نوع .
المقالة تتطلب فهم كامل لطريقة عمل الـ Kerberos + NTLM authentication protocols
التفويض يحل مشكلة معروفة بالـ Double Hop وب اختصار هي محاولة الوصول باستخدام معلومات الاعتماد الخاصة بك (credentials) بصورة NTLM او Ticket, والاستفادة من موارد الاصول في الشبكة بناء على نوع التفويض المتاح.
الصورة السابقة توضح عمل التفويض افتراضا ان هنالك خادم File Share يتم التعامل معه عبر خادم ويب لا يمكن الوصول المباشر لخادم File Share من قبل المستخدمين عند تسجيل الدخول كـ يوزر test على جهاز المستخدم (USER PC) - (Interactive authentication) يتم تخزين الـ credentials الخاصة بـ test في الـ lsass.exe لاستخدامها فيما بعد, عند محاولة الدخول على موقع الويب المستضاف على خادم الويب يقوم USER PC بعمل
Network Authentication باستخدام credentials الخاصة بـ test المخزنة مسبقا داخل الـ lsass.exe
لا يتم تخزين الـ credentials في الخادم المراد الوصول له في حالة Network Authentication.
الصورة السابقة توضح انه في حال عدم تفعيل الـ Delegation على
WEB Server سيتم رفض الاتصال من قبل الـ File Share والسبب يعود ان الـ WEB Server لا يملك اي بيانات اعتماد للمستخدم لارسالها لخادم المشاركة.
قامت مايكروسوفت بداية من Windows 2000 باطلاق اول نوع من انواع التفويض Unconstrained Delegation يليه Constrained Delegation في ـ Windows Server 2003 ثم في Windows 2012 تم تقديم
Resource Based Constrained Delegation (RBCD) الـ RBCD متفق في العمل مختلف في مكان اعداده, حيث انه يتم على الخادم الاخير في حالتنا يتم اعداده على ال File Share ومنه يتم تحديد الاصول التي تملك صلاحية التفويض من عدمه .
تتطلب الانواع Unconstrained و Constrained نوع خاص من الصلاحيات SeEnableDelegationPrivilege يتم اعطائه لـ اليوزر القائم على تشغيل خدمة الويب, يمنح في العادة لـ enterprise and domain admins.
كما هو واضح في الصورة السابقة عند تفعيل التفويض يستطيع WEB Server مخاطبة الـ DC لطلب Ticket من نوع (Service Ticket) ST نيابة عن المستخدم test واستخدامها للوصول الى خادم المشاركة بـ اعتباره المستخدم test.