PracticU

גילוי של הזרקת
דוט-נט זדוני לזיכרון

בלי כתוביותעם כתוביות
PracticU › קורס SOC - מיישם הגנת סייבר › גילוי של הזרקת דוט-נט זדוני לזיכרון
מילון מושגים:
תוכנה זדונית - כל תוכנה שנועדה לפגוע במערכת, לגנוב מידע או להשתלט עליה, כמו וירוסים, תולעים וסוסים טרויאנים.
קרנל - ליבת מערכת ההפעלה, שמנהלת את החומרה, הזיכרון והתהליכים ומתווכת בינם לבין התוכנות.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
CLR - סביבת הריצה של .NET שמריצה את הקוד, מנהלת את הזיכרון ומטפלת בשגיאות (Common Language Runtime).
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
Sysmon - כלי של מיקרוסופט שמתעד פעילות מפורטת במערכת Windows ביומן האירועים, לצורכי ניטור ואבחון אבטחה.

גילוי של הזרקת דוט-נט זדוני לזיכרון
למה תוכנה זדונית שפועלת רק בזיכרון ("fileless") קשה לאיתור, ואיך מעקב ברמת הקרנל עוזר לתפוס אותה בכל זאת.
שתי אסטרטגיות תקיפה
1. Living off the Land: התוקף לא מתקין שום כלי חדש, אלא משתמש בכלים שכבר קיימים במחשב (כמו PowerShell המובנה) כדי להריץ פעולות זדוניות. יתרון: אין קובץ חדש בדיסק, ולכן אנטי-וירוס שסורק קבצים לא מזהה כלום - החיסרון מצד התוקף הוא תלות ביכולות הכלים שכבר קיימים בקורבן.
2. Bring Your Own Land: התוקף מעתיק אל המחשב כלי משלו עם יכולות גבוהות יותר, אבל זה משאיר יותר סימני חדירה ולכן קל יותר לאתר אותו.
איך מזהים גם כשהפעולה בזיכרון בלבד
1. זיהוי תוכנת דוטנט: טעינה של DLL-ים מסוימים (כמו CLR, Just-In-Time) מעידה שהתוכנה פועלת על בסיס .NET, ואפשר לעקוב אחרי טעינתם.
2. המגבלה של כלי ניטור בסיסיים: כלי כמו Sysmon מזהה שנטען DLL כזה, אבל לא יודע אם זה זדוני - תוכנות לגיטימיות רבות גם הן כתובות ב-.NET.
3. מעקב ברמת ETW עצמה: כדי לראות בפועל אילו פקודות מריצה התוכנה, צריך להתחבר ישירות לספק של .NET Runtime במערכת ETW ולסנן רק לאירועים הרלוונטיים, ולרשום את התוצאה לקובץ שמוזן למערכת ניטור מרכזית (SIM).
שימו לב
מכיוון שהפעולה מתבצעת בזיכרון בלבד ולא נשארת בדיסק, היא קשה הרבה יותר לאיתור מהתקפות רגילות. מעקב ברמת הקרנל חשוב כאן כי כל פעולה, גם בזיכרון, חייבת לעבור בקרנל של מערכת ההפעלה.
הסטודנט מבין עכשיו למה תקיפות fileless מאתגרות לזיהוי ומדוע מעקב קרנל הוא כלי ההגנה המרכזי נגדן, בלי לקבל שלבי הפעלה לביצוע תקיפה כזו.
השיעור הבא בקורס: פקודת Get-WinEvent חלק 1

פרקי ההרצאה: גילוי של הזרקת דוט-נט זדוני לזיכרון

  1. 00:00

    זיהוי תוכנת .NET זדונית ברמת הקרנל

  2. 00:37

    אסטרטגיית Living off the Land

  3. 01:31

    אסטרטגיית Bring Your Own Land

  4. 02:28

    זיהוי .NET לפי טעינת CLR DLL

  5. 03:28

    מגבלת Sysmon בזיהוי

  6. 04:05

    מעקב עם ספק .NET Runtime

  7. 05:00

    ניתוח האירועים בלוג

