PracticU

הבדלים בין NTLM Hash לבין NTLMv2
הסבר נוסף

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › הבדלים בין NTLM Hash לבין NTLMv2 הסבר נוסף
מילון מושגים:
NTLM - פרוטוקול אימות ותיק של מיקרוסופט המבוסס על ערכי האש של סיסמאות, שקדם ל-Kerberos.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.
דומיין קונטרולר - שרת בדומיין של Active Directory שמאמת משתמשים ואוכף מדיניות והרשאות ברשת הארגונית.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
שיתוף - תיקייה או משאב שהועמדו לרשת כדי שמשתמשים אחרים יוכלו לגשת אליהם לפי הרשאות.
מדפסת - התקן פלט שמדפיס על נייר מידע דיגיטלי מהמחשב.
חתימה דיגיטלית - מנגנון מבוסס הצפנה שמוכיח את מקור המידע ושלא שונה בדרך, בעזרת המפתח הפרטי של החותם.
SMB - פרוטוקול של Windows לשיתוף קבצים ומדפסות ברשת ולגישה למשאבים מרוחקים.

הבדלים בין NTLM Hash לבין NTLMv2 - הסבר נוסף
בשיעור זה נעמיק בהבחנה החשובה בין hash של NTLM רגיל, זה שיושב בדיסק ומאפשר התקפת Pass the Hash, לבין Network NTLM הידוע כ NTLMv2, זה שעובר בתקשורת בכל עימות מול שרת מרוחק. הבנת ההבדל היא הבסיס להתקפות שבאות בהמשך, ובהן משתמשים ב hash שנתפס בלי לפענח אותו כלל, כשהסיסמה המקורית ארוכה מדי או שאינה נמצאת בשום מילון.
נושאי הסיכום המוצגים בשיעור:
1. נקודת הפתיחה: תפסנו תעבורה ו hash, אך איננו מצליחים לפוצח אותו ולמצוא את הסיסמה המקורית של המשתמש. השאלה היא מה אפשר לעשות עם hash כזה, והתשובה היא שאפשר להשתמש בו בלי לפענח אותו בכלל, וזה נושא ההרצאות הבאות.
2. שני סוגים של hashים שאין לבלבל: יש hashים שמאוחסנים בתוך הדיסק, בקובץ ה SAM של מחשב מקומי או בקובץ NTDS של שרת דומיין קונטרולר שמנהל את מתחם האבטחה, ואלה ה hashים של NTLM רגיל. יש hashים אחרים שעוברים ברשת בזמן עימות, ואלה ה Network NTLM, שהשם הנפוץ שלהם הוא NTLMv2. הם אינם אותם hashים.
3. חזרה על Pass the Hash: בהרצאות על mimikatz ראינו שפותחים CMD כמשתמש פשוט ומתחברים למשאב מרוחף תוך הזדהות בעזרת ה hash שהוצא מהדיסק או מהזיכרון, למשל ה hash של מנהל רשת שנתפס כשנכנס אל המחשב שלנו. מבחינת המערכת זה שקול לידיעת הסיסמה עצמה.
4. מדוע ה hash שווה ערך לסיסמה: שרתי Windows אינם שומרים את הסיסמה המקורית אלא רק את ה hash שלה, וגם קובץ ה SAM וגם שרת הדומיין מחזיקים אך ורק את ה hash. אף אחד לא מחזיק את הסיסמה הגולמית, ולכן מי שהוציא את ה hash מהזיכרון או מהדיסק כאילו הוציא את הסיסמה עצמה.
5. מה באמת עובר על הכבל: בעימות מול שרת מרוחק לעולם לא נשלח ה hash הקבוע של הסיסמה. על הכבל עובר Network NTLM, ובעבר התקיימה גם גרסה 1 שמתה מזמן, למעלה מעשר שנים, ואין בה עוד עניין. ההבדלים בין הגרסאות קטנים ולא נידונים כאן.
6. מהלך העימות ברשת: הקליינט שולח negotiate, בקשה לגשת אל תיקייה משותפת בשרת מרוחק, השרת עונה ב challenge, אתגר אקראי שמשתנה בכל פעם, הקליינט מצפין את האתגר בעזרת ה hash של הסיסמה שלו ומחזיר את התשובה, והשרת עצמו מצפין את אותו אתגר בעזרת ה hash שהוא מחזיק ומשווה את שתי התוצאות. תשובה תואמת פותחת את הדלת.
7. הצפנה מול ערבול: מזכירים את ההבחנה שההצפנה היא דו כיוונית, אפשר להצפין ולפתוח, ואילו hash הוא ערבול חד כיווני שאין להחזירו. מפתח ההצפנה בעימות הוא ה hash של הסיסמה ולא הסיסמה הגולמית, כי את ה hash שומרים בזיכרון השרת ואותו אפשר אפילו לגנוב משם בזמן שיושבים כאדמיניסטרטורים על המחשב.
8. מדוע ווינדוס עובד עם ה hash: מסיבה פרקטית של נוחות, כל פעם שהמשתמש לוחץ לחיצה כפולה על שיתוף ברשת הארגונית, ווינדוס מבצע בשבילו את כל העימות אוטומטית, ומכיוון שהוא מחזיק בזיכרון רק את ה hash ולא את הסיסמה המקורית, ההצפנה מתבצעת בעזרתו.
9. ההנחה האבטחתית שנשברה: ההנחה הייתה שגניבת ה hash מהזיכרון אינה מועילה לתוקף, כי קשה מאוד למצוא סיסמה רגילה שמניבה את אותו hash, ולכן גם אם יפרצו למחשב וישתלטו על כל הזיכרון, עדיין יהיה קשה להתחזות. בפועל ההתקפות שנלמדו עוקפות בדיוק את ההנחה הזאת.
10. איפה NTLM בשימוש: כל עימות שאינו קרברוס מתבצע דרך NTLM, וזה כמעט כל הזמן, בכל התחברות אל כתובת IP, אל מדפסת או אל שיתוף, ובמיוחד במקומות שאין בהם ניהול מרכזי או שמתחברים אליהם לפי כתובת ולא לפי שם.
11. ההתקפה של אדם באמצע: התוקף עומד באמצע התקשורת כמו ראוטר, מעביר את ה negotiate אל השרת, מעביר את ה challenge אל הקליינט כפי שהגיע, הקליינט מצפין אותו בעזרת ה hash שלו בלי לדעת שמישהו עומד באמצע, והתוקף מעביר את התשובה הלאה אל השרת.
12. השלמת ההתקפה: השרת מחזיר לתוקף אישור גישה, התוקף עוצר את החבילה של אישור הגישה ושולח לקליינט הודעה שהשרת אינו זמין, ובזמן הזה הוא נכנס אל השרת בעצמו. השרת סבור שהעימות התבצע מול הלקוח, אך בפועל כל העימות התבצע מול התוקף, וזה עובד גם על ווינדוס החדש ביותר עם כל העדכונים.
13. ההגנה הנדרשת: כדי להתגבר על ההתקפה הזאת יש להפעיל בווינדוס חתימה דיגיטלית על SMB, על התחברות לשיתופים. ההגדרה מופעלת בברירת מחדל בשרתים אך לא בתחנות העבודה, ומרוב מנהלי הרשת אינם מכירים אותה בכלל, ולכן התחנות נותרות חשופות להתקפה.
14. סיכום ההבדלים: ה NTLM hash הרגיל הוא ה hash הקבוע של הסיסמה שאינו משתנה כל עוד הסיסמה לא הוחלפה, ותפיסתו שקולה לתפיסת הסיסמה המקורית עצמה, ועמו עובדת התקפת ה Pass the Hash. ה NTLMv2 הוא האתגר המוצפן שמשתנה בכל התחברות ברשת, ולכן אין בו שימוש ל Pass the Hash, כי ה challenge משתנה בכל פעם.
בשיעור זה הובהר ההבדל בין hash ה NTLM הקבוע שיושב בדיסק ובזיכרון ומשמש כמו סיסמה, לבין ה NTLMv2 שהוא האתגר המוצפן שמשתנה בכל עימות, נראה מהלך העימות כולו, מנגנון ההתקפה של אדם באמצע שמפעיל את ה hash של הלקוח לטובת התוקף, וההגנה של חתימה דיגיטלית על SMB שאינה מופעלת בברירת מחדל בתחנות העבודה. בשיעור הבא נתחיל לממש את ההתקפות האלה, וקיימים סקריפפים מוכנים שעושים את כל העבודה.
SR12570HE

