PracticU

התקפת Pass-The-Hash על RDP

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

התקפת Pass-The-Hash על RDP
בשיעור זה אנו רואים כיצד הרג'יסטרי שמפעיל את ההגנות המשופרות של השולחן המרוחק מדליק בו-זמנית גם את ה-Remote Guard שעובד רק בקרברוס, וגם את ה-Restricted Admin שעובד ב-NTLM עם hash. וברגע שהופעלה האופציה המאובטחת כביכול, נפתחה הדרך להתקפת Pass-The-Hash על ה-RDP.
נושאי הסיכום המוצגים בשיעור:
1. מה אפשר לעשות עכשיו: השרת מקבל שולחן עבודה מרוחק עם עימות NTLM בלבד, כלומר עימות דרך hash בלבד. אם מצליחים לגנוב את ה-hash של המשתמש, אפשר לבצע התקפת Pass-The-Hash, להתחבר מרחוק כאקרים בלי לדעת את הסיסמה של המשתמש. נציין רק איזה משתמש, איזה דומיין ומה ה-hash של אותו משתמש, גם אם לא הצלחנו לשבור את ה-hash, פשוט מתחברים איתו כמו שהוא.
2. המכניקה של העימות: מבקשים מה-RDP שיזרוק לנו challenge, ואנחנו מצפינים אותו בעזרת ה-hash של המשתמש, כאילו ידענו את הסיסמה, למרות שאיננו יודעים אותה באמת. אבל זה hash של המשתמש המקורי, מצפינים איתו את הסיסמה, מחזירים אל השרת, והשרת מעביר הכל אל ה-DC לבדיקה, גם את ה-challenge וגם את התשובה. ה-DC מאשר שהוא אכן הצליח להצפין כמו שצריך, ושרת ה-RDP, בין אם זו תחנת עבודה ובין אם שרת קבצים או SQL, לא משנה איזה שרת, נותן לנו להיכנס פנימה.
3. החיסרון האדיר של הרג'יסטרי: לאופציה המאובטחת הזאת יש חיסרון עצום, שברגע שמציבים את הרג'יסטרי הזה, נפתחות שתי האופציות ביחד, גם ה-Remote Guard המאובטח שהוא קרברוסי, וגם ה-Restricted Admin, שמקבל NTLM. וברגע שהוא מקבל NTLM, הוא חושף את השרת להתקפת Pass-The-Hash. נפתחו שתי האופציות עם רג'יסטרי אחד, והמפתח נמצא בשאלה מה יכתוב המשתמש אחרי ה-slash בחיבור.
4. תנאי המשתמש להתקפה: כדי להתחבר עם המשתמש, עליו להיות אדמיניסטרטור מקומי בתחנה. מניחים שהמשתמש שלנו הוא דומיין-אדמין, ומכיוון שהוא דומיין-אדמין הוא גם אדמין מקומי. הסיבה שהוא חייב להיות דומיין-אדמין היא שאנחנו רוצים להתחבר עם המשתמש הזה בשיטת ה-Restricted Admin Mode, שדורשת שהמשתמש יהיה אדמיניסטרטור מקומי, כיוון שרק המצב הזה מאפשר אימות NTLM. כלומר, פתחנו את הרג'יסטרי במטרה לאבטח את עצמנו, ומאחורי הקלעים חשפנו את עצמנו להתקפת Pass-The-Hash. והנה אנחנו בפנים, מתוך Kali התחברנו אל תוך תחנת העבודה.
5. איך מזהים שאנחנו במצב הזה: אחרי החיבור, אם נכנס ל-CMD ונעשה klist, נראה שקיים רק TGT של המחשב ולא של המשתמש, וזהו סימן לכך שאנחנו במצב של Restricted Admin Mode.
6. שתי שיטות אבטחה ל-RDP: יש שתי שיטות לאבטח את השולחן המרוחק כך שלא יישב ביד התוקף ה-hash של המשתמש שמתחבר לתחנה פרוצה. האחת היא השיטה הישנה, Restricted Admin Mode, שהייתה מאז Windows 7, והשנייה היא Remote Credentials Guard, האופציה שהופיעה מ-Windows 10. בשתי התקופות, ההפעלה של שתי האופציות האלה נעשית עם מפתח רג'יסטרי אחד שמפעיל את שניהם, ובגלל שמדובר במפתח אחד, הכל תלוי במשתמש ובמה שהוא יכתוב אחרי ה-slash.
7. אכיפה באמצעות גרופ פוליסי: אם לא סומכים על המשתמשים לבחור לבד איך להתחבר, אפשר ב-Group Policy Management על ה-DC ליצור פוליסה חדשה, לקרוא לה בשם מתאים לדוגמה RDP Secure, ולהפעיל אותה על כל הדומיין. בתוך הפוליסה, ברמת המחשב, הולכים אל תבניות ניהוליות, מערכת, הגדרות הגנה, ומגיעים אל ההגדרה של האצלת ההרשאות מוגבלת לשרתים מרוחקים. שם יש שלוש אופציות, לאפשר רק את ה-Credentials Guard החדש שמחייב קרברוס, או רק את ה-Restricted Admin שמאפשר גם NTLM אך כל מקום מזדהה עם חשבון המחשב, או לאפשר את שניהם איך שהמשתמש רוצה, או כך או כך אך לא בצורה הרגילה. הגדרה כזאת חלה על Windows 8.1 ומעלה, ואם לא מגדירים דבר, הכל תלוי במה שהמשתמש יכתוב אחרי ה-slash בחיבור.
8. ההמלצה הסופית: Restricted Admin Mode מצוין לצוות הטכני, ו-Remote Credentials Guard מצוין לכולם, ולדעת המרצה הוא עדיף כי הוא פותר את כל הבעיות, עם מגבלה קטנה שכולם חייבים להיות באותו דומיין ולעבוד כראוי. אבל אם זה לא בעיה בתוך הארגון, פתרנו את הסיפור ששולחן עבודה מרוחק משדר את הסיסמה אל היעד, את ה-hash של הסיסמה ואת ה-TGT, ואם התחנה פרוצה אפשר לגנוב את כל אלה. כך מאבטחים את ה-RDP בתוך הארגון.
סיכמנו את התקפת ה-Pass-The-Hash על השולחן המרוחק, מהמנגנון שמאפשר עימות NTLM עם hash בלבד, דרך החיסרון הכרוך במפתח הרג'יסטרי המשותף והדרישה להרשאות אדמין מקומיות, ועד לשתי השיטות לאבטחת ה-RDP וההמלצה המעשית להעדיף את ה-Remote Credentials Guard. זה הכל, תודה רבה.
SR12999HE

פרקי ההרצאה: התקפת Pass-The-Hash על RDP

  1. 00:00

    הגדרת מצב ההגנה

  2. 00:39

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

  3. 01:16

    קבלת הכניסה לשרת

  4. 01:51

    החשיפה שההגדרה יוצרת

  5. 02:25

    זיהוי מצב ה-Restricted Admin

תמלול ההרצאה: התקפת Pass-The-Hash על RDP

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

  1. 00:02

    הרג'יסטרי הזה, דיסייבל רסטריקט אדמין, מדליק גם את הרימורט גארד שעובד רק בקרברוס, אבל הוא גם מדליק את הרסטריקט אדמין שעובד ב-NTLM בהאש.

  2. 00:14

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

  3. 00:26

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

  4. 00:37

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

  5. 01:00

    אני מצפין איתו את הסיסמה, מחזיר לשרת והשרת מעביר את הכל ל-DC לבדיקה, גם את ה-Challenge וגם את ה-Response DC אומר הוא באמת הצליח להצפין את זה כמו שצריך ושרת RDP, בין אם זה תחנת עבודה, בין אם זה שרת כמו שרת קבצים, SQL לא אכפת לי איזה שרת זה, הוא נותן לי להיכנס פנימה

  6. 01:20

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

  7. 01:45

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

  8. 02:06

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

  9. 02:20

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

  10. 02:30

    אם אני אכנס ל-CMD ואני אעשה K-ליסט, אני אראה כאן TGT של המחשב ולא של היוזר. אני אסכם לכם.

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

ההרצאה הקודמת: אבטחת RDP בתוך הדומיין - Remote Credentials Guard

ההרצאה הבאה: פריצה של Remote Credentials Guard - עם Meterpreter

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

  • שליטה מרחוק - RDP
  • התקפת CSRF
  • הסבר על Pass Params ב-Flutter
  • יצירת Pass-Through Middleware

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

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