PracticU

התקפת Pass-The-Ticket
חלק 2 - קבלת TGT עם Kekeo

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › התקפת Pass-The-Ticket חלק 2 - קבלת TGT עם Kekeo
מילון מושגים:
TGT - כרטיס שמנפיק שרת האימות ב-Kerberos, שבעזרתו המשתמש מבקש גישה לשירותים בלי להזדהות שוב בכל פעם.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
חשבון משתמש - זהות במערכת שמורכבת משם משתמש והרשאות, ומאפשרת למשתמש להתחבר ולפעול.
GitHub - שירות ענן לאחסון מאגרי קוד מבוססי Git, המאפשר שיתוף פעולה, מעקב גרסאות וניהול פרויקטים.
דומיין קונטרולר - שרת בדומיין של Active Directory שמאמת משתמשים ואוכף מדיניות והרשאות ברשת הארגונית.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.

התקפת Pass-The-Ticket
חלק 2 - קבלת TGT עם Kekeo
בשיעור זה אנו ממשיכים את התקפת Pass-The-Ticket ומגלים שקיימים שני סוגים של TGT, ושתיתכן נוכחות של שניהם בו בזמן. על הדרך אנו לומדים על מנגנון ה-Delegation ב-Active Directory ומשלימים את ההתחזות למשתמש מתוך תחנת התוקף.
נושאי הסיכום המוצגים בשיעור:
1. למה צריך TGT שני: אם משתמש נמצא ברשת שאין לו גישה ישירה לרשת אחרת, הוא יכול לבקש TGT מיוחד, טיקט האצלת סמכות, לתת אותו לשרת אחר ושזה ילך בשמו ויבצע את העימות מול שירותים אחרים.
2. הגדרות ה-Delegation ברמת השרת: ב-Active Directory Users and Computers, בטאב ה-Delegation של מחשב, אפשר לאפשר לשרת לפעול בשמם של משתמשים, בין אם לכל השירותים, שנקרא Unconstrained Delegation, ובין אם לשירותים ספציפיים לפי SPN, שנקרא Constrained Delegation. כברירת מחדל האפשרות כבויה, ואנו משאירים אותה כך, כי מה שמעניין אותנו הוא רק לגנוב את ה-TGT.
3. ההגדרה ברמת המשתמש: בטאב המיוחד של חשבון משתמש קיים סימון שאומר שהחשבון רגיש ואינו יכול לעבור Delegation, כלומר אסור להנפיק עבורו TGT להעברה. אבל ברירת המחדל היא שהסימון אינו מופעל, ולפי ההערכה המוצגת כמעט אף מנהל רשת לא מכיר אותו ולא נוגע בו, ולכן גניבת ה-TGT אפשרית.
4. הטריק המרכזי: התוקף שפרץ למשתמש מבקש TGT ל-Delegation בטענה שהוא רוצה להעביר אותו לשרת אחר שיזדהה בשמו, אבל בפועל לוקח את ה-TGT הזה לעצמו ומתחיל להזדהות בשמו של המשתמש. זה כל הטריק.
5. הכלי Kekeo: Mimikatz אינו יודע לבצע את הפעולה הזאת, ולכן פונים ל-Kekeo, כלי שנכתב על ידי אותו מפתח ודומה מאוד ל-Mimikatz. הוא נבנה כפרויקט נפרד בשל רישיונות של ספריות חיצוניות, וקוד המקור שלו זמין ב-GitHub להורדה ושינוי. מורידים אותו, מחלצים ומריצים מתוך התיקייה, תוך הדגשה שאנו עובדים כמשתמש פשוט בלי אפשרות לרוץ כאדמיניסטרטור.
6. צפייה בטיקטים ב-Kekeo: רשימת הטיקטים ב-Kekeo מראה שה-Session Key של ה-TGT מוצג כאפסים, בעוד שלטיקטים של שירותים כמו שיתופים המפתח גלוי. Windows מסתיר רק את ה-Session Key של ה-TGT, ומציע שלכל מה שקשור לדומיין קונטרולר יפנו אליו, והוא יארגן את הטיקט בלי לחשוף את הסוד.
7. קבלת TGT ל-Delegation: מריצים ב-Kekeo בקשה של TGT ל-Delegation, והכלי מקבל עבורנו טיקט ושומר אותו בקובץ בפורמט kirbi, שמכיל גם את הטיקט וגם את הסוד המקושר אליו. מוסבר ששמירת קובץ kirbi על הדיסק של הקורבן מסוכנת, כי קיימות מערכות התראה שקופצות על קובץ kirbi חדש, ולכן עדיף להציף הכל למסך במקום לשמור בדיסק. מעתיקים את הקובץ אל תחנת התוקף, בלי שידענו בשום שלב את הסיסמה של המשתמש.
8. הזרקת הטיקט עם Mimikatz: בתחנת התוקף מוודאים שהאנטי-וירוס כבוי, מורידים את Mimikatz המקומפל מה-Releases ב-GitHub, מחלצים ומריצים כמשתמש פשוט. מציגים קודם בעזרת klist שאין לנו אף טיקט בזיכרון, כיוון שאנו בכלל לא חברים בדומיין, ואז מריצים פקודה אחת של pass-the-ticket עם שם הקובץ, והטיקט מוזרק. בקובץ klist כבר רואים את ה-TGT של המשתמש האחר.
9. שני סוגי TGT בפעולה: שימו לב שה-TGT המוזרק אינו מסומן כ-initial, בניגוד ל-TGT המקורי של המשתמש בתחנה שלו. זהו טיקט הנפקה משני שנועד להעברה, אך שרתים מוכנים לקבל אותו ו-Windows עובד איתו באופן רגיל, ולכן הוא מספיק לגמרי להתקפה.
10. התוצאה והערה חשובה על run as: התוקף, שבכלל אינו חבר בדומיין, עושה dir על תיקיות בשרת הקבצים, מתחבר למסד הנתונים ב-Windows Authentication ומטייל בו, הכל בשמו של המשתמש שגנב ממנו את ה-TGT ובלי לדעת את סיסמתו. הערה חשובה, הרצת CMD עם run as administrator מתנהגת כמו משתמש נפרד ב-Windows, עם לוגין שונה וטיקטי קרברוס משלו, ולכן הטיקטים שהוזרקו אינם זמינים בו והגישה נכשלת. מומלץ לעבוד בלי run as administrator כדי שהטיקטים יעבדו בכל התהליכים וגם הממשק הגרפי הרגיל יהיה זמין. בשיעור הבא נראה כיצד מתגוננים מפני התקפה זאת.
סיכמנו את השלמת התקפת Pass-The-Ticket, החל מהבנת מנגנון ה-Delegation וההגדרות שמאפשרות אותו, דרך קבלת TGT ל-Delegation בעזרת Kekeo והעברתו אל תחנת התוקף, ועד להזרקתו ב-Mimikatz והתחברות מוצלחת לשרת הקבצים ולמסד הנתונים בשמו של המשתמש שנפרץ. בשיעור הבא נעסוק בנושא הגנה על AD עם קבוצת
Protected Users. זה הכל, תודה רבה.
בשיעור הבא נעסוק בנושא הגנה על AD עם קבוצת
Protected Users.
SR12951HE

