מילון מושגים:
NTLM - פרוטוקול אימות ותיק של מיקרוסופט המבוסס על ערכי האש של סיסמאות, שקדם ל-Kerberos.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.
דומיין קונטרולר - שרת בדומיין של Active Directory שמאמת משתמשים ואוכף מדיניות והרשאות ברשת הארגונית.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
אדמיניסטרטור - משתמש בעל הרשאות הניהול הגבוהות ביותר במערכת, שיכול לשנות הגדרות, להתקין תוכנות ולנהל משתמשים אחרים.
הסבר על NTLM Hash
ועל התקפת Pass-The-Hash
בשיעור זה אנו לומדים איך עובד NTLM, איך פורצים אותו ואיך מגנים עליו, ונכנסים עמוק עד לרמת הפאקטים שלו כדי להבין מה באמת קורה בפנים. לפני הכל אנו מסדירים בלבול נפוץ בין סוגי ה-hashים השונים.
נושאי הסיכום המוצגים בשיעור:
1. הבלבול בשמות: ל-hashים המקומיים נוהגים בטעות לקרוא NTLM hash, אך השם הנכון הוא NT hash, כאשר NT הוא New Technology, כלומר כל ה-Windows המודרני. חשוב להפריד בין hash מקומי שיושב בדיסק לבין hash שעובר ברשת, שהם שני דברים שונים לגמרי, וכאשר מדברים על NTLM v2 מדובר בגרסה של פרוטוקול העימות ברשת, פרוטוקול בדיקת שם משתמש וסיסמה.
2. מהו ה-hash המקומי: זהו ערבול חד-כיווני של הסיסמה המקורית של המשתמש, והוא הפריט שנשמר בפועל בדיסק, בקובץ SAM במחשב המקומי או בקובץ ntds.dit בשרת המרכזי בדומיין קונטרולר, במקום לשמור את הסיסמה בצורה גלויה.
3. שליפת ה-hash מהדיסק: אנו רואים שאפשר לשלוף את קובץ ה-SAM בעזרת פקודת reg save המובנית בכל Windows, וברגע שגנבנו את ה-hash של הסיסמה, מבחינת המערכת זה כמעט כאילו גנבנו את הסיסמה עצמה, כי ה-hash מספיק כדי להזדהות מול שירותים רבים.
4. Pass-The-Hash: בעזרת כלים כמו Mimikatz והפקודה sekurlsa לביצוע pass-the-hash, התוקף לוקח את ה-hash שחילץ מהמחשב ומזדהה איתו בחיבורי רשת, טוען שהוא המשתמש שגנב לו את ה-hash, והצד השני מאמין לו, כיוון שגם אצלו שמור אותו hash.
5. למה הצד השני מאמין: מזה שנים רבות אף אחד לא שומר את הסיסמה המקורית בדיסק, מפחד שיגנבו את הדיסק מהשרת, ולכן כל השרתים שומרים אצלם את הסיסמה לאחר הערבול. הערבול הוא חד-כיווני ואי אפשר לעשות לו reverse לסיסמה המקורית, ולכן כשהתוקף מציג את אותו hash, מבחינת השרת יש לו את אותה סיסמה.
6. Single Sign-On וה-LSASS: רוב השירותים יודעים להזדהות עם ה-hash כאמצעי זיהוי כדי לחסוך מהמשתמש הקשת סיסמה בכל פעם. מכניסים סיסמה פעם אחת בכניסה ל-Windows, ותהליך ה-LSASS, ה-Local Security Authority, שאפשר לראות ב-Task Manager, זוכר בתוכו את ה-hashים של כל המשתמשים שנכנסו למחשב ועושה במקומם עימות מול השרתים.
7. דרישת גישה מקומית: גניבת ה-hash מתוך הזיכרון אינה אפשרית דרך האזנה ברשת, והתוקף חייב גישה לתוך המחשב עצמו, בין אם ב-CMD מרוחק ובין אם פיזית, כדי לבצע את השליפה.
8. טריק ה-dump דרך ממשק גרפי: ב-Task Manager אפשר לעשות קליק ימני על התהליך ולבחור create dump file, שמצלם את כל הזיכרון של התהליך. צילום זיכרון של תוכנה רגילה מותר ועובר בשקט, אבל dump של LSASS הוא פעולה מסוכנת שהאנטי-וירוס תופס מיד כהתנהגות חריגה. חשוב לציין שב-Windows 11 ההגנות נגד ה-dump הזה כבר מובנות ומופעלות אוטומטית, בעוד שבגרסאות קודמות היו הגנות שהיו צריך להפעיל ידנית.
9. Dump דרך שורת פקודה: הטריק של ה-Task Manager דורש גישה לממשק גרפי של המשתמש ואינו אפשרי בשורת פקודה. בשליטה דרך CMD אפשר להשתמש ב-Mimikatz, וכן בכלי procdump של מיקרוסופט, שנרכש מחברת Sysinternals ומסוגל לבצע dump לכל קובץ exe שמבקשים, כולל LSASS, אלא אם קיימת הגנה מיוחדת נגד dumps שלו. מניעת dump של LSASS היא בדיוק התפקיד של צוות ההגנה הכחול.
10. הסלמה לדומיין-אדמין והגבלה חשובה: בתוך ה-LSASS יושבים ה-hashים של כל מי שהתחבר למחשב מאז ה-restart האחרון, ואם אדמיניסטרטור דומיין נכנס לתחנה לתקן משהו, הסיסמה שלו נשמרת שם גם כן. התוקף מחפש תחנה שבה הוא אדמין מקומי, ממתין שדומיין-אדמין ייכנס אליה, גונב את ה-hash מה-LSASS, ועושה איתו pass-the-hash מול שרתים ברשת וכך הופך בעצמו לדומיין-אדמין. מדגישים שהתקפת Pass-The-Hash המפורסמת עובדת רק עם ה-hashים שנשלפו מקומית מהתחנה, מהדיסק או מהזיכרון של LSASS, ולא עם ה-hashים שעוברים ברשת.
סיכמנו את ההבדל בין NT hash מקומי לבין עימות NTLM ברשת, הבנו למה גניבת hash שווה כמעט כמו גניבת סיסמה, ראינו איך תהליך ה-LSASS מזכיר לנו את הסיסמאות ואיך שולפים ממנו, והדגשנו שהתקפת Pass-The-Hash פועלת רק על hashים מקומיים. בשיעור הבא נעסוק בנושא פרוטוקול Protocol NTLM. זה הכל, תודה רבה.
בשיעור הבא נעסוק בנושא פרוטוקול Protocol NTLM.
SR12929HE