PracticU

הסבר על Kerberos
אימות ב-Active Directory

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › הסבר על Kerberos אימות ב-Active Directory
מילון מושגים:
Kerberos - פרוטוקול אימות המבוסס על כרטיסים (tickets), המשמש ברשתות Active Directory לאימות מאובטח של משתמשים ושירותים.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
פרוטוקול - מערכת כללים מוסכמת שקובעת כיצד מכשירים או תוכנות מתקשרים ומחליפים מידע, למשל HTTP או TCP.
שם משתמש - מזהה ייחודי שמשתמש מזין כדי להזדהות במערכת, לרוב יחד עם סיסמה.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.
הצפנה - המרת מידע לצורה בלתי קריאה בעזרת מפתח, כך שרק מי שמחזיק במפתח המתאים יכול לפענח ולקרוא אותו.
TGT - כרטיס שמנפיק שרת האימות ב-Kerberos, שבעזרתו המשתמש מבקש גישה לשירותים בלי להזדהות שוב בכל פעם.

הסבר על Kerberos אימות ב-Active Directory

בשיעור זה אנו לומדים את פרוטוקול Kerberos, פרוטוקול האימות הראשי של וינדוס בארגון, ומפרקים את הפאקט הראשון שלו, בקשת שירות האימות, מבינים את כל חלקיו וגם כיצד תוקפים אותו.
נושאי הסיכום המוצגים בשיעור:
1. מהו Kerberos: פרוטוקול האימות שבאמצעותו בקר הדומיין מאמת את המשתמשים בארגון, והוא פרוטוקול ברירת המחדל של וינדוס, ורק כאשר הוא אינו פועל חוזרים לשיטה הישנה של שם משתמש וסיסמה.
2. הפאקט הראשון, בקשת האימות: המשתמש שולח אל השרת בקשת שירות אימות שבתוכה שם המשתמש וחותמת זמן של השעה הנוכחית, שהמשתמש מצפין בעזרת ההאש של הסיסמה שלו.
3. מטרת חותמת הזמן המוצפנת: היא מאפשרת לשרת לדעת שמדובר במשתמש האמיתי, מכיוון שרק הוא הצליח להצפין את השעה בעזרת ההאש הנכון, ובדרך גם מונעת התקפות שידור חוזר, מכיוון שאם השרת מקבל שני פאקטים מאותו משתמש עם אותה חותמת זמן בדיוק, הוא מסיק שמישהו תפס פאקט על הכבל ושידר אותו שוב.
4. בדיקת השרת: השרת מוציא ממסד הנתונים שלו את הסיסמה של המשתמש, פותח את ההצפנה של חותמת הזמן, ואם הסיסמה פתחה את ההצפנה והשעה שהתקבלה נכונה וטרייה, כלומר לא עברו יותר מחמש דקות, מאשר את המשתמש ומחזיר לו אישור שעבר עימות בצורת טיקט.
5. למה אי אפשר לזייף: תוקף יכול לראות את הפאקט כשהוא עובר על הכבל, אך אינו מסוגל לשנות אותו או לזייף אותו, מכיוון שחותמת הזמן מוצפנת בעזרת הסיסמה של המשתמש שהתוקף אינו מכיר, ולכן אינו יכול להצפין אותה מחדש.
6. הצפנה ולא האש חד כיווני: כאן משתמשים בהצפנה רגילה שניתן לעשות עליה פעולה הפוכה, והסיבה היא שהשרת חייב לדעת את המקור שהוצפן, כלומר את השעה המדויקת שהמשתמש התחיל בה את העימות, ומכיוון שהשרת אינו יודע את חותמת הזמן המקורית הוא אינו יכול לחשב האש בעצמו ולהשוות, ולכן משתמשים בהצפנה רגילה.
7. הזדמנות לתוקף: מכיוון שמדובר בהצפנה שניתן לעשות עליה פעולה הפוכה, תוקף יכול לתפוס את הפאקט ולעבור מילה מילה במילון של סיסמאות ולנסות לפתוח את ההצפנה עם כל סיסמה אפשרית, וזו אחת ההתקפות המרכזיות על Kerberos.
8. העימות המקדים הוא אופציונלי: ניתן לבטל בניהול המרכזי של Active Directory את החלק הזה של חותמת הזמן המוצפנת, מכיוון שהוא מוגדר כעימות שלפני העימות ויש בחשבון המשתמש אפשרות לבטל את דרישתו, אך בפועל איש אינו עושה זאת כי הוא מוסיף רבות לאבטחה, מונע שידור חוזר וחוסך מהשרת עבודה עם גורמים שאינם יודעים כלל את הסיסמה.
9. התנהגות וינדוס בפועל: בניתוח פאקטים ניתן לראות שווינדוס בגרסאות השונות שולח תחילה פאקט בלי החותמת המוצפנת, השרת דוחה אותו ודורש עימות מקדים, ואז המחשב שולח שוב את הבקשה, הפעם עם החותמת המוצפנת.
10. מרכיבי הבקשה הנוספים: הבקשה מכילה גם שם שירות שמציין מה המשתמש מבקש לקבל, כאן הטיקט הראשוני של קרברוס, וגם מספרים אקראיים שמשמשים מזהה של הבקשה, כדי שהלקוח יוכל לשייך את התשובה שחוזרת אל בקשה מסוימת כשמבצעים מספר פניות במקביל, והמספר האקראי חוזר מהשרת מוצפן בעזרת ההאש של המשתמש.
11. טיקטים במחשב המשתמש: העימות אינו חייב לקרות רק בהתחברות, בפקודת הצגת הטיקטים של קרברוס רואים שבהתחלה אין שום טיקט, ורק לאחר גישה למשאב כלשהו ברשת מתקבלים טיקטים, ואפשר גם למחוק את הטיקטים מהזיכרון של התחנה, ובגישה הבאה למשאב יבוצע התהליך מחדש.
לסיכום, בשיעור זה למדנו את השלב הראשון של פרוטוקול Kerberos, הבנו את מטרת החותמת המוצפנת שמאמתת את המשתמש ומונעת שידור חוזר, למדנו מדוע נעשה שימוש בהצפנה רגילה ולא בהאש חד כיווני, הבנו שבגלל זה קיימת אפשרות לתקוף את הפאקט על ידי מעבר על מילון סיסמאות, וראינו שהעימות המקדים הוא אופציונלי אך חיוני לאבטחה.
בשיעור הבא נעסוק בנושא הסבר על Kerberos - TGT.
SR12911HE

