תיאוריה
אוסף נתונים מ־ (מי בקבוצה, מי מחובר לאיזה מחשב, לאילו ACL יש גישה) ובונה גרף יחסים. המתקפה כבר לא «איפה יש חשבון חלש» — אלא מציאת מסלול בגרף מהנקודה שאתה שולט בה עד לקבוצת Admins.
Edges שחייבים להכיר
- MemberOf — שיוך לקבוצה.
- AdminTo — משתמש/קבוצה הם admins על מחשב.
- HasSession — משתמש מחובר למחשב כרגע (הזדמנות לגנוב אישורים בזיכרון).
- CanRDP / CanPSRemote — גישה מרחוק למחשב.
- — הרשאת שכפול על הדומיין — הפרס.
- WriteDacl / AddMember / AddKeyCredentialLink — הרשאות ל־«שדרוג» עצמי בשרשרת.
שרשרת מסלול: bob, HasSession, WORKSTATION1, AdminTo, svc_helpdesk, CanRDP, SRV-APP1, MemberOf, G-Deploy, DCSync, CORP.LOCAL. כל חץ הוא Edge (קשר). הגנה: להריץ את אותה שאילתה ולשבור כל מסלול לפני התוקף.
פרקטיקה — איסוף הגרף
מייבאים את ה־zip ל־, ובודקים: Pre-built Analytics → «Find Shortest Paths to Admins».
קריאת מסלול צעד־צעד
דוגמת מסלול: bob → HasSession → WORKSTATION1 → AdminTo → svc_helpdesk → CanRDP → SRV-APP1 → MemberOf → G-Deploy → → CORP.LOCAL.
- 1. bob מחובר ל־WORKSTATION1 (HasSession) — אם שולטים ב־bob, יש בזיכרון של המחשב אישורים נוספים לגניבה.
- 2. svc_helpdesk הוא Admin על WORKSTATION1 (AdminTo) — עם הרשאות על המחשב, גונבים את ה־hash של svc_helpdesk מה־SAM/.
- 3. svc_helpdesk יכול RDP ל־SRV-APP1 (CanRDP) והוא מחובר שם — אישורים נוספים בזיכרון.
- 4. מי שמחובר ל־SRV-APP1 שייך ל־G-Deploy, שמחזיקה על הדומיין.
- 5. = כיבוש הדומיין — שולפים את כל ה־hash-es דרך שכפול.
שאילתות Cypher שימושיות
זיהוי והגנה — BloodHound הוא גם כלי הגנתי
- הריצו «Shortest Paths to Admins» לפני התוקף — שבירת כל מסלול (הסרת AdminTo, סיבוב סיסמה, ניתוק session מיותר) היא מיטיגציה אמיתית.
- מצאו בלוגים בדיוק את הקשתות: איזה svc_helpdesk נכנס RDP לשרתים (4624 Type 10), מי בלי סיבה.
מיטיגציה
- תקנו קשתות: הסירו AdminTo מיותרים, בטלו delegation מיותר, מספר קטן של holders.
- לכל חשבון שירות עם הרשאות גבוהות — עקרון minimum, PAW לניהול, וניטור על כל שימוש.
- חזרו לגרף אחרי התיקון ובדקו שהמסלול נעלם — הוכחה שהמיטיגציה עבדה.