לדלג לתוכן

מה זה Kerberoasting - כשבקשה לגיטימית הופכת לדרך לגנוב סיסמאות

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

רקע קצר על Kerberos

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

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

אז איפה נכנס Kerberoasting

הנקודה הקריטית היא זו - כל משתמש רגיל בדומיין, גם ללא הרשאות מיוחדות, יכול לבקש כרטיס שירות עבור כל חשבון שירות שרשום בדומיין עם Service Principal Name (SPN). זו לא חולשה, זו התנהגות תקנית ומתועדת של הפרוטוקול.

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

למה זה כל כך מסוכן בפועל

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

מעבר לזה, חשבונות שירות רבים מחזיקים הרשאות רחבות בהרבה מהנדרש בפועל - לפעמים אפילו הרשאות מנהל דומיין - כי זה "פתר בעיות" בזמנו והאף אחד לא חזר לצמצם את זה. תוקף שמצליח לפצח האש של חשבון שירות כזה עלול לקבל בבת אחת גישה נרחבת לרשת כולה.

למה קשה כל כך להתגונן מפני זה לגמרי

אי אפשר "לתקן" את זה כמו חולשת תוכנה רגילה, כי ההתנהגות הזו היא חלק אינטגרלי מהפרוטוקול. הדרך היחידה להתגונן היא הקשחה - להשתמש בסיסמאות ארוכות ומורכבות מאוד לחשבונות שירות (רצוי מעל עשרים וחמישה תווים, נוצרות אקראית), לצמצם הרשאות של חשבונות שירות למינימום ההכרחי, ולעבור לחשבונות שירות מנוהלים (gMSA) שמחליפים את הסיסמה שלהם אוטומטית ובאופן תדיר.

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

איך לומדים לבצע את זה נכון

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

בקורס בודק חדירות שלי יש פרק ייעודי לתקיפת Kerberoasting, כחלק מרצף שלם שמתחיל בהבנת NTLM ו-Kerberos, ומתקדם דרך חילוץ האשים ועד טכניקות מתקדמות יותר כמו זיוף כרטיסים.

לסיכום

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

בואו לדבר על טכניקות תקיפה נוספות בקהילה שלנו.

הצטרפו לקהילה בדיסקורד