פרקי ההרצאה: הבדלים בין NTLM Hash לבין NTLMv2 הסבר נוסף

  1. 00:00

    הכרת התקפת NTLM Relay

  2. 00:38

    האשים בדיסק מול הרשת

  3. 01:37

    חזרה על Pass the Hash

  4. 02:31

    האש שקול לסיסמה

  5. 03:25

    האש הרשתי NTLMv2

  6. 04:22

    תהליך העימות ברשת

  7. 05:20

    הצפנת האתגר בשרת

  8. 05:54

    סיכום זרימת העימות

תמלול ההרצאה: הבדלים בין NTLM Hash לבין NTLMv2 הסבר נוסף

הטקסט המלא של הדקות הראשונות בהרצאה «הבדלים בין NTLM Hash לבין NTLMv2 הסבר נוסף» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:13

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

  3. 00:28

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

  4. 01:03

    שימו לב, יש האשים שמאוחסנים בתוך ה-hard disk, בתוך ה-SAM file או בתוך ה-hard disk של שרת שנקרא NTDSD בתוך דומיין קונטרולר, שרת שמנהל את המתחם אבטחה שלי.

  5. 01:16

    שם בתוך ה-hard disk יושבים האשים שנקראים NTLM רגיל. אני מדבר איתכם על האשים שנקראים NTLM נטוורק. זה נשמע אותו דבר, כולם מתבלבלים, בגלל זה אני עושה דגש.

  6. 01:31

    NTLM רגיל, NTLM האשים או אנטי האשים, אלו שבארדיסק יושבים, ואפשר לתפוס אותם ואיתם ביחד לעשות התקפת פאס דה האש.

  7. 01:41

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

  8. 02:00

    זאת אומרת, האס דה האש זה CMD מקומי שמזדהה ברשת בשם של יוזר אחר שיש לנו את ההאש שלו. את ההאש שלו תפסנו מכובד סם המקומי בארדיסק, הצלחנו להוציא משמה, או מתוך זיכרון רם של המחשב דרך מודול שנקרא Secure LSA של מימיקאץ.

  9. 02:21

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

  10. 02:35

    אז זאת נקראת התקפה past the hash. כשאני פותח CMD, ועם ה-CMD הזה אני מתחבר למשאב מרוחק, ומולו מזדהה עם ה-hash, שאני לא יודע לפענח אותו, אבל זה לא מעניין, כי גם למשאב המרוחק הזה, שזה תיקייה משותפת או משהו שקשור ל-SMB, אפילו הרצת פקודות אפשר לעשות, העימות מול שרת מרוחק גם הוא מתבצע עם אותו

  11. 03:00

    hash, אז בגלל ששנינו יודעים בדיוק אותו האש, אותו ntlm רגיל, אז זה כאילו שנינו יודעים בדיוק אותה סיסמה. אז לדעת ntlm האש רגיל זה כמו לדעת סיסמה.

  12. 03:12

    למה? כי הצד השני גם יודע רק את ההאש הזה. הרי Windows שרת לא שומר את הסיסמה המקורית, הוא שומר רק את ההאש. אז אם הצלחתי להוציא מהזיכרון של המחשב את ההאש, אז כאילו הוצאתי את הסיסמה.

  13. 03:27

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

  14. 03:38

    אז אם הצלחתי לרצות אותה מהר"מ או מה-harddisk ויש לי את ה-hash המקורי, אז זה כאילו אני יודע את הסיסמה. עכשיו, זה לא אותו דבר כמו hash שעובר בתקשורת.

  15. 03:52

    בתקשורת, כשאני מזדהה מול השרת, לא מעבירים את ה-hash הזה אף פעם על הכבל. אז יש hash אחר שנקרא Network NTLM. שימו לב זה ntlm וזה נקרא network ntlm הרבה פעמים בשביל לא להתבלבל אומרים ntlm version 2 היה פעם version 1 אני לא אדבר איתכם מה ההבדל בין version 1 לversion 2 זה דברים קטנים וversion 1 כבר מת מזמן כבר מעל 10 שנים הוא לא קיים בקיצור זה ntlm עימות על

  16. 04:22

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

  17. 04:54

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

  18. 05:10

    נכון ה-הא הזה של ntlm-הא של הסיסמה? הוא לוקח את ה-ntlm-הא של הסיסמה, זה כאילו סיסמה רגילה, את ה-הא שלה, ואיתה הוא מצבין את ה-challenge, את האתגר שהביאו לו.

  19. 05:24

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

  20. 05:36

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

  21. 05:54

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

  22. 06:16

    הסיסמה של המשתמש.

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

ההרצאה הקודמת: התקפת NTLM Relay

ההרצאה הבאה: התקפת Pass-the-Hash עם psexec

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

  • הבדלים בין CC State לבין FC State
  • הבדלים בין Testing לבין Debugging
  • הבדלים בין Class לבין Object
  • הבדלים בין CentOS לבין RedHat

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

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