מה זה חטיפת ACL בדומיין¶
לא כל תקיפה על Active Directory דורשת גניבת סיסמה או ניצול חולשה טכנית. לפעמים מספיק להבין נכון מי מורשה לעשות מה למי - ולגלות שהרשאה תמימה שנשארה משכבר הימים היא בעצם נתיב ישיר להשתלטות על כל הדומיין. זו בדיוק המהות של חטיפת ACL.
מה זה בעצם ACL בהקשר של Active Directory¶
ACL - Access Control List - היא רשימת ההרשאות שמוגדרת על כל אובייקט בדומיין: משתמש, קבוצה, מחשב, או אפילו הדומיין עצמו. כל ACL מורכב מרשימת ACE - Access Control Entries - שכל אחד מהם קובע מי מורשה לעשות פעולה מסוימת על אותו אובייקט: לקרוא מאפיינים, לשנות סיסמה, להוסיף חברים לקבוצה, ועוד. במערכת מורכבת כמו Active Directory, שנבנית ומתעדכנת שנים, כמעט תמיד יש הרשאות ACL שהוגדרו פעם למטרה מסוימת, נשארו, ואף אחד לא זוכר בכלל שהן קיימות.
למה הרשאה "קטנה" יכולה להוביל לשליטה מלאה¶
הבעיה המרכזית היא שהרשאות מסוימות, שנראות תמימות במבט ראשון, נותנות בפועל כוח עצום. לדוגמה:
- GenericAll - הרשאה מלאה על אובייקט. אם למשתמש יש GenericAll על משתמש אחר, הוא יכול פשוט לאפס לו את הסיסמה בלי לדעת את הישנה.
- GenericWrite - יכולת לשנות מאפיינים על אובייקט. על חשבון משתמש, זה יכול לאפשר הגדרת Service Principal Name מזויף לצורך תקיפת Kerberoasting. על קבוצה, זה יכול לאפשר הוספת עצמך כחבר.
- WriteDACL - היכולת לשנות את רשימת ההרשאות עצמה. מי שמחזיק בהרשאה הזו יכול פשוט להעניק לעצמו כל הרשאה אחרת שהוא רוצה על אותו אובייקט, כולל שליטה מלאה.
- WriteOwner - היכולת לשנות את הבעלים של אובייקט. בעלים של אובייקט יכול תמיד להעניק לעצמו הרשאות נוספות עליו.
הבעיה האמיתית מתחילה כשההרשאות האלה משורשרות. תוקף שמצליח להשיג GenericWrite על קבוצה מסוימת, שהיא בתורה חברה בקבוצה אחרת עם הרשאות ACL על מנהלי הדומיין, בעצם מוצא שרשרת שלמה שמובילה משליטה קטנה לשליטה מוחלטת - גם בלי לגעת בסיסמה אחת.
איך מוצאים שרשראות כאלה בפועל¶
בדיקה ידנית של ACL על כל אובייקט בדומיין היא בלתי אפשרית בסביבה ארגונית עם אלפי אובייקטים. לכן הכלי המרכזי בעולם הזה הוא BloodHound - כלי שאוסף את כל נתוני ההרשאות מהדומיין, ובונה מהם גרף ויזואלי שמראה בדיוק אילו נתיבים מובילים ממשתמש רגיל להרשאות מנהל דומיין. במקום לחפש הרשאה מסוכנת אחת, בודק חדירות פשוט שואל את הגרף - מה הדרך הכי קצרה מהמשתמש שיש לי אליו גישה, ועד מנהל הדומיין.
למה זה כל כך נפוץ בסביבות אמיתיות¶
ארגונים גדולים מנהלים הרשאות במשך שנים, ולרוב אין תהליך שוטף שסוקר ומנקה הרשאות ישנות שכבר לא נחוצות. פרויקטים זמניים, אינטגרציות שנעזבו, ואפילו טעויות תצורה פשוטות - כל אלה מצטברים לרשת ענפה של הרשאות עודפות. זו הסיבה שחטיפת ACL היא כמעט תמיד אחד הנתיבים היעילים ביותר להסלמת הרשאות בדומיין, בלי צורך בשום חולשה טכנית קלאסית.
איך מתגוננים¶
- סקירה תקופתית של הרשאות ACL רגישות בדומיין, במיוחד על קבוצות בעלות הרשאות גבוהות.
- שימוש בכלי מיפוי כמו BloodHound מהצד המגן, כדי לזהות נתיבי הסלמה לפני שתוקף מוצא אותם.
- עקרון הרשאה מינימלית - להעניק רק את מה שבאמת נדרש, ולבטל הרשאות שנוצרו לצורך זמני ברגע שהצורך נגמר.
איך לומדים את זה נכון¶
חטיפת ACL היא אחד הנושאים המרכזיים בתקיפת Active Directory מודרנית, וכל בודק חדירות שעובד בסביבות ארגוניות נתקל בזה שוב ושוב. מי שרוצה לבנות בסיס מוצק בנושא יכול להתחיל מקורס בדיקות החדירות שלנו.
לסיכום¶
חטיפת ACL מוכיחה שהמפה האמיתית של סיכון בדומיין היא לא רשימת חולשות טכניות, אלא מפת ההרשאות עצמה. תלמדו לקרוא אותה נכון, ותבינו שהדרך הכי קצרה לשליטה מלאה עוברת הרבה פעמים דרך הרשאה ישנה ששכוחה.
יש לכם שאלות על מיפוי הרשאות ב-Active Directory? בואו לקהילה שלנו.