מבוא לכלי CrackMapExec - מיפוי רשתות Active Directory בבדיקות חדירה¶
אם עבדתם פעם על בדיקת חדירה פנימית בתוך רשת ארגונית עם Active Directory, בטוח נתקלתם בבעיה הזאת: יש לכם קבוצה של שמות משתמש וסיסמאות, ואתם צריכים לבדוק על אילו מתוך מאות המחשבים ברשת הן בכלל תקפות. לבדוק את זה ידנית, מחשב אחר מחשב, זה בזבוז זמן אדיר. בשביל זה בדיוק נבנה CrackMapExec.
אז מה זה בעצם CrackMapExec¶
CrackMapExec, שמוכר גם בקיצור CME, הוא כלי שנועד לבצע את הפעולה הבסיסית והחשובה ביותר בבדיקת חדירה פנימית - לבדוק זוגות של שם משתמש וסיסמה, או hash, מול הרבה מחשבים בבת אחת, ולראות איפה הם עובדים. במקום לנסות להתחבר למחשב אחד בכל פעם, נותנים לכלי רשימה של כתובות IP או טווח רשת שלם, ורשימת אישורים, והוא בודק את כל הצירופים במקביל, במהירות.
חשוב לציין - הפרויקט המקורי של CrackMapExec כבר לא מתוחזק באופן פעיל, וההמשך הטבעי שלו נקרא NetExec, בקיצור nxc. זה בעצם אותו רעיון ואותה משפחת כלים, עם קהילה שממשיכה לפתח ולתחזק אותו. כשמדברים היום על "כלי מסוג CrackMapExec", לרוב מתכוונים למשפחת הכלים הזו כולה, ובעבודה בפועל תמצאו את עצמכם משתמשים ב-NetExec.
מה הכלי עושה בפועל¶
מעבר לבדיקת אישורים גולמית, הכלי מרכז כמה יכולות שבדרך כלל היו דורשות כמה כלים נפרדים:
- בדיקת תקפות אישורים - credential validation. בודקים אם שם משתמש וסיסמה, או שם משתמש ו-hash, תקפים מול רשימה של מחשבים ברשת, בפעולה אחת.
- מיפוי שיתופי רשת - shares. ברגע שיש אישורים תקפים, אפשר לראות אילו תיקיות משותפות פתוחות למשתמש הזה, ואיפה יש הרשאות כתיבה או קריאה.
- מיפוי משתמשים והרשאות. הכלי יכול לשלוף רשימות משתמשים, קבוצות, ומידע על הרשאות מקומיות בכל מחשב שבודקים.
- זיהוי הרשאות אדמין מקומי. אחת היכולות השימושיות ביותר - לראות על אילו מחשבים המשתמש שבידיכם הוא בעל הרשאות אדמין מקומי, מה שפותח דלת להרצת פקודות.
- הרצת פקודות מרחוק. במקומות שבהם יש הרשאות מתאימות, אפשר להריץ פקודות על המחשב היעד ישירות דרך הכלי.
למה זה מרכזי בבדיקות חדירה פנימיות¶
בבדיקת חדירה פנימית, רגע ראשוני מוצלח, למשל השגת אישורים של משתמש רגיל אחד, הוא בדרך כלל רק ההתחלה. השאלה האמיתית היא כמה רחוק אפשר להגיע מנקודת המוצא הזו. CrackMapExec נותן תשובה מהירה: הוא לוקח את האישורים שבידיכם ומראה תוך דקות על אילו מחשבים אחרים ברשת הם תקפים, איפה יש הרשאות מוגברות, ואיפה יש נתיב להתקדם הלאה. זה בדיוק מה שמדמה תנועה של תוקף אמיתי בתוך רשת אחרי דריסת רגל ראשונית, ולכן זה חלק כל כך בסיסי בכל בדיקת חדירה פנימית מקצועית.
למה ארגונים צריכים לדאוג משימוש חוזר בסיסמאות¶
הסיבה שהכלי הזה כל כך אפקטיבי היא בעצם תזכורת לבעיה נפוצה ברוב הארגונים - שימוש חוזר בסיסמאות. במקרים רבים, סיסמת אדמין מקומי מוגדרת זהה על כל תחנות העבודה בארגון, לפעמים מסיבות של נוחות בפריסה. המשמעות היא שאם תוקף משיג את הסיסמה הזו ממחשב אחד בלבד, למשל דרך דליפה או hash שנשלף, הוא יכול להשתמש באותה סיסמה בדיוק על כל מחשב אחר ברשת. זה בדיוק הפתח ש-CrackMapExec וכלים דומים בודקים באופן שיטתי. הפתרון הארגוני הוא כלים כמו LAPS, שמייצרים סיסמת אדמין מקומי אקראית ושונה לכל מחשב, ומתחלפת אוטומטית.
איך לומדים להשתמש בזה נכון¶
הדרך הנכונה ללמוד כלים כאלה היא בסביבת מעבדה מבוקרת, לא על רשתות אמיתיות בלי הרשאה. בקורס בדיקות חדירה אנחנו בונים סביבות Active Directory שלמות במעבדה, ומראים איך להשתמש בכלים מהמשפחה הזו כחלק מתהליך בדיקת חדירה פנימית מסודר - מרגע קבלת האישורים הראשוניים ועד מיפוי מלא של הרשת.
לסיכום¶
CrackMapExec ו-NetExec הם דוגמה מצוינת לזה שכלי פשוט לכאורה - "בדוק את הצירוף הזה על כל המחשבים" - יכול לחשוף בעיה ארגונית עמוקה בהרבה. אם אתם בצד ההגנה, השיעור צריך להיות ברור: תבדקו את עצמכם לפני שמישהו אחר עושה את זה במקומכם.