פרקי ההרצאה: התקפת Pass-The-Ticket חלק 2 - קבלת TGT עם Kekeo

  1. 00:00

    שני סוגי הכרטיסים

  2. 00:42

    הצורך בהאצלת סמכות

  3. 01:37

    הגדרת רגישות החשבון

  4. 02:33

    הגדרת ההאצלה בשרת

  5. 03:40

    הכרת הכלי Kekeo

  6. 04:37

    בחינת הכרטיסים הקיימים

  7. 05:33

    קבלת כרטיס ההאצלה

תמלול ההרצאה: התקפת Pass-The-Ticket חלק 2 - קבלת TGT עם Kekeo

הטקסט המלא של הדקות הראשונות בהרצאה «התקפת Pass-The-Ticket חלק 2 - קבלת TGT עם Kekeo» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בסרטון זה אנחנו ממשיכים התקפת פס דה טיקט ובסרטון הזה אנחנו נגלה שיש שני סוגי TGT ויש מצב שיש לי את שניהם בו זמנית האמת אני חייב לבקש עוד TGT אם אני רוצה לתת זכות לשרת אחר להזדהות בשמי מול שרתים אחרים תחשבו שהיוזר הזה נמצא בבית או באיזושהי רשת שאסור לו לגשת לרשת אחרת בצורה ישירה אז אני יכול לקחת tgt מיוחד לתת אותו לאיזשהו שרת אחר והשרת אחר הזה

  2. 00:36

    ילך בשמי ויבצע עימות. כדי שהדבר הזה יעבוד צריך לתת אישור גם ברמת היוזר וגם ברמת השרת. אנחנו עכשיו בדומיין קונטרולר נכנסים לאדוק Active Directory Users and Computers ואנחנו יכולים לראות פה נניח שבשרת ווב יש טאפ של delegation, האצלת סמכות ואני יכול להגיד לשרת ווב הזה שאני מאפשר לו לפעול בשמם של

  3. 01:00

    היוזרים לבצע דיליגיישן לכל השירותים שקיימים או לציין לו ב-spn לאיזה שירות בדיוק אני מרשה לו זה נקרא קונסטריינט דיליגיישן דיליגיישן מותנה מוגבל או אנקונסטריינט דיליגיישן כדי שאנקונסטריינט דיליגיישן הזה יעבוד השרת הזה web1 הזה צריך לקבל מהיוזר את הtgt שלו ואז עם ה-TGT הזה הוא ילך

  4. 01:26

    ויזדהה בשמו מול הסרוויסים, יקבל את הסרוויס טיקט וילך להזדהות. אז כדי שהסיפור הזה יעבוד במיקרוסופט עשו פה הרשאה מיוחדת ברמת הקומפיוטר שמותר לו להשתתף בסיפור הזה של דיליגייט וכברירת מחדל אסור לו וגם ברמה של יוזר נניח ביוזר דוד פה באקאונט בטאב המיוחד הזה יש V שאומר שהאקאונט הזה החשבון הזה של דוד היא

  5. 01:52

    סנסיטיב מאוד מאוד רגיש ולא יכול לעבור delegation זה אומר שאם אני אשים את ה-v הזה אסור יהיה להנפיק tgt מיוחד בשביל להעביר לשרת אחר אבל ברירת מחדל שאין פה v מה זה אומר שאין פה v זה אומר שמותר להנפיק tgt מיוחד כדי להעביר את זה לשרת אחר אז עוד פעם כדי שה delegation הזה יעבוד כדי ששרת אחר יוכל להזדהות בשמו של דוד נניח צריך שלא יהיה פה את ה-v הזה שהוא לא יהיה

  6. 02:21

    sensitive וכברירת מחדל אין אותו ורוב מנהלי הרשת לא יודעים מה זה ולא נוגעים בזה והדבר השני שצריך שבקומפיוטר יהיה פה בדיליגיישן את האופציה הזאת trust this computer for delegation אנחנו לא נוגעים בברירת מחדל אנחנו משאירים את זה שאין דיליגיישן למה אנחנו משאירים שאין דיליגיישן אני משאיר הכל כברירת מחדל כי אני לא באמת הולך להפעיל את כל המערכת הזאת של

  7. 02:45

    שרת מזדהה בשמו של יוזר מול שרת אחר זה לא מעניין אותי כרגע אני עושה don't trust this computer for delegation כמו שזה בברירת מחדל למה? כי כל מה שמעניין אותי זה רק לגנוב את ה-TGT.

  8. 02:58

    ואין לי בעיה לגנוב TGT, כי ה-V הזה פה למטה, שאף אחד לא יודע מה הוא אומר ואף אחד לא נוגע בזה.

  9. 03:06

    Account is sensitive and cannot be delegated. אני אומר לך ש-99% ממנהלי הרשת לא יודעים מה זה ה-V הזה ולא נוגעים בזה. משאירים את זה כברירת מחדל.

  10. 03:15

    השארתם את זה כברירת מחדל, אני פרצתי ליוזר הזה, אני יכול לקבל את ה-TGT כאילו אני רוצה להזדהות מול שרת אחר, כאילו אני רוצה לתת אותו לאיזשהו שרת אחר ברשת שילך בשמי הלאה, אבל בפועל אני אקח את ה-TGT הזה ואני אתחיל להזדהות בשמו של יוזר.

  11. 03:32

    זה כל הטריק. טוב, בואו נעשה את זה. אנחנו מגיעים לתחנה, לתחנה של דאריט. הבעיה שלי שמימיקאץ לא יודע לעשות את הפעולה הזאת, אז אני סוגר מימיקאץ ואני פותח תוכנה אחרת שנקראת KKO וזה של אותו בחור.

  12. 03:46

    זה אותו ג'נטל וויקי כתב גם תוכנה שדומה מאוד למימיקאץ, משתמשת באיזשהן ספריות חיצוניות שצריך לקנות אותן אם רוצים לשנות משהו בזה אז הוא עשה את זה כפרויקט נפרד אז אותו בחור כתב עוד כלי אני מוריד אותו וגם כאן יש קוד מקור שלו אז אין שום בעיה להוריד אותו ולשנות אותו אני מחלץ אותו פותח את הזיפ נכנס פנימה לx64 הנה יש לי את הקיקאו הזה שוב אני לא יכול לעשות run as אדמיניסטרטור

  13. 04:16

    אין לי את האדמיניסטרטור אתם רואים run anyway לא יעזור לי כי הוא יבקש ממני שם וסיסמה. אני מדגיש לכם שאני עובד כיוזר פשוט.

  14. 04:24

    ועכשיו גם כאן אני רואה את ה-carverous list הזה, הוא מאוד מאוד דומה ל-mimicats, אותו בחור עשה את זה פשוט, הוא השתמש בכלים מוכנים, אז זה נראה יותר יפה, פשוט מבחינת רישיון הוא היה חייב להפריד את זה לפרויקט נפרד.

  15. 04:37

    ואנחנו רואים פה שוב שה-TGT, ה-encryption key שלו, ה-session key שלו 0.0.0, לעומת זאת נניח טיקט של סיפס, של שיתופים, לי את האינקריפשן קי שלו זאת אומרת ווינדוס מסתיר ממני רק את הסשן קי של טי ג'י טי והוא אומר אם אתה רוצה משהו מטי ג'י טי אם אתה רוצה משהו מדומיין קונטרולר תפנה אליי לווינדוס

  16. 05:00

    ואני אארגן לך את הטיקט אתה לא צריך לדעת איך מאחורי הקלעים אני עושה את זה ומה הסיסמה הסודית מול דומיין קונטרולר טוב אז מה עושים אמרנו מבקשים עוד טיקט אחד זה נקרא דיליגיישן טיקט טי ג'י טי לדיליגיישן כאילו אני רוצה להציל סמכות לאיזשהו שירת אחר ללכת בשמי למקומות אחרים אז אני צריך את ה-TGT עם דיליגיישן הזה כי אני לא

  17. 05:22

    יכול להעביר את ה-TGT הרגיל ואני מקבל פה את הקובץ והוא נשמר בקירבי קירבי זה הפורמט ששומר גם את הטיקט וגם את הסיסמה הסודית שקשורה אליו הנה הקובץ הזה פה בהארדיסק וזה דרך אגב קצת מסוכן שאנחנו שומרים קובץ קירבי כי יש הרבה מערכות התראה שיודעות לקפוץ על קובץ קירבי חדש בהארדיסק לכן עדיף לפלוט הכל למסך ולא באמת לשמור בארדיסק את הקובץ הזה במחשב

  18. 05:49

    של הקורבן כדי שהאנטיווירוס לא יקפוץ עלינו. אז נעשה קופי לקובץ הזה. אנחנו כאקרים לוקחים את ה-TGT הזה, מגיעים ל-Windows 11, ושימו לב, אני כל הזמן הזה לא יודע את הסיסמה של user.

  19. 06:02

    אני לא יודע מה היא, לא הצלחתי לפרוץ את ה-hash. אני פשוט נכנסתי לתחנה, הרצתי רק פקודה אחת, TGT delegation מתוך קיקאו הזה, קיבלתי את הקובץ ולקחתי אותו לתחנה של האקר.

לקורס המלא: מבדקי חדירה ל‑Active Directory

ההרצאה הקודמת: התקפת Pass-The-Ticket - חלק 1

ההרצאה הבאה: הגנה על AD עם קבוצת - Protected Users

הרצאות קשורות מקורסים אחרים

  • התקפת CSRF
  • קבלת מידע בחזרה מ-Fragment
  • קבלת גישה למחשב הקורבן
  • הסבר על Pass Params ב-Flutter

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting