PracticU

מעקב אחר הליבה של וונדוס - Kernel
Powershell

בלי כתוביותעם כתוביות
PracticU › קורס SOC - מיישם הגנת סייבר › מעקב אחר הליבה של וונדוס - Kernel Powershell
מילון מושגים:
קרנל - ליבת מערכת ההפעלה, שמנהלת את החומרה, הזיכרון והתהליכים ומתווכת בינם לבין התוכנות.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
ETL - תהליך של חילוץ נתונים ממקורות, עיבודם והטענתם ליעד כמו מחסן נתונים (Extract, Transform, Load).
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
Event Viewer - כלי ב-Windows שמציג את יומני האירועים של המערכת והתוכנות, לצורך מעקב ואבחון תקלות.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

מעקב אחר הליבה של וונדוס - Kernel Powershell
ההרצאה מראה כיצד PowerShell מנתח קבצי ETL ויומני אירועים: הפקודה Get-WinEvent קוראת גם קבצי ETL, ובעזרת צינורות (pipe) אפשר לסנן, למיין ולקבץ את האירועים.
השלבים העיקריים
1. קריאת קובץ ETL: מריצים Get-WinEvent -Path <נתיב> -Oldest. הפרמטר -Oldest חובה, כי הקובץ נקרא מהישן לחדש. מוסיפים -MaxEvents 15 כדי לא למלא את המסך.
2. האירועים האחרונים: כדי לקבל את החדשים, קוראים הכול, מעבירים ל-Sort-Object לפי תאריך בסדר יורד, ו-Select-Object -First 10. זה איטי יותר, כי נקרא הקובץ כולו.
3. כל השדות: ברירת המחדל מציגה ארבע עמודות (תאריך, ID, חומרה, message). עם Format-List -Property * רואים את כולן, וביניהן ProcessId, שמראה איזו תוכנה יצרה את האירוע.
4. סינון לפי תהליך: את ה-ProcessId משווים ל-PID ב-Task Manager. Where-Object בודק לכל שורה אם ה-ProcessId שווה למספר (7132 בדוגמה), וכך רואים כל מה שהתוכנה עשתה ברמת הקרנל, כולל ה-DLLs שטענה, גם אם היא לא מדווחת בעצמה.
5. מי עוד טען DLL: מסננים לפי הטקסט של ה-DLL בעמודת message, כדי לראות אילו תהליכים טענו אותו. אם DLL חשוד, אפשר כך לאתר תוכנות נוספות שמשתמשות בו, ואפשר להריץ זאת מרחוק על אלפי מחשבים.
6. יומן Security חי: Get-WinEvent -ListProvider מציג את הספקים של יומן האירועים הרגיל. גם היומנים האלה מגיעים מ-ETW. פרובידר Security Auditing מוגן ב-PPL, ולכן קוראים אותו דרך Event Viewer: Get-WinEvent -LogName Security.
7. קיבוץ והסטטיסטיקה: שומרים את האירועים במשתנה $events. אחר כך Group-Object לפי ה-ID, Sort-Object לפי Count בסדר יורד ו-Select-Object -First 10. בדוגמה אירוע 4624 הופיע 10 פעמים ו-4798 הופיע 8 פעמים. עם Where-Object ו-Select-Object -First 1 קוראים את הודעת אירוע 4624, ועם Measure-Object סופרים כמה פעמים קרה.
8. יומנים מוסתרים: ב-Event Viewer, אחרי View ואז Show Analytic and Debug Logs, מופיעים יומנים שמוסתרים כברירת מחדל כדי לא להעמיס על המערכת.
שימו לב
- קריאת יומן Security עם כ-25,000 אירועים (כ-20 מגה) לתוך משתנה איטית מאוד. המרצה ניקה את היומן (Clear Log), יצר מספר אירועי כניסה ויציאה (כ-44 אירועים) וחזר על הפקודה.
- PPL (Protected Process Light) מגן אפילו מפני מנהל. גם כמנהל, Stop ליומן System נכשל עם Access Denied, כי רק תהליך חתום על ידי מיקרוסופט רשאי לעשות זאת. הוא הוצג ב-Windows 8, כנראה 8.1. ב-Process Hacker רואים בעמודת Protection אילו תהליכים מוגנים, בהפעלה כמנהל. הנושא יורחב בהזדמנות אחרת.
אפשר עכשיו לחקור קובצי ETL ויומני אירועים עם PowerShell ולמצוא איזו תוכנה עשתה מה.
השיעור הבא בקורס: מעקב אחר הליבה של וונדוס - Kernel ETW Providers

פרקי ההרצאה: מעקב אחר הליבה של וונדוס - Kernel Powershell

  1. 00:00

    ניתוח קבצי ETL ב-PowerShell

  2. 00:39

    שליפת אירועים עם Get-WinEvent

  3. 01:17

    מיון אירועים עם Sort-Object

  4. 02:13

    בחירת שדות עם Select-Object

  5. 03:09

    חשיפת כל השדות עם Format-List

  6. 03:47

    זיהוי התוכנה לפי Process ID

תמלול ההרצאה: מעקב אחר הליבה של וונדוס - Kernel Powershell

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

  1. 00:02

    שלום לכולם, בסרטון זה נלמד על PowerShell ואיך הוא יודע לנתח קבצי ETL. למעשה הפקודה של Get Windows Events, שמביאה אירועים מתוך Event Viewer, מתוך יומן האירועים של ה-Windows, יודעת גם להבין קבצי ETL.

  2. 00:21

    וזה עוזר לנו מאוד בניתוח, כי ל-PowerShell יש עוצמות אדירות. בואו נפתח PowerShell, ניכנס לתיקייה Performance Logs, זה Get Child Item שזה כמו לעשות דיר ונראה שיש לנו פה קבצי ETL אז בואו נתחיל לראות איך אפשר להשתמש ב-PowerShell ובעוצמה שלו בשביל לנתח את הקבצים האלו קודם כל אנחנו רואים

  3. 00:46

    פה ש-Get Windows Events ונותנים לו מינוס Path ונתיב לקובץ חייבים להוסיף Oldest וזה איזושהי מגבלה טכנית שהוא חייב לקרוא את זה בסדר מסוים אז צריך להגיד לו באיזה סדר לקרוא את זה מהישן לחדש ונגיד לו לקרוא 15 אירועים בלבד שלא יתפוס לנו מסך מלא אז הנה אנחנו רואים שהפקודה הזאת שלפה לנו 15 אירועים הכי ישנים אתם רואים את השעה 12.36 אם אני רוצה להפוך

  4. 01:17

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

  5. 01:46

    ושימו לב עכשיו זה 12-43 זה אומר שזה האירועים האחרונים שקרו אז עוד פעם get windows events הפקודה מינוס path בנתיב לקובץ בפייפ אני מעביר את כל התוצאה של הפקודה הקודמת את כל האירועים לפקודה חדשה של סורט אובייקט ממיין את זה לפי תאריך לפי סדר יורד זה אומר החדש למעלה ואז בוחר רק את העשרה הראשונים שוב דרך פייפ אני מעביר פלט של

  6. 02:16

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

  7. 02:38

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

  8. 02:55

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

  9. 03:11

    שוב, get windows events, מינוס path, oldest שזה חובה, שולף אירוע אחד, הכי ישן מעביר אותו בפייפ לפקודה הבאה, פורמט ליסט פורמט ליסט, מראה לי הכל לא כטבלה זוכרים לפני כן הייתה טבלה?

  10. 03:28

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

  11. 03:57

    תוכנה יצרה את האירוע הזה. תוכנה 7132. איפה אני רואה את המספרים של התוכנות?

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

ההרצאה הקודמת: מעקב אחר הליבה של וונדוס - Kernel - Logman

ההרצאה הבאה: מעקב אחר הליבה של וונדוס - Kernel - ETW Providers

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

  • PowerShell Versions
  • Meterpreter & Powershell
  • הכספת של וונדוס
  • מיקרוסרביס שמשתמש במיקרוסרביס אחר

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

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