מילון מושגים:
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
VPN - רשת פרטית וירטואלית שיוצרת חיבור מוצפן דרך האינטרנט, כאילו המכשיר מחובר ישירות לרשת מרוחקת.
SSH - פרוטוקול לחיבור מרוחק ומוצפן למחשב, בעיקר לשרתי Linux, לצורך ניהול דרך שורת הפקודה.
NTLM - פרוטוקול אימות ותיק של מיקרוסופט המבוסס על ערכי האש של סיסמאות, שקדם ל-Kerberos.
Kerberos - פרוטוקול אימות המבוסס על כרטיסים (tickets), המשמש ברשתות Active Directory לאימות מאובטח של משתמשים ושירותים.
TGT - כרטיס שמנפיק שרת האימות ב-Kerberos, שבעזרתו המשתמש מבקש גישה לשירותים בלי להזדהות שוב בכל פעם.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
תעודה דיגיטלית - מסמך מוצפן שמאשר את זהותו של אתר או שרת וקושר אותו למפתח ציבורי, ומונפק על ידי רשות אישורים.
הסבר על התקפת Golden Ticket על Active Directory
בשיעור זה אנו נכנסים אל משימת התקפת הכרטיס המזויף על Active Directory. אנו לומדים על שיטת האימות קרברוס שמחליפה את שם המשתמש והסיסמה בכרטיסי הזדהות, מתחברים אל רשת האימונים בעזרת VPN מתוך ווינדוס, מתחברים אל הקורבן ב-SSH ובודקים אילו כרטיסים כבר קיימים בזיכרון התחנה בעזרת הכלים המובנים והכלי המיוחד שלנו.
נושאי הסיכום המוצגים בשיעור:
1. המשימה החמישית: לתקוף את Active Directory עם Golden Ticket, כרטיס הזדהות שבו משתמשת Active Directory במקום שם וסיסמה. זו שיטה הרבה יותר חזקה שנקראת קרברוס, ואנחנו נתקוף אותה בזכות העובדה שיש לנו שם וסיסמה של מנהל רשת.
2. איך הגענו לכאן: קרצנו לתחנה וחיכינו שמנהל רשת יום אחד יתחבר עם שם והסיסמה שלו כדי לתקן משהו, ותפסנו לו את הערבול של הסיסמה מתוך הזיכרון של התחנה. עכשיו יש לנו את הסיסמה של מנהל הרשת, או יותר נכון את הערבול שלה, ואנחנו יכולים לעלות רמה וליצור לעצמנו כרטיס הזדהות מזויף.
3. מה נותן הכרטיס: הכרטיס הזה יהיה תקף לעשר שנים, כך שגם אם מנהל הרשת יחליף לעצמו סיסמה, אנחנו עדיין נוכל לטייל בכל הרשת של הקורבן בעזרת הכרטיס הזה. לא נצטרך יותר את סיסמת מנהל הרשת, כי נהיה עם כרטיס הזדהות שמערכת ה-Active Directory עובדת איתו, הכרטיס של קרברוס.
4. שתי שיטות האימות: בפועל, בתוך מערכת הניהול המרכזית הזאת של Active Directory, יש שתי שיטות עיקריות להזדהות מול שרת חדש או מול משאב כלשהו: שם וסיסמה רגילים, שנקרא NTLM, או קרברוס עם הכרטיסים האלו. אנחנו הולכים לזייף את הכרטיסים האלו, והמרצה מסביר איך כל זה עובד.
5. מה נחלץ: כרגע יש לנו זכויות של מנהל דומיין על כל הרשת, יש לנו מנהל של Active Directory, ובעזרתו נחלץ את הערבול של סיסמת משתמש בשם Kerberos TGT, שהוא המשתמש שאיתו מערכת הקרברוס עובדת ומצפינה איתו את כל הכרטיסים שהיא נותנת. זה למעשה המשתמש שמערכת האבטחה עצמה עובדת איתו.
6. התחברות מווינדוס במקום מקאלי: כדי שיהיה מעניין יותר, הפעם מתחברים לא מתוך קאלי אלא מתוך ווינדוס 11 אל רשת הקורבן, ורואים איך עובד VPN אל האתר מווינדוס ולא מקאלי. מתחברים לאתר עם שם המשתמש והסיסמה שאיתם נרשמנו, ובלוח הבקרה הראשי יש את החדר שהתחלנו, חדר פוסט אקספלויטיישן בייסיקס עם כינוי הקוד המזהה את הכלי שלנו, ובתוך החדר הגענו למשימה מספר חמש, הכרטיס המזויף.
7. הפעלת הקורבן: מפעילים את מכונת הקורבן וממתינים עד שיתקבל כתובת IP. בינתיים מתחברים ב-VPN אל הרשת הפנימית: לוחצים על גישה למכונות, והאתר אומר שצריך להוריד את חבילת ההגדרות של OpenVPN.
8. התקנת OpenVPN בווינדוס: מורידים את קובץ ההגדרות ואת התוכנה עצמה מהאתר, וכך יש לנו הן את התוכנה והן את קובץ ההגדרות לחיבור הספציפי. מתקינים את התוכנה לפי ההסבר שבאתר, מסכימים למדיניות, ונכנסים לממשק. יש אפשרות לייבא קובץ עם הגדרות מוכנות: בוחרים קובץ, הולכים לתיקיית ההורדות ומביאים את קובץ OpenVPN עם כל ההגדרות. הוא מכניס את כתובות ה-IP הנחוצות, עושים חיבור, ואנחנו בתוך הרשת עם סימן שהחיבור פעיל. דרך אגב, קובץ ההגדרות הזה הוא קובץ טקסט פשוט, ואפשר לפתוח אותו בעורך טקסט ולראות שהוא רק טקסט עם פקודות שהלקוח של OpenVPN מריץ.
9. בדיקת החיבור והתחברות ב-SSH: בודקים שקיבלנו כתובת IP בעזרת פקודת בדיקת תגובה ורואים שהיא באמת עונה. מוסיפים עוד שעה לזמן האתגר ומתחברים לקורבן שלנו ב-SSH: פותחים שורת פקודה וכותבים SSH עם שם המשתמש שאיתו רוצים להתחבר, המנהל, שטרודל כתובת ה-IP של הקורבן. הוא שואל אם זה המחשב הנכון ומציג את טביעת האצבע שלו מהתעודה, עונים שזה השרת הנכון, וכך הוא מוודא שמישהו לא נכנס באמצע התקשורת ומתחזה לשרת היעד. אחר כך הוא מבקש סיסמה, שלוקחים מהשלב השני שבו היא כתובה אחרי שם המשתמש, מעתיקים אותה ונכנסים פנימה.
10. מי אנחנו בתוך הקורבן: בעזרת הפקודה שמציגה את הגדרות הרשת רואים שאנחנו בתוך מחשב הקורבן. בפקודה שמציגה את המשתמש עם כל הפרטים רואים שהמשתמש שלנו הוא המנהל, וזה המזהה שלו במערכת האבטחה: החלק הראשון הוא מזהה של כל הרשת ושל כל הדומיין, החלק השני הוא המספר של המשתמש הספציפי, וכל זה יחד הוא המזהה של אותו משתמש במערכת, מזהה האבטחה, וזה שמו של המשתמש. דרך אגב, המספר 500 הוא תמיד המספר של מנהל. אנחנו בקבוצת המנהלים המקומיים ובקבוצת מנהלי הדומיין, שהם מנהלים בכל תחנות העבודה ובכל השרתים שקיימים בארגון, וזו קבוצה סופר חזקה.
11. המעבר הצידי: עכשיו אנחנו באים לשדרג את עצמנו ולהתחזות למשתמש אחר, לזוז לרוחב הרשת ולקבל כרטיס שלא יהיה תלוי בערבול הסיסמה, אלא רק כרטיס הזדהות שמחליף את השם והסיסמה למשך עשר שנים.
12. בדיקת הכרטיסים הקיימים: אילו כרטיסים וטוקנים יש לנו עכשיו? הפקודה המובנית מציגה שכרגע יש לנו כרטיס הזדהות מול משאבי הרשת בשם של המנהל, ומי שנתן לנו אותו הוא מערכת הקרברוס עצמה. עם הכרטיס הזה אפשר להזדהות במקום שם וסיסמה, כי Active Directory תומך בשתי שיטות הזדהות: אחת עם הכרטיסים האלה שנקראים כרטיסי קרברוס, והשנייה NTLM, השיטה הישנה של שם וסיסמה רגילים. הפקודה הזאת היא תוכנה מובנית בווינדוס שנמצאת בתיקיית המערכת, והיא מראה את כל הכרטיסים שיש למשתמש הזה בזיכרון, שאיתם הוא יכול להזדהות מול משאבי הרשת.
13. אותו דבר בעזרת הכלי המיוחד: אם ניכנס אל הכלי המיוחד, שיש לנו אותו בתיקיית ההורדות במחשב הקורבן כי הם עשו לנו טובה ושמו אותו בפנים, נוכל להריץ בתוכו את הפקודה של מודול הקרברוס עם פונקציית הרשימה, ונראה את אותו כרטיס שיש לנו בזיכרון.
14. סיכום והצעד הבא: ההרצאה הזאת הייתה על קרברוס ועל התחברות לאתר האימונים דרך VPN מתוך ווינדוס, אבל הכי חשוב שהוסבר הרעיון של הזדהות עם כרטיסים במקום שם וסיסמה ב-Active Directory. בהרצאה הבאה נייצר כרטיס כזה מזויף.
בשיעור הבא נעסוק בנושא ביצוע התקפת Golden Ticket על AD.
בסוף השיעור התחברנו אל רשת האימונים מווינדוס בעזרת VPN, התחברנו אל הקורבן ב-SSH ובדקנו בשתי שיטות אילו כרטיסי הזדהות כבר קיימים בזיכרון התחנה.
SR12886HE