PracticU

זיהוי הזרקת Powershell
חלק 2

בלי כתוביותעם כתוביות
PracticU › קורס SOC - מיישם הגנת סייבר › זיהוי הזרקת Powershell חלק 2
מילון מושגים:
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
תהליך - מופע של תוכנה שרצה בזיכרון, עם הקוד, הנתונים והמשאבים שהוקצו לה על ידי מערכת ההפעלה.
Sysmon - כלי של מיקרוסופט שמתעד פעילות מפורטת במערכת Windows ביומן האירועים, לצורכי ניטור ואבחון אבטחה.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.

זיהוי הזרקת Powershell חלק 2
המשך החקירה: מציאת התוכנה שהזריקה קוד למחשבון של Windows, בעזרת אירוע הזרקת Thread.
השלבים העיקריים
1. מספר האירוע הרלוונטי: הזרקת קוד (יצירת Thread חדש בתוך תהליך קיים) מתועדת ב-Sysmon כאירוע מספר 8 - אפשר למצוא זאת באתר התיעוד של מייקרוסופט.
2. מה זה Thread: קטע קוד שרץ במקביל בתוך תוכנה (process) קיימת. תוכנות מודרניות משתמשות בכמה Thread-ים במקביל (למשל אחד לגרפיקה, אחד לתקשורת).
3. שתי שיטות סינון: האחת (Where-Object) שולפת הכל ובודקת שורה-שורה אם ה-ID שווה ל-8 - עובדת תמיד אך איטית. השנייה (FilterHashtable) מסננת כבר בשלב השליפה - מהירה יותר ומאפשרת גם לבחור שדות ספציפיים.
4. זיהוי מדויק עם TargetImage: בפקודה המדויקת מחפשים אירוע מספר 8 שבו שדה ה-Target הוא נתיב הקובץ המדויק של התוכנה החשודה (כאן - מחשבון), ומוצאים איזו תוכנה הזריקה לתוכה קוד.
5. מגבלת גרסה: גישה ישירה לשדה Target Image (ולא לכל ה-Message כטקסט) זמינה רק מ-PowerShell 6 ומעלה.
שימו לב
כשיש מעט אירועים אפשר לעבור עליהם ידנית. כשיש הרבה אירועים, סינון מדויק לפי Target Image הוא הדרך היעילה למצוא את מקור ההזרקה.
הסטודנט יודע עכשיו לאתר את התוכנה שהזריקה קוד לתהליך אחר, על בסיס אירוע יצירת Thread ושדה ה-Target המדויק.
השיעור הבא בקורס: זיהוי DUMP של LSASS

פרקי ההרצאה: זיהוי הזרקת Powershell חלק 2

  1. 00:00

    זיהוי מי הזריק קוד למחשבון

  2. 00:38

    אירוע הזרקה מספר שמונה ב-Sysmon

  3. 01:16

    יצירת thread חדש ב-process קיים

  4. 02:10

    סינון עם Where-Object לפי ID שמונה

תמלול ההרצאה: זיהוי הזרקת Powershell חלק 2

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

  1. 00:02

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

  2. 00:14

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

  3. 00:33

    את ה-DLL של פאוור של הטעין מחשבון וכנראה שהוא הריץ איזשהם פקודות. עכשיו אנחנו רוצים לדעת מי הזריק לתוך המחשבון הזה ל-calculator.exe הזה את הקוד הזדוני.

  4. 00:45

    אז קודם כל אירוע של הזרקה זה אירוע מספר שמונה ביומן האירועים של Sysmon אנחנו רואים שאנחנו מתעסקים פה ב-Sysmon ואפשר ללכת לאתר של מיקרוסופט ולראות injection של thread זה אירוע מספר שמונה.

  5. 01:02

    בואו אני אראה לכם את זה. הולכים Sysmon events מחפשים פה באתר של מיקרוסופט injection בבקשה. ואנחנו רואים inject קוד עם control f חיפשתי זה event ID שמונה.

  6. 01:14

    יותר מזה, אפשר לעשות אותו גם מרחוק. מה זה עושה? זה יוצר thread חדש, תהליך חדש, קוד חדש שרץ בתוך process קיים. זאת אומרת בתוך ה-process בתוך התוכנה שעובדת של calculator היא הפעילו thread נפרד בפנים, כאילו קוד שרץ במקביל בתוך התוכנה.

  7. 01:32

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

  8. 01:52

    בקיצור ליצור thread חדש ב-process קיים זה event ID שמונה ואנחנו נחפש אירוע מספר שמונה ביומן האירועים של Sysmon. אז בואו נתחיל. יש לנו שתי דרכים איך לעשות את זה.

  9. 02:07

    הדרך הראשונה זה לשלוף את הכל ולהעביר את זה לסינון של where object. זאת גישה שתמיד עובדת, אבל היא יותר איטית כי היא דורשת שליפה של כל האירועים שהיו. אבל אני אוהב את ה-where object כי הוא תמיד עובד לי ואני אומר לו עבור כל שורה שימו לב הדבר הזה זה עבור כל שורה.

  10. 02:26

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

לקורס המלא: קורס SOC אונליין – מיישם הגנת סייבר

ההרצאה הקודמת: זיהוי הזרקת Powershell - חלק 1

ההרצאה הבאה: זיהוי DUMP של LSASS

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

  • הזרקת סוס טרויני ישירות לזיכרון - עם Powershell - כלי Unicorn
  • PowerShell Versions
  • זיהוי מגע באנדרואיד
  • פקודות Exchange Powershell

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

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