תמלול ההרצאה: גילוי של הזרקת דוט-נט זדוני לזיכרון

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

  1. 00:02

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

  2. 00:17

    זאת אומרת, אנחנו נראה איך הכל מתבצע שלב אחר שלב. בגדול יש שתי אסטרטגיות לתוכנות זדוניות, אחת שנקראת Living off the land, לחיות מתוך האדמה, בתוך הדברים שיש במחשב של הקורבן זאת אומרת לא מתקינים שום דבר חדש משתמשים לדוגמה בפאור של הקיים בווינדוס שכבר מותקן מראש שם והתוקף לוקח את הפאור

  3. 00:44

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

  4. 01:13

    התקפות כאלו living off the land צריך לעקוב אחר זיכרון של המחשב וזה הרבה הרבה יותר מסובך ואפשר להתחמק יותר בקלות אבל אנחנו פה מוגבלים ליכולות ולתוכנות שמותקנות במחשב של הקורבן.

  5. 01:30

    יש אסטרטגיה אחרת שנקראת Bring Your Own Land. תביא את האדמה שלך, תביא את התוכנה שלך, את האקזה שלך. למעשה, התוקף מעתיק למחשב היעד, לקורבן, את האקזה שלו, את התוכנה שלו, עם יכולות מאוד מאוד גבוהות.

  6. 01:49

    אז היתרון זה יכולות גבוהות, החיסרון, שיותר קל לאתר את זה, יותר IOC אינדיקציות לחדירה בכל מקרה אתם תראו בעולם של דוטנט ופאור של הרבה פעמים מנצלים את ה-living of the land את הפאור של הקיים להריץ בו פקודות היום אנחנו נראה איך אפשר לתפוס כזה דבר שעובד רק בזיכרון וזאת בעיה מאוד מאוד רצינית יש המון המון המון הגנות

  7. 02:16

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

  8. 02:45

    CLR-DLL, כמו CLR-GIT, Just-In-Time-DLL ה-DLL-ים האלו זה למעשה ה-DL-ים ש-dotnet צריכה בשביל לעבוד, ואנחנו יכולים לעקוב אחרי ה-DL-ים האלו, גם MS-Core DLL, וכך לדעת שהתוכנה עובדת על בסיס-dotnet, ולא נניח C++ רגיל.

  9. 03:06

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

  10. 03:18

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

  11. 03:31

    אז קודם כל לגבי הסיסמון, סיסמון גם עוקב אחרי ETW והוא מזהה שיש לנו טעינה של DLL, יכלנו גם בלי סיסמון לעקוב אחרי הקרנל. פה יש לנו דוגמה שאירוע מספר 7 בסיסמון אומר ש mscore.dll נטען על ידי תוכנת sitbelt.

  12. 03:52

    הבעיה של כל הסיסמון הזה שהוא מזהה טעינה של dll אבל הוא לא יודע האם זה זדוני או לא. זה שהתוכנה הטעינה clr של .NET 4 זה לא אומר שהיא זדונית כי היום המון המון תוכנות כתובות על .NET.

  13. 04:07

    צריך להסתכל בפנוכו איזה פקודות התוכנה מנסה לבצע ואת זה סיסמון כבר לא יודע לעשות. ולכן אנחנו יורדים לרמה של ETW בעצמנו, למערכת ניטור של Windows, בלי העזרה שלו, ומתחילים לעקוב אחרי האירועים של Provider, של ספק .NET Runtime, מה קורה ב- .NET בזמן אמת, הספק הזה מביא מידע מתוך הקרנל, אנחנו גם אומרים לו שאנחנו

  14. 04:37

    מעוניינים רק באירועים ספציפיים, ב-Kewords ספציפיים, שלא נהיה מפוצצים באירועים מיותרים, ורושמים הכל לתוך הקובץ. ברגע שמערכת הזאת מתחילה לעקוב אחרי האירועים, אנחנו מפעילים את התוכנת seedbelt.exe token privileges ששולפת את כל הטוקנים, את כל ההרשאות שיש ליוזר במערכת ההפעלה,

  15. 05:00

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

  16. 05:17

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

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

ההרצאה הקודמת: גילוי פריצה עם ETW - SilkETW

ההרצאה הבאה: פקודת Get-WinEvent - חלק 1

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

  • הזרקת סוס טרויני ישירות לזיכרון - עם Powershell - כלי Unicorn
  • יצירת Controller - דוט-נט Core
  • הסבר על Console - דוט-נט Framework vs Core
  • הסבר על WinForms - דוט-נט Framework vs Core

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

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