פרקי ההרצאה: הסבר על Kerberos אימות ב-Active Directory

  1. 00:00

    Kerberos כפרוטוקול ברירת המחדל

  2. 00:39

    הגנה מפני Replay Attack עם Timestamp

  3. 01:18

    אימות הבקשה בשרת והחזרת Ticket

  4. 02:15

    למה הצפנה רגילה ולא Hash

  5. 02:49

    התקפות מילון על הפאקט הראשון

  6. 03:25

    ביטול Pre-authentication בחשבון יוזר

  7. 04:40

    שדות SPN ו-Nonce בבקשה

תמלול ההרצאה: הסבר על Kerberos אימות ב-Active Directory

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Kerberos אימות ב-Active Directory» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:22

    לשם וסיסמה הרגילים אז איך עובד הקרברוס הזה? שלב ראשון, המשתמש שולח קרברוס Authentication Service Request, בקשה לאימות בתוך הבקשה הזאת הוא מכניס את היוזרניים שלו ואת הטיימסטאפ טיימסטאפ זה שעה נוכחית ואת השעה הנוכחית הוא מצפין עם ההאש של הסיסמה ככה השרת יודע שזה היוזר האמיתי כי הוא הצליח

  3. 00:46

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

  4. 01:18

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

  5. 01:46

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

  6. 02:12

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

  7. 02:36

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

  8. 03:03

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

  9. 03:25

    את הסיסמה הנכונה שתפתח לנו את הטיימסטאמפ. ככה מנסים לפרוץ קרברוס, זו אחת ההתקפות על קרברוס. דרך אגב, החלק הזה של טיימסטאמפ שמוצפן עם הסיסמה של היוזר, אפשר בכלל לבטל ב-Active Directory, בניהול המרכזי, כי זה נחשב pre-authentication, עימות מקדים למה שיבוא אחרי זה, ויש אופציה בחשבון של

  10. 03:47

    היוזר לשים כזה v שמבטל בכלל את הצורך ב-pre-authentication הזה. טיימסטמפ שמוצפן עם הסיסמה של יוזר. האמת שבחיים לא ראיתי מישהו שביטל את זה, אבל תדעו שזה אופציונלי, זה לא החלק המרכזי בעימות.

  11. 04:03

    בפועל הוא מוסיף המון המון המון מנקודת מבט של אבטחה באפשרות לפרוץ את הפרוטוקול. דרך אגב, בתוך הפקט טרייסר ממש רואים את זה, ממש רואים שהפקט הראשון שווינדוס שולח, הוא לא שם שם את הטיימסטמפ שמוצפן עם הסיסמה של היוזר, לא יודע למה, Windows 10 11 גם הווינדוסים הישנים לא שמים את החלק הזה בפאקט הראשון והשרת מסרב להם

  12. 04:30

    הוא ממש אומר להם שחייבים לעשות pre authentication ואז הקליינט Windows 10 11 מנסה שוב לשלוח פאקט אבל הפעם עם טיימסטמפ מוצפן טוב בואו נתקדם ונמשיך עם הפאקט הראשון יש שם עוד חלקים ה-spn הזה אומר שאני רוצה לקבל שירות האימות של קרברוס TGT, זה SPN הזה, זה אומר מה אני רוצה לקבל ממך, איזה סוג של שירות.

  13. 04:56

    User Nonsense, זה סתם מספרים אקראיים שמשמשים כמזהה של הבקשה הזאת, כדי שנוכל לשייך את התשובה של השרת לבקשה הספציפית הזאת שהייתה.

  14. 05:08

    תחשבו שהמחשב שלי יכול להיות במקביל לעשות כמה פניות לשרת, ככה אני מוודא שהתשובה

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

ההרצאה הקודמת: שיתוף תיקיות בשרת 2022 Windows Server

ההרצאה הבאה: הסבר על Kerberos - TGT

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

  • הסבר על Active Directory
  • מבוא Active Directory
  • הגנה על AD - Active Directory
  • התקנת 2019 Active Directory - חלק 1

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

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