PracticU

השתלטות על כל הדומיין
עם NtlmRelayX

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

השתלטות על כל הדומיין
עם NtlmRelayX
בשיעור זה אנו הופכים לדומיין-אדמינים ומשתלטים על כל הדומיין בלי לדעת את סיסמת האדמיניסטרטור ובלי לשבור hash כלשהו, כיוון שהסיסמה ארוכה ומורכבת מאוד. אנו עושים זאת באמצעות שילוב של התקפת NTLM Relay עם משימה מתוזמנת.
נושאי הסיכום המוצגים בשיעור:
1. הכנת הכלים: בקובץ ההגדרות של Responder מכבים גם את ה-SMB וגם את ה-HTTP, כדי שהוא לא יתנהג כשרת וילכוד פורטים. כל תפקידו מעתה הוא להביא אל התוקף לקוחות באמצעות פרוטוקולי הגילוי LLMNR, NetBIOS ו-mDNS, ואת הטיפול בהם מבצע ntlmrelayx שרץ בטאב נפרד.
2. בניית הפקודה מראש במעבדה: לפני ההתקפה בונים ובודקים את הפקודה על שרת משלנו. משרשרים שתי פקודות, יצירת משתמש חדש ברמת הדומיין ואז הוספתו לקבוצת Domain Admins, כאשר ההרצה של הפקודה השנייה מותנית בהצלחת הראשונה. מאמתים ב-Active Directory שהיוזר החדש נוצר והוא אכן חבר ב-Domain Admins, ואחר כך מוחקים אותו ומנקים את המסלול.
3. עיטוף הפקודה ב-CMD: מכיוון שהשרשור בין הפקודות עובד רק בתוך CMD, עוטפים את כל הרצף בתוך cmd /c שפותח חלון פקודה חדש, מריץ בו את הפקודה המשורשרת ונסגר. גם אם תיפתח CMD בתוך CMD, לא תהיה לכך שום בעיה.
4. גילוי הבעיה, מי מריץ את הפקודה: מריצים התקפה ראשונית עם whoami כדי לברר מי בפועל מפעיל את הפקודות בצד הקורבן. התוקף מתחבר לשרת הקבצים כמשתמש SYSTEM, היוזר החזק ביותר ב-Windows, אך ל-SYSTEM אין שום סמכות מחוץ למחשב המקומי, ולכן כשהדומיין קונטרולר מקבל בקשה ליצור יוזר דומיין, הוא דוחה אותה. זו הבעיה המרכזית שיש לפתור.
5. הפתרון, משימה מתוזמנת: במקום להריץ את הפקודה ישירות, יוצרים משימה מתוזמנת בעזרת schtasks עם create, קוראים לה בשם, מגדירים לה כפעולה את ה-CMD העטוף שלנו, מתזמנים אותה לרוץ עם כניסת המשתמש למערכת, ומציינים שהיא תרוץ תחת המשתמש אדמיניסטרטור של הדומיין, בלי להזין סיסמה כלל, משום שהיא תרוץ בהקשר של ההתחברות עצמה.
6. בדיקת המשימה המתוזמנת: מריצים את יצירת המשימה תחילה מקומית על שרת הקבצים ומאמתים שהיא נוצרה ב-Task Scheduler ושהפעלה שלה אכן יוצרת ב-Active Directory את היוזר החדש כחבר Domain Admins. אחר כך מוחקים את המשימה ואת היוזר כדי לבצע הכל נקי מרחוק.
7. ההתקפה המלאה מרחוק: מריצים את ntlmrelayx מול שרת הקבצים שאינו דורש חתימה דיגיטלית על ה-SMB, עם תמיכה ב-SMB2 בלבד משום ש-SMB1 מנותק כברירת מחדל, וכפקודת ביצוע מעבירים את פקודת יצירת המשימה המתוזמנת. שימו לב לפרטים הקטנים, שם הקבוצה מכיל רווח ולכן נלקח בגרשיים, והגרשיים הפנימיום מקבלות תו escape. מנהל הרשת טועה שוב בכתיבת שם שרת הקבצים בלי המקף, ה-Responder עונה לו שהוא היעד, העימות עובר אל שרת הקבצים, והפקודה מורצת בהצלחה, עם הודעת ה-success על יצירת המשימה.
8. ההמתנה ללוגין: המשימה המתוזמנת יושבת בשרת וממתינה. עובר זמן, השרת מופעל מחדש או שמנהל הרשת נכנס אליו באופן רגיל, הוא לא עושה שום פעולה מסוכנת, רק לוגין. ברגע הלוגין רצה המשימה המתוזמנת תחת שמו, לפעמים עם מסך שחור רגעי, וב-Active Directory נוצר היוזר החדש ששולט על כל הרשת.
9. ההדגמה בזמן אמת: מבצעים את כל השרשרת שוב, הפעם במהירות של מציאות. מריצים פקודת Responder אחת ופקודת NTLMRelayX אחת, מנהל הרשת טועה בכתיבה, מתקן את עצמו ונכנס לשרת באופן רגיל, עובד, בודק, ורואה שהכל תקין. מאחורי הקלעים כבר נוצר ב-Active Directory היוזר החדש כחבר Domain Admins, והתוקף שולט על כל הרשת, בלי שאף אחד חשד בדבר.
10. הסיכום ההנדסי: שני הכלים עובדים יחד, ה-Responder מביא את התעבורה ו-NTLMRelayX משתלט על התחנה בגלגול הודעות כמשתמש SYSTEM, שיש לו הרשאות מקומיות בלבד. את ה-SYSTEM מנצלים ליצירת משימה מתוזמנת שיוצרת יוזר דומיין, אך היא רצה תחת אדמיניסטרטור של כל הרשת, וממתינה עד שהאדמיניסטרטור יעשה לוגין לשרת.
סיכמנו כיצד משלבים התקפת NTLM Relay עם משימה מתוזמנת כדי להפוך לדומיין-אדמינים בלי לפצח אף סיסמה, תוך הבנת הבעיה של הרשאות SYSTEM המקומיות והפתרון של הרצת הפקודות בהקשר הלוגין של האדמיניסטרטור. בשיעור הבא נעסוק בנושא הגנה של שרתים בדומיין
נגד NtlmRelayX. זה הכל, תודה רבה.
בשיעור הבא נעסוק בנושא הגנה של שרתים בדומיין
נגד NtlmRelayX.
SR12940HE

פרקי ההרצאה: השתלטות על כל הדומיין עם NtlmRelayX

  1. 00:00

    השתלטות בלי הסיסמה

  2. 00:41

    הגדרת ה-Responder להתקפה

  3. 01:38

    בניית פקודת יצירת היוזר

  4. 02:14

    שרשור הפקודות בצורה נכונה

  5. 03:12

    פתיחת CMD חדש לפקודה

  6. 03:47

    בדיקת הפקודה ב-Windows

  7. 04:23

    ההבדל בין System ל-Domain Admin

  8. 05:49

    הפתרון באמצעות משימה מתוזמנת

תמלול ההרצאה: השתלטות על כל הדומיין עם NtlmRelayX

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

  1. 00:02

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

  2. 00:15

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

  3. 00:41

    למחשב הזה, ומי שיטפל בהם יהיה ntlm relay x, אז אני מפעיל את הרספונדר, הנה הוא מתחיל להזין פה לאירועים, אני רואה ש-http מנותק, אני רואה ש-smb מנותק ב-off מצוין, זה התפקיד שלו LLMNR, NETBIOS, MDNS, נפתח טאב חדש, בטאב השני נפעיל NTLM RELAX.

  4. 01:04

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

  5. 01:13

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

  6. 01:24

    לפני שאני מגיע לרשת אמיתית אני מכין הכל מראש אז אני מפעיל נט.אקזה אומר לו תיצור לי יוזר חדש בשם ptadmin2 עם סיסמה כזאת וכזאת add domain עד כאן זו פקודה רגילה שיוצרת לי יוזר בדומיין אחרי זה שני end-in אומר להריץ את הפקודה הבאה רק אם הפקודה הקודמת הסתיימה בהצלחה זאת אומרת רק אחרי שהוא ייצור לי יוזר

  7. 01:49

    חדש בדומיין הוא יריץ את הפקודה הבאה אני משרשר פקודות והפקודה הבאה לביצוע זה נט גרופ תוסיף לקבוצה דומיין אדמינס את היוזר ptadmin2 בוא נראה שזה עובד אנחנו רואים פה completed successfully completed successfully הולכים לדיסי עושים רפרש ורואים שיש פה ptadmin2 ובפנים הוא member of domain admins מצוין ככה בונים פקודות לאט לאט אז ראינו שהפקודה הזאת עובדת אני

  8. 02:18

    יכול גם להגיד למחשב לפתוח cmd חדש ובתוך הcmd הנפרד החדש הזה להריץ את הפקודה הזאת אני כותב cnd/c תפתח cnd חדש ותריץ שמה את מה שכתבתי לך ואני רואה שהפקודה מצליחה cnd/c פותח לי cnd חדש מבצע את הפקודה שלי וסוגר את ה-cmd ההוא למה אני צריך לפתוח cnd חדש כי אם בקוד שלהם כתוב רק להריץ איזושהי תוכנה

  9. 02:43

    הדבר הזה לא היה עובד הדבר הזה עם השרשור עם ה-end הזה עובד רק בתוך ה-cmd אז אמרתי בצורה מפורשת תפתח cnd במקרה הכי גרוע יש CMD בתוך CMD לא קרה כלום הרי אני בתוך ה-CMD יכול לפתוח עוד CMD ועוד CMD אין שום בעיה הדבר היחיד שקורה שיש לי פה ב-Task Manager כמה CMDים לא קרה כלום אני יכול לסגור את הכל וזהו בקיצור הגענו למצב שיש לנו פה

  10. 03:06

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

  11. 03:33

    נהדר בואו נמחק את היוזר הזה נוסיף סלאש delete בסוף מחקנו אותו the command completed successfully עכשיו שאילתה לגבי ptadmin מחזירה אירור טוב תגידו לי אם יש לך את הפקודה מה הבעיה בוא נכניס אותה ל-ntlm relay והכל יעבוד או יש פה בעיה שהפקודה הזאת לא תעבוד ב-NTLM ריליי.

  12. 03:55

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

  13. 04:06

    אם אני מריץ Who-MI, תראו מה יקרה. מי אני הולך להיות? מי הולך להריץ בשרת של הקורבן את הפקודה הזאת? מי הולך להריץ אותה?

  14. 04:15

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

  15. 04:23

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

  16. 05:03

    תשובה אבל הריספונדר פה צעק שפייל סרבר פייל סרבר זה אני הנה הוא שלח לו פה תשובה answer send שפייל סרבר זה כאן ואז הוא עבר מול עימות גלגלתי את העימות הזה מ-0.10 ל-0.133 העימות succeeded אני נכנסתי לתוך ה-133 כאדמיניסטרטור וברגע שהוא עושה אקסיקיוט לקומנד הוא מחזיר לי תשובה שאני תחת סיסטם עכשיו תגידו לי זה מצוין

  17. 05:32

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

  18. 06:00

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

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

ההרצאה הקודמת: שליטה על דומיין דרך - שורת פקודה net user

ההרצאה הבאה: הגנה של שרתים בדומיין - נגד NtlmRelayX

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

  • מי מנצח Admin של הדומיין או של המחשב ?
  • רישום דומיין שלנו באופיס 365 - הוספה ואימות של הדומיין

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

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