Active Directory والهوية: مسارات الهجوم وكيف تغلقها
درس 3 من 3
3Active Directory والهوية: مسارات الهجوم وكيف تغلقها
الصورة الكبيرةActive Directory دليل الشركة: كل موظف وجهاز وصلاحية. أغلب حوادث الفدية الكبيرة تمر بالخطوات نفسها: حساب موظف واحد بالتصيد، ثم تسلق داخل AD حتى صلاحية مدير المجال، ثم نشر التشفير على كل الأجهزة دفعة واحدة. المدافع المتوسط يجب أن يعرف هذه الخطوات بأسمائها، لأن كل خطوة تترك أثرًا يمكن كشفه، وكل مسار يمكن قطعه.
ماذا تشاهد في الرسم: مسار نموذجي يمر بخمس محطات. المدافع لا يحتاج أن يوقفها كلها؛ قطع أي محطة يكسر المسار، وكلما كان أبكر كان أفضل.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل فندقًا. وحدة التحكم هي مكتب الاستقبال الذي يصدر بطاقات الغرف. Kerberos نظام البطاقات: تثبت هويتك مرة في الاستقبال فتأخذ بطاقة دخول عامة (TGT)، وبها تطلب بطاقة لكل غرفة (تذكرة خدمة). اللص لا يكسر الأبواب؛ يسرق بطاقة موظف تنظيف نُسيت في غرفة مدير، ثم يجد في درج المدير بطاقة المالك. الطبقات أن المالك لا يترك بطاقته إلا في مكتبه المحصّن.
Kerberos: المستخدم يأخذ TGT من KDC على وحدة التحكم (موقّعة بمفتاح حساب krbtgt)، ثم تذاكر خدمة (TGS) مشفرة بمفتاح حساب الخدمة. الهجمات (ATT&CK): الرش T1110.003 (كلمة شائعة على حسابات كثيرة؛ كشف: 4625/4771 من مصدر واحد لحسابات كثيرة)، وKerberoasting T1558.003 (طلب تذاكر لحسابات خدمة بـ SPN وكسرها خارجيًا؛ كشف: 4769 بتشفير RC4 0x17 وطلبات كثيرة؛ منع: gMSA أو كلمات مرور من 25 حرفًا فأكثر وAES فقط)، وتمرير التجزئة T1550.002 (منع: LAPS، وعدم دخول المديرين لأجهزة عادية، وCredential Guard)، وDCSync T1003.006 (طلب نسخ كلمات المرور كأنه وحدة تحكم؛ كشف: 4662 بصلاحيات النسخ من جهاز ليس وحدة تحكم)، والتذكرة الذهبية T1558.001 (بعد سرقة krbtgt؛ العلاج: تغيير كلمة krbtgt مرتين). الدفاع البنيوي: نموذج الوصول المؤسسي من Microsoft (الطبقة صفر للهوية)، ومحطات PAW، وWindows LAPS، ومجموعة Protected Users، وتعطيل RC4 وNTLM حيث أمكن. BloodHound يرسم المسارات كرسم بياني. وفي Entra ID: الوصول المشروط وPIM والتحقق المقاوم للتصيد.
قبل أن تبدأ
🔑الهوية وكلمات المرور
تعرف MFA وتخزين كلمات المرور بالتجزئة.
🧪هندسة الكشف
تعرف أحداث Windows وقواعد Sigma.
الفكرة الجوهرية
1Kerberos في دقيقة
حين تدخل حاسوب العمل صباحًا، يطلب Windows من وحدة التحكم TGT، تذكرة تثبت أنك أنت لعشر ساعات تقريبًا. وحين تفتح مجلدًا مشتركًا، يقدّم Windows الـ TGT ويطلب تذكرة خدمة لخادم الملفات، مشفرة بمفتاح حساب تلك الخدمة. هذا التصميم يعني أن مفتاح krbtgt هو مفتاح المملكة: من يسرقه يصنع أي تذكرة لأي أحد.
2الهجمات المشهورة: كيف تكشفها وكيف تمنعها
لا تحتاج أن تنفذ هذه الهجمات لتدافع ضدها، بل أن تعرف أثرها. كل واحدة لها حدث يكشفها وإعداد يمنعها:
| الهجوم | ATT&CK | ما يحدث | الكشف | المنع |
|---|---|---|---|---|
| رش كلمات المرور | T1110.003 | كلمة شائعة على مئات الحسابات | 4625 و4771 من مصدر واحد لحسابات كثيرة | MFA، وحظر الكلمات الشائعة |
| Kerberoasting | T1558.003 | تذاكر لحسابات خدمة تُكسر خارجيًا | 4769 بتشفير RC4 (0x17) وعدد كبير | gMSA، وكلمات 25+ حرفًا، وAES فقط |
| تمرير التجزئة | T1550.002 | استخدام تجزئة كلمة المرور بدلها | 4624 نوع 3 بـ NTLM من أجهزة غير معتادة | LAPS، والطبقات، وCredential Guard |
| DCSync | T1003.006 | طلب نسخ كلمات المرور كأنه وحدة تحكم | 4662 بصلاحيات النسخ من جهاز ليس DC | لا أحد غير وحدات التحكم يملك صلاحية النسخ |
| التذكرة الذهبية | T1558.001 | تذاكر مزورة بمفتاح krbtgt | تذاكر بأعمار أو حقول غريبة | حماية الطبقة صفر، وتغيير krbtgt مرتين بعد الحادثة |
3مسارات الهجوم كرسم بياني
المهاجم يفكر بالرسم البياني: «من هذا المستخدم، أي جهاز أستطيع دخوله؟ ومن مسجل دخوله على ذلك الجهاز؟ وما صلاحياته؟». أداة BloodHound تجمع هذه العلاقات وترسم أقصر طريق إلى Domain Admins. المدافع يشغّلها قبل المهاجم، ويقطع الحواف الخطرة. والفكرة نفسها تعمل في الكود:
ست قفزات من موظفة موارد بشرية إلى المجال كله، وكل قفزة عادة إدارية منسية. قطع حافة واحدة يكسر المسار كله.
from collections import deque
edges = { # who/what -> what it gives access to, and why
"user:huda": [("host:HR-07", "local admin (old IT habit)")],
"host:HR-07": [("user:it-support", "session: it-support logged on here yesterday")],
"user:it-support": [("group:Server-Admins", "member")],
"group:Server-Admins": [("host:FILESRV-01", "local admin")],
"host:FILESRV-01": [("user:svc-backup", "service runs here")],
"user:svc-backup": [("group:Domain Admins", "member since 2015")],
}
def shortest_path(start, goal):
queue, seen = deque([(start, [])]), {start}
while queue:
node, path = queue.popleft()
if node == goal:
return path
for nxt, why in edges.get(node, []):
if nxt not in seen:
seen.add(nxt)
queue.append((nxt, path + [(node, nxt, why)]))
path = shortest_path("user:huda", "group:Domain Admins")
for a, b, why in path:
print(f"{a:<20} -> {b:<20} ({why})")
print(f"{len(path)} hops from a phished HR account to Domain Admins")
edges["user:svc-backup"] = [] # fix: svc-backup becomes a gMSA with no DA rights
print("after the fix:", shortest_path("user:huda", "group:Domain Admins"))4البنية التي تقطع المسارات
الحلول الفردية مهمة، لكن البنية أهم. الطبقات: الطبقة صفر (وحدات التحكم وما يديرها)، والطبقة واحد (الخوادم)، والطبقة اثنين (أجهزة الموظفين). حساب الطبقة صفر لا يدخل أبدًا جهاز طبقة أدنى، فلا تُترك بياناته في ذاكرة جهاز موظف. ومعه: Windows LAPS لكلمة مدير محلي فريدة على كل جهاز، وProtected Users للحسابات المميزة، وPIM للصلاحية عند الحاجة فقط، وتعطيل RC4 وتقليل NTLM.
مثال محلول
المسألة: SIEM أظهر 300 حدث 4769 خلال دقيقتين من جهاز موظف في المبيعات، كلها بتشفير 0x17 ولحسابات خدمة مختلفة. ماذا يحدث؟ وماذا تفعل؟
الحل: هذا نمط Kerberoasting: طلب تذاكر بالجملة لحسابات خدمة بتشفير RC4 الضعيف لكسرها خارجيًا. (1) اعزل الجهاز وعطّل حساب الموظف مؤقتًا. (2) اعتبر كل حساب خدمة طُلبت تذكرته مكشوفًا: غيّر كلمات مرورها فورًا، وابدأ بمن له صلاحيات عالية. (3) ابحث عن 4624 لتلك الحسابات من أماكن غير معتادة بعد الحادثة. (4) الإصلاح الدائم: gMSA، وAES فقط، وكلمات طويلة لما تبقى، وقاعدة Sigma على 4769 بـ 0x17 بالجملة. (5) شغّل BloodHound لترى أي هذه الحسابات كان طريقًا إلى Domain Admins.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| مضاد الفيروسات يحمي Active Directory. | أغلب هجمات AD تستخدم أدوات النظام وبيانات اعتماد حقيقية، فلا يوجد ملف خبيث ليكتشفه. |
| كلمة مرور قوية للمدير تكفي. | إن دخل المدير جهازًا مخترقًا تُسرق بياناته من الذاكرة مهما كانت قوية. الطبقات أهم. |
| نقلنا إلى Entra ID في السحابة فلم يعد AD مهمًا. | أغلب الشركات هجينة؛ اختراق AD المحلي يصل إلى السحابة عبر المزامنة، والعكس. |
أين تقابله في العمل
🚨الاستجابة لحادثة فدية
أول سؤال: هل وصل المهاجم إلى الطبقة صفر؟ الجواب يحدد حجم التعافي.
🔍تقييم دوري
BloodHound كل ربع سنة لقطع المسارات الجديدة.
🏛️الامتثال
الضوابط الوطنية تطلب إدارة الصلاحيات المميزة وفصلها.
اختبر فهمك
ما الذي يحمي مفتاحه كل تذاكر Kerberos في المجال؟
الـ TGT موقّعة بمفتاح krbtgt، ولهذا تُصنع منه التذكرة الذهبية.
أحداث 4769 كثيرة بتشفير 0x17 من جهاز واحد. ما الهجوم المرجح؟
0x17 هو RC4، والطلب بالجملة لحسابات خدمة علامة Kerberoasting.
ما الذي يمنع تمرير التجزئة بين أجهزة الموظفين؟
إن تشاركت الأجهزة كلمة المدير المحلي، فتجزئة واحدة تفتحها كلها.
بعد اختراق وصل إلى krbtgt، ماذا تفعل بكلمة مروره؟
النظام يحتفظ بالكلمة السابقة أيضًا، فالتغيير المزدوج يبطل التذاكر المزورة.
ما قاعدة الطبقات الأساسية؟
هكذا لا تُترك بيانات الحساب المميز في ذاكرة جهاز يمكن اختراقه.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا يبحث المهاجم عن مسار لا عن ثغرة؟
لأن الصلاحيات والجلسات المنسية تعطيه ما يريد بأدوات النظام نفسه، بلا استغلال يلفت الانتباه.
ما فائدة تشغيل BloodHound بنفسك؟
ترى أقصر الطرق إلى Domain Admins قبل المهاجم وتقطع حوافها الخطرة.
حدث 4662 بصلاحيات النسخ من حاسوب محاسب. ماذا يعني؟
على الأرجح DCSync: جهاز ليس وحدة تحكم يطلب نسخ كلمات المرور. حادثة حرجة فورًا.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.