PracticU

חיבור לתחנה עם Meterpreter
ומיגרציה לחשבון SYSTEM

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › חיבור לתחנה עם Meterpreter ומיגרציה לחשבון SYSTEM
מילון מושגים:
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
TCP - פרוטוקול תקשורת אמין שמוודא שכל חבילות המידע מגיעות ליעד בשלמות ובסדר הנכון.
Kali Linux - הפצת Linux המיועדת לבדיקות אבטחה וחדירות, הכוללת אוסף כלים לבחינת מערכות.
שרת אינטרנט - תוכנה או מחשב שמקבלים בקשות HTTP ומגישים דפי אינטרנט ומשאבים ללקוחות.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
RDP - פרוטוקול של מיקרוסופט לחיבור לשולחן עבודה מרוחק של מחשב Windows והפעלתו מרחוק.

חיבור לתחנה עם Meterpreter
ומיגרציה לחשבון SYSTEM
בשיעור זה אנו רואים כיצד האקר מתחבר אל Windows 10 או 11 או לשרת כלשהו ואינו תלוי בסשן, כלומר אם המשתמש עושה לוגאוף זה לא משנה לו, כי הוא לא תלוי במשתמש ספציפי. המטרה היא להשתלט על התחנה ולבצע מיגרציה אל תהליך אחר.
נושאי הסיכום המוצגים בשיעור:
1. יצירת ה-payload: מייצרים את הקוד הזדוני שיישלח לקליינט, עבור Windows 64 ביט, ולא CMD פשוט אלא Meterpreter, ה-CMD החכם והמשוכלל. המתג שמציין שהפיילוט דו-שלבי מאפשר שבשלב הראשון נשלח המינימום הנדרש ורק בשלב השני עובר כל הקוד הכבד, כך שהקוד הראשוני יהיה קטן ופשוט להטמעה, למשל בתוך קובץ אקסל או בכל מקום אחר.
2. חיבור הפוך: סוג החיבור הוא reverse TCP, כלומר הקורבן הוא זה שמתחבר אל התוקף. מציינים לפיילוד את כתובת ה-IP של ה-Kali, שמאומתת קודם בפקודת בדיקת כתובות, ואת הפורט שבו ימתין המאזין.
3. הכנת תשתית ההעברה וההאזנה: מעלים שרת ווב פשוט בפורט 80 שמספק את קובץ ה-payload מהתיקייה שלו, ובמקביל מריצים במסגרת התקיפה מאזין שמחכה שה-payload מהקורבן יתחבר בפורט 443. בפקודת jobs אפשר לראות את התוכנות שרצות ברקע, את ה-multi-handler שממתין לחיבור ההפוך, ובפקודת הסשנים רואים שכרגע אין אף סשן מחובר.
4. העברת הקובץ לקורבן: אפשר לשלוח לקורבן אימייל, לינק ל-Dropbox או ל-Google Drive עם קובץ זדוני, והעיקר לגרום לו להוריד ולהריץ את הקובץ. בהדגמה מורידים דרך PowerShell את הקובץ מהשרת שלנו אל תיקיית ההורדות. לפני כן מנתקים את האנטי-וירוס ומוסיפים את תיקיית ההורדות לרשימת האקסקלוז'נים. מוסבר שבחיים האמיתיים חברות התקיפה מקסטמות את ה-payload עד שהאנטי-וירוס לא תופס אותו, אך זה נושא נפרד.
5. הערות על פקודות PowerShell: ה-wget המוכר הוא בעצם כינוי, alias, לפקודה האמיתית ב-PowerShell שנקראת Invoke-WebRequest, שהוא כינוי שאנשים אוהבים כי הוא בא מהלינוקס, והפקודה מקבלת מאיפה לקחת, איזה קובץ ואיפה לשים אותו. גם ls הוא כינוי לפקודת קבלת רשימת ילדים של התיקייה.
6. הרצת ה-payload: מריצים את הקובץ עם run as administrator, וזה חשוב כדי שבעתיד נצליח לבצע מיגרציה. במציאות אם היוזר יריץ אותנו בלי הרשאות אדמין, יש שיטות של העלאת הרשאות מקומיות, אך כרגע לא עוסקים בזה. נפתח סשן אחד, ואפשר לראות שהמאזין שברקע תפס את הסשן ונסגר, אין עוד מאזין.
7. הדגמת הבעיה, ניתוק עם הלוגאוף: מתחברים לסשן, עם הפקודה שמציגה את מזהה התהליך שלנו, ורואים במנהל המשימות שה-payload רץ תחת המשתמש הרגיל. אם המשתמש יעשה לוגאוף, כל התהליכים שהוא הריץ בזיכרון ייסגרו ואנו נתנתק. מבצעים לוגאוף, המשתמש יוצא, ובצד התוקף הסשן נסגר, כי כל התוכנות נסגרו, כולל ה-payload שהוא כמו תוכנה רגילה בזיכרון. מריצים שוב את המאזין, ואין אף סשן מחובר.
8. הפתרון, מיגרציה אל SYSTEM: נכנסים שוב, מריצים את ה-payload פעם נוספת עם run as administrator, נפתח סשן שני, מזהים את מספר התהליך שלנו, ורוצים לעבור מהיותנו אדמין אל SYSTEM, שהוא ה-Windows עצמו. ה-SYSTEM אינו מתנתק לעולם, כיוון שזהו המשתמש של מערכת ההפעלה עצמה. צריך למצוא תוכנה שרצה תחת SYSTEM ולעבור מהתהליך שלנו אל התהליך שלו. מסדרים את רשימת התהליכים לפי מזהה, ו-SYSTEM לרוב עולה ראשון עם המספרים הנמוכים. בוחרים את התהליך שאחראי על האבטחה המקומית, ה-LSASS, שרץ תחת SYSTEM ובטוח שלא ייסגר כשהמשתמש יעשה לוגאוף, ומבצעים מיגרציה אל מספר התהליך שלו. אפשר גם ב-Meterpreter להריץ פקודה שמציגה את התהליכים עם מזהיהם ואף מציגה את תהליך האב שהפעיל כל תהליך, למשל שאת ה-payload שלנו הפעיל תהליך ה-explorer, הממשק הגרפי.
9. המבחן האמיתי: אחרי המיגרציה הפכנו מהתהליך הישן לתהליך החדש, ומה שחשוב יותר הוא שאנו עכשיו משתמש SYSTEM, משתמש כל-יכול. עושים את המבחן, המשתמש עושה לוגאוף, כל התהליכים שלו נסגרים, אך כאן הכל ממשיך לעבוד. אפשר אפילו לעבור למצב של CMD רגיל במקום ה-Meterpreter החכם, לבדוק מי אנחנו ורואים שאנחנו SYSTEM, ולבדוק את שם המחשב ולראות שאנחנו על התחנה הנתקפת. אנו יושבים בתוך המחשב של הקורבן, מטיילים בקבצים שלו, תחת משתמש SYSTEM, והוא בכלל במצב לוגאוף. זה חשוב כי בהתקפות ה-RDP הבאות נצא וניכנס פעמים רבות, והסוד הגדול הוא לשבת תחת משתמש SYSTEM שאינו תלוי בסשן של משתמש ספציפי, כיוון שאת ה-SYSTEM הזה הפעיל המחשב עצמו, וכל עוד המחשב עובד, התהליך עובד.
סיכמנו את הקמת סשן יציב בתחנת הקורבן, מיצירת ה-payload הדו-שלבי והחיבור ההפוך, דרך העברת הקובץ ופתיחת הסשן, ההדגמה של הניתוק בלוגאוף, ועד למיגרציה אל תהליך SYSTEM שהופכת את הנוכחות לבלתי תלויה במשתמשים המתחלפים. זה הכל, תודה רבה.
SR12995HE

פרקי ההרצאה: חיבור לתחנה עם Meterpreter ומיגרציה לחשבון SYSTEM

  1. 00:00

    המטרה: עצמאות מהיוזר

  2. 00:40

    יצירת ה-Payload הדו-שלבי

  3. 01:34

    הקמת שרת להעברת הקובץ

  4. 02:11

    הקמת המאזין בפורט 443

  5. 03:05

    הגעת הקורבן לשרת

  6. 04:09

    הרצת הקובץ בקורבן

  7. 05:19

    קבלת השליטה במחשב

  8. 05:52

    הפעלה מחדש של ההאזנה

תמלול ההרצאה: חיבור לתחנה עם Meterpreter ומיגרציה לחשבון SYSTEM

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

  1. 00:02

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

  2. 00:26

    פיילוד את הקוד הזדוני שאני אשלח לקליינט MSF Venue מינוס P זה איזה פיילוד לווינדוס 64 ביט שיהיה לא CMD פשוט אלא מטר פריטר החכם.

  3. 00:37

    ה-CMD המשוכלל שיהיה דו שלבי שבשלב הראשון נשלח את המינימום הנדרש ואת כל הקוד נשלח בשלב השני. המטרה היא שהקוד הראשוני יהיה כליל ויהיה פשוט לשים אותו נניח בקובץ אקסל או בכל מקום אחר ורק בשלב השני יעבור כל הקוד הכבד.

  4. 00:55

    אז הסלאש הזה אומר שזה דו שלבי. reverse tcp זה צורת חיבור הקורבן יתחבר אליי בtcp כאשר lhost זה הIP של הקאלי שלי בוא נבדוק שזה באמת נכון נעשה new tab IPA IP address ואנחנו רואים שהכתובת שלי זה 122.133 אז אני אומר לקורבן להתחבר אליי לIP כזה וכזה port 443 קל להיחכה בפורט הזה את הpayload אנחנו עושים באקזה רגיל

  5. 01:23

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

  6. 01:39

    ואני רוצה להראות לכם איך האקר ממשיך להיות מחובר גם כשהיוזרים מתחלפים בתוך המחשב. אוקיי, אז יש לנו פה payload.exe, אני רוצה להעביר אותו לקורבן שלי, אני מפעיל פה שרת Web בפורט 80 שמחכה שמישהו יתחבר אליו ב-HTTP בפורט 80 וייקח את הקובץ payload.exe שנמצא בתיקי הזאת.

  7. 02:02

    אז לזה אני קורא Web Server. פה קל לי לחכה שהקורבן יריץ את ה-payload הזדוני ויפתח מולו סשן. זה כבר MSF קונסול שמחכה ל-payload הזה שיתחבר מהקורבן בפורט 443. הנה הוא נכנס לתוך ה-MSF קונסול, אנחנו יכולים לעשות פה jobs, לראות שיש ברקע, jobs זה תוכנות שרצות ברקע,

  8. 02:25

    את המולטי-הנדלר שממתין ל-reverse-tcp, שיתחבר אליו בפורט 443. זה מה שהוא מחכה לו. יופי. וכרגע בסשנס, ברגע זה אין אף סשן מחובר, אף אחד לא התחבר אליי עדיין.

  9. 02:39

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

  10. 02:59

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

  11. 03:17

    בו וגם ניתקתי את האנטיווירוס במציאות חברות אמיתיות פשוט יש להם פיילורד משלהם שהאנטיווירוסים לא תופסים אז אנחנו יכולים להריץ עכשיו wget שזה למעשה אליאס כינוי לפקודה אמיתית בפאורשל שנקראת invoke web request wget אנשים אוהבים כי זה בא מלינוקס אבל אבל בעולם האמיתי של

  12. 03:47

    PowerShell זה נקרא Invoke Web Request ואנחנו אומרים לו מאיפה לקחת, איזה קובץ ואיפה לשים אותו. איפה נשים אותו? בסיסטם 32 או נעבור לתיקי הדאונלורדס.

  13. 03:59

    אתם יודעים מה? בואו נחליף שנייה תיקייה. ניכנס ל-c.2-users-admin-downloads admin זה שם של היוזר שלי וכאן כשאני בתוך התיקי הדאונלורדס אני אריץ את הפקודה הזאת שיוריד את זה לכאן.

  14. 04:13

    אני יכול לעשות ls כמו בלינוקס והוא יראה לי הקבצים שיש בתיקי הנוכחית ששוב ls זה לא פקודה אמיתית זה אליאס כינוי לפקודה get child item אנחנו רואים כאן בדאונלורדס את הפיילורד שלנו נהדר ואני עושה right click run as administrator חשוב לי שזה יהיה run as

  15. 04:33

    administrator כדי שבעתיד נצליח לעשות מיגרציה במציאות אם יוזר מעריץ אותי בלי run as administrator יש לי שיטות איך להעלות לעצמי הרשאות Local Privilege Escalation כרגע אני לא רוצה לדבר על Local Privilege Escalation ראינו כבר את הטריקים האלו בדומיין איך עושים עם NTLM RelayX כרגע אנחנו מתרכזים בלפתוח סשן

  16. 04:57

    והנה אנחנו רואים כאן שסשן אחד נפתח אנחנו יכולים לעשות סשנס ולראות שפתאום מופיע לנו סשן אחד דרך אגב הג'וב כבר לא מאזין ברקע הוא תפס סשן וסגר את הג'וב אין יותר מאזין ואנחנו יכולים להתחבר לסשן הזה כותבים סשן אחד ואנחנו בפנים אנחנו במחשב ההוא בווינדוס 10 אני עושה get pid ואני רואה

  17. 05:21

    שהפיילוד שלי זה process 6440 תוכנה מספר 6440 בזיכרון בואו נראה כאן בטאסק מנאג'ר בדיטלס של התחנה אנחנו רואים שpayload.exit זה 6440 אבל יש כאן בעיה הוא רץ תחת user admin ואם user יעשה לוגוף כל הפרוצסים שלו, כל התוכנות שלו בזיכרון שהיוזר הזה הריץ ייסגרו ואני אתנתק.

  18. 05:49

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

  19. 06:04

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

  20. 06:17

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

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

ההרצאה הקודמת: התקפת NtlmRelayX יחד עם BloodHound.py - חלק 2

ההרצאה הבאה: חטיפת RDP Session - שרת 2016 - חלק 1

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

  • System Testing
  • The File System
  • Disassembly Meterpreter
  • התקנת Agent של System Center בתחנה

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

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