PracticU

התקפת NTLM Relay

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › התקפת NTLM Relay
מילון מושגים:
NTLM - פרוטוקול אימות ותיק של מיקרוסופט המבוסס על ערכי האש של סיסמאות, שקדם ל-Kerberos.
RAM - זיכרון הגישה האקראית של המחשב, מהיר ונדיף, שבו נשמרים נתונים ותוכניות בזמן ריצתם.
MD5 - פונקציית האש ותיקה שמפיקה ערך באורך קבוע. נחשבת לא בטוחה לשימושים קריפטוגרפיים.
אלגוריתם - רצף מוגדר של צעדים לפתרון בעיה או לביצוע משימה, שאפשר לממש בקוד.
זיוף - התחזות ברשת בעזרת זיוף זהות, כמו כתובת מקור או שולח, כדי להטעות מערכת או משתמש.
NetBIOS - ממשק ותיק שמאפשר למחשבים ברשת מקומית לזהות זה את זה לפי שם ולתקשר.
LDAP - פרוטוקול לגישה ולשאילתה של שירותי מדריך כמו Active Directory, לאיתור וניהול משתמשים ומשאבים.
RPC - מנגנון שמאפשר לתוכנית לקרוא לפונקציה שרצה במחשב אחר ברשת כאילו היא מקומית.

התקפת NTLM Relay
בשיעור זה אנו עוסקים בהתקפות NTLM מסוג Relay, כאשר התוקף אינו מחזיק בגישה פיזית למחשב הקורבן, ולכן אין בידו את ה-hashים המקומיים מהדיסק או מהזיכרון. מה שעומד לרשותו הוא ההאזנה על הכבל, והשאלה המרכזית היא איך תוקף ששומע תעבורת NTLM ברשת מצליח בכל זאת להתחזות ולהיכנס למערכות.
נושאי הסיכום המוצגים בשיעור:
1. הגדרת התחום: אנו מתמקדים בהתקפות שבהן לתוקף אין גישה לתוך המחשב, ולכן התקפות Pass-The-Hash שדורשות שליפת hash מהדיסק או מה-RAM אינן רלוונטיות כאן, והמוקד הוא התקפות Relay שעובדות מול תעבורת NTLM שעוברת ברשת.
2. עקרון ה-Relay: התוקף מתחזה לשרת לגיטימי בעיני הקליינט, ומקבל ממנו בקשת אימות NTLM. הוא מעביר את ההודעה כמו שהיא לשרת האמיתי, שמאמין שמדובר בקליינט שרוצה לעבור אימות, ומחזיר challenge, והתוקף מגלגל את האתגר חזרה אל הקליינט. מנקודת מבטו של הקליינט הוא השרת, ומנקודת מבטו של השרת הוא הקליינט, וביניהם הוא פשוט מעביר הודעות מצד לצד בלי לעשות דבר.
3. מה קורה בתשובה של הקליינט: הקליינט מצפין את האתגר בשילוב עם ה-hash של הסיסמה שלו, באמצעות ערבול חד-כיווני מסוג HMAC-MD5, שהוא התקן הרשמי של NTLM v2. חשוב להבין שמדובר בערבול ולא בהצפנה שאפשר לפתוח, והתוקף אינו יכול לחשב תשובה כזאת בעצמו כי אין בידו את הסיסמה, אך הוא לא צריך, הוא פשוט מעביר את התשובה הלאה, והשרת מאשר שהעימות עבר בהצלחה.
4. למה אי אפשר לתקן את NTLM עצמו: NTLM הוא תקן שמיליוני מוצרים תומכים בו, לשרתים מתחברים מדפסות ומכשירים רבים אחרים שדורשים עימות, והקליינטים יכולים להיות Windows, Linux או Mac. לכן אי אפשר לשדרג את אלגוריתם הערבול או לשנות דבר בתקן עצמו, וההתקפה ברמת ה-NTLM אינה ניתנת למניעה.
5. הפתרון ברמת הפרוטוקולים שמעל NTLM: אחרי שלב העימות מדברים הצדדים בפרוטוקולים שלהם, כמו SMB, HTTP או SQL, ובתוך הפרוטוקולים האלה אפשר לדרוש חתימה, signing, על ההודעות, או הצפנתן, כך שהתוקף לא יוכל לזייף אותן כי אין בידו את הסיסמה המקורית. זו ההגנה האמיתית מפני Relay, והיא מיושמת בכל פרוטוקול בנפרד, למשל חתימות SMB שניתן לאכוף דרך Group Policy.
6. השאלה המרכזית, איך התוקף מקבל תעבורה: כדי שההתקפה תעבוד, קליינטים צריכים לפנות אל התוקף מרצונם, וזה נקרא obtaining traffic. השיטה הראשונה היא DNS spoofing, שבה התוקף מזייף תשובות של שרת DNS ומחזיר לקליינט שמחפש שרת את כתובת שלו עצמו, והקליינט מתחבר בתמימות ומבקש עימות NTLM.
7. התחזות לשרת פרוקסי בעזרת WPAD: השיטה המגניבה ביותר היא להתחזות לשרת פרוקסי. כברירת מחדל, ברגע שדפדפן נפתח הוא מחפש אוטומטית שרת פרוקסי דרכו יוצאים לאינטרנט. אם מנהל הרשת לא ניתק התנהגות זאת ב-Group Policy, עצם פתיחת הדפדפן על ידי משתמש תמים שרק רוצה לגלוש, מביאה לכך שהוא עובר מול התוקף עימות NTLM והתוקף תופס את ה-hash שלו, בלי שהמשתמש עשה שום פעולה מסוכנת. הכלי המוכר שמבצע זאת הוא Responder, וזו התקפה חזקה במיוחד.
8. התחזות בפרוטוקול LLMNR ו-NetBIOS: כאשר שם שהוקלד שגוי לא נמצא ב-DNS, הקליינט פונה לפרוטוקול LLMNR שמחפש מחשבים שכנים ברשת בלי שרת DNS, ולפניו פעל פרוטוקול NetBIOS Names מימי XP ו-וויסטה. שני הפרוטוקולים נועדו לחיפוש פנימי ברשת בלי DNS, והתוקף עם ה-Responder עונה לכל שאילתה כזאת שהוא היעד המבוקש ומזמין את הקליינטים להתחבר אליו ולעבור עימות NTLM.
9. ARP spoofing: שיטה נוספת היא זיוף כתובת ה-MAC של הראוטר בטבלאות ה-ARP של התחנות, כך שכל התעבורה שמיועדת לראוטר עוברת דרך כרטיס הרשת של התוקף, והוא מעביר אותה הלאה לראוטר האמיתי אך בדרך רואה את כל הפאקטים ויכול לנצל אותם להתקפה. זו השיטה הפופולרית ביותר להשגת תעבורה בשילוב עם Responder.
10. הכלי ntlmrelayx מתוך impacket: אחרי שהתעבורה מגיעה, מריצים את ntlmrelayx שהוא חלק מחבילת impacket, ספריית פייתון עשירה בכלי תקיפה. הכלי מסוגל להתנהג כשרת SMB ו-HTTP, לקבל פניות מקליינטים ולגלגל אותן הלאה לפרוטוקולים שונים, כולל LDAP, IMAP לדואר, SQL, שיתופי קבצים, RPC, ואפילו Active Directory Certificate Services. קובץ הקוד שלו קריא ומתועד היטב ב-GitHub. הצלחת ההתקפה תלויה בסוף בצד השני, האם הקליינט והשרת דורשים חתימה או הצפנה, וניתן גם להחליף פרוטוקול באמצע הדרך, למשל לקבל בקשת SMB ולגלגל אותה ל-SMB של שרת אחר.
סיכמנו כיצד פועלת התקפת NTLM Relay על תוקף שמאזין על הכבל בלי גישה למחשבים, למה NTLM עצמו אינו יכול למנוע את ההתקפה וההגנה מסתמכת על חתימות והצפנות בפרוטוקולים שמעליו, וסקרנו את השיטות להבאת תעבורה אל התוקף, מ-DNS spoofing ו-WPAD דרך LLMNR ו-ARP spoofing, ועד לכלי ntlmrelayx שמבצע את הגלגול בפועל. זה הכל, תודה רבה.
SR12931HE

פרקי ההרצאה: התקפת NTLM Relay

  1. 00:00

    היקף ההתקפה מהכבל

  2. 00:42

    איך עובדת העברת ההודעות

  3. 01:20

    הערבול עם HMAC-MD5

  4. 02:16

    מגבלות שינוי התקן NTLM

  5. 03:11

    הסיכון למערכות קיימות

  6. 04:08

    ההגנה על ידי חתימות

  7. 04:54

    ההגנה ברמת הפרוטוקול

  8. 05:35

    כיצד מתחזים לשרת

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

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

  1. 00:02

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

  2. 00:16

    התקפות פאס דה האש, אחרי שאני שולף את הסיסמה מתוך ה-hard disk המקורי של היוזר או מתוך ה-RAM שלו, על זה אני לא הולך לדבר איתכם. אני מדבר על התקפות כשאין לי גישה לתוך המחשב, כשאני מאזין על הכבל ושומע NTLM.

  3. 00:32

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

  4. 00:48

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

  5. 01:16

    של md5 ערבול חד כיווני כאשר מערבלים גם את ההאש וגם את הצ'לנג' המקורי שהגיע מהשרת לוקחים את זה לוקחים את הסיסמה של היוזר שניהם ביחד נכנסים ל-md5 ויוצא ערבול מוצפן זה למעשה ערבול שלתוכו נכנסו שני דברים ביחד וזה נקרא h-mac h-mac של md5 האקר לא יכול לעשות את זה לבד כי אין לו את הסיסמה של היוזר האקר מקבל את הערבול המוצפן

  6. 01:45

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

  7. 02:11

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

  8. 02:29

    עימות עכשיו אתם תגידו, רגע, איך מונעים את הדבר הזה? איך אפשר לעשות פה משהו? והאמת, אי אפשר לעשות כלום, כי אי אפשר לשנות את ה-NTLM הזה.

  9. 02:39

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

  10. 02:54

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

  11. 03:11

    לדוגמה, קליינט יכול להיות Windows, Linux, Mac. השרת, זה לא חייב להיות שרת, זה יכולה להיות מדפסת.

  12. 03:17

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

  13. 03:28

    הריליי הזה, אי אפשר למנוע אותו. אז מה עושים? מה עושים? מה זה כל הרשתות פרוצות בעולם? התשובה היא שאי אפשר למנוע את זה ב-NTLM Authentication אבל אפשר למנוע ברמת פרוטוקול הבא הרי מישהו משתמש ב-NTLM, אחרי זה יש לו את התקשורת שלו, את ה-HTTP שלו, את ה-SMB שלו, את ה-SQL שלו זאת אומרת הקליינטים אחרי זה מדברים בשפה

  14. 03:53

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

  15. 04:18

    זאתי שמונעת את ההתקפה אבל לא בשלב של ntlm אלא בשלב של פרוטוקול בגלל שאני לא רוצה להיכנס עכשיו לחתימות של SMB של שיתופים של פרוטוקול ספציפי כי יש גם HTTP שיש לו בכלל SSL ו-LDAP יש לו SSL אני לא רוצה עכשיו להיכנס לפרוטוקולים ספציפיים אני רק רוצה להגיד לכם שמה שמונע את כל ההתקפה הזאת של ריליי זה נקרא NTLM ריליי עתק ריליי

  16. 04:26

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

  17. 05:15

    פרוטוקול בנפרד לדוגמה על smb על השיתופים צריך לעשות את זה דרך group policy עכשיו עכשיו נשארה לנו רק שאלה אחרונה איך אני נהיה פה שרת איך הקליינט חושב שאני שרת אז יש לזה כמה שיטות איך לגרום לקליינט לשלוח אליי את הבקשת ההזדהות איך אני מקבל את הפאקטים האלו זה נקרא getting traffic או obtain traffic אז אני יכול לזייף

  18. 05:40

    שאילתות של dns נניח קליינט

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

ההרצאה הקודמת: פרוטוקול Protocol NTLM

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

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

  • Frame-Relay למתחילים
  • הסבר על Kerberos ועל NTLM
  • התקפת CSRF
  • הגדרת Frame-Relay - פרויקט גמר

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

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