PracticU

הזרקה Process Injection
חלק 1

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

הזרקה Process Injection חלק 1
הרצאה זו מציגה כלי לניטור מתקדם של תהליכים, Process Hacker (כיום נקרא System Informer), כהכנה לנושא Process Injection, הזרקת קוד לתוך תהליך קיים.
מה הכלי מראה
1. תהליכים ושירותים: Task Manager מתקדם שמציג את כל התהליכים הרצים, את השירותים (כולל דרייברים), ומאפשר גם ליצור שירות חדש ולהגדיר באיזה שלב של האתחול הוא עולה.
2. רשת: אילו תוכנות פתחו אילו פורטים, לאיזה יעד ובאיזה פרוטוקול, ומה מצב החיבור.
3. דיסק ו-Firewall: מי פונה לדיסק, ואיזו תקשורת ה-Firewall של Windows חסם.
4. מודולים (DLLים): עבור תהליך נבחר ניתן לראות אילו DLLים הוא טוען לזיכרון. למשל PowerShell טוען ספריות קוד שמשותפות לתוכנות רבות, כמו ספרייה לקריפטוגרפיה, ספרייה לגרפיקה, וספרייה של האנטיווירוס המובנה.
5. תהליך מנוהל (Managed) או לא: תהליך הכתוב ב-.NET (כמו PowerShell) טוען CLR, מנגנון שמתרגם את הפקודות לשפת מכונה בזמן אמת ומאפשר לאותו קוד לרוץ על חומרות שונות. תהליך הכתוב ב-C++ ומקומפל ישירות לשפת מכונה, כמו שירות ההדפסות (Spool Service), אינו טוען CLR.
למה זה חשוב
ההבדל בין תהליך עם CLR לתהליך בלעדיו הוא הדרך לזהות בהמשך אם קוד חוץ הוזרק לתוך תהליך: אם לתהליך שאינו מבוסס .NET מתחיל להיות CLR, זה סימן שמשהו שאינו חלק ממנו נטען לתוכו.
שימו לב
ההרצאה היא חלק ראשון, רקע והכרות עם הכלי בלבד. הזרקת הקוד עצמה מוסברת בהרצאה הנפרדת שאחריה.
אחרי ההרצאה אפשר להסביר מה Process Hacker מראה על תהליך, ולהבחין בין תהליך מנוהל (.NET) לתהליך שאינו מנוהל.
השיעור הבא בקורס: הזרקה Process Injection חלק 2

פרקי ההרצאה: הזרקה Process Injection חלק 1

  1. 00:00

    הזרקת קוד לתוך תהליך

  2. 00:42

    התקנת Process Hacker

  3. 01:18

    תהליכים, שירותים ודרייברים

  4. 02:10

    צפייה בחיבורי רשת

  5. 02:46

    פיקוח על דיסקים וחומת אש

  6. 03:37

    מספר תהליך ומחזור חיים

  7. 04:11

    טעינת מודולים לזיכרון

  8. 05:05

    ה-CLR והידור בזמן אמת

תמלול ההרצאה: הזרקה Process Injection חלק 1

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

  1. 00:02

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

  2. 00:24

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

  3. 00:42

    ניכנס לתוך מכונה וירטואלית, נכתוב Process Hacker Downloads, נלחץ על ה-Recommended Link, על הקישור המומלץ, יש פה דאונלואוד, שימו לב, הם שינו שם ל-System Informer, כנראה מישהו קנה אותם ורצה דרכם לפרסם את עצמו, כולם קוראים לזה Process Hacker, נעשה נקס נקס נקס, פיניש.

  4. 01:04

    אז עכשיו זה נקרא System Informer ובמציאות כולם קוראים לזה Process Hacker, שזה Task Manager משוכלל. ומה אנחנו רואים כאן? אנחנו רואים את כל הטאסקים שרצים, את כל הפרוצסים שעובדים, זה אומר תוכנות שכרגע עובדות, רצות על המעבד, לכל תוכנה יש מספר Process ID,

  5. 01:24

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

  6. 01:47

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

  7. 02:05

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

  8. 02:18

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

  9. 02:35

    0.0.0 זה אומר שהוא מחכה לחיבור. המחשב שלי מאזין בפורטים האלו, אתם רואים? לוקל פורטס ורימורט פורטס. אז זה השיחות הקיימות מהדפדפן החוצה, זה מה שהמחשב שלי מוכן לקבל.

  10. 02:48

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

  11. 03:14

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

  12. 03:36

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

  13. 03:53

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

  14. 04:23

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

  15. 04:37

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

  16. 04:51

    אז אנחנו רואים פה את ה-power shell, כולל ה-DLLים שהוא טוען לי זיכרון, וכאן אנחנו גם יכולים לראות לאיזה כתובת בתוך הזיכרון שלו, בתוך התוכנה שלו, בתוך הפרוצס שלו, הוא טען לכתובת כזאת וכזאת.

  17. 05:05

    מה שמעניין אותי להראות לכם שיש כאן CLR. CLR אחראי לקחת פקודות של power shell ובזמן אמת לתרגם אותן לשפת מכונה. זאת אומרת, power shell ו.NET, אתם רואים .NET runtime, גאסט אין טיים קומפיילר הוא אחראי לקחת את הפקודות שאנחנו כותבים ולהפוך אותן לשפת מכונה זאת אומרת שאם אני אכתוב עכשיו get child item זה למעשה תראה לי

  18. 05:32

    את כל הילדים שיש בתיקייה הזאת תראה לי את כל הקבצים שיש בתיקייה הזאת זה כמו לעשות דיר ברגע שאני מריץ את הפקודה הזאת היא הופכת משפת .NET לשפת מכונה כי המחשב מבין רק שפת מכונה ומי שעושה את זה זה קומפיילר CLR עכשיו עכשיו אנחנו יכולים גם לעמוד על ה-power-share ולראות שכתוב כאן process is managed.dotnet כאילו התהליך הזה מנוהל על ידי ה-dotnet

  19. 05:59

    למעשה ה-CLR הזה טעון בזיכרון ככה אנחנו יודעים שהקוד הזה כתוב בשפת .NET שזה יכול להיות C-Sharp ושפות אחרות בוא נראה משהו אחר שהוא לא .NET לדוגמה ספול סרוויס מה זה ספול סרוויס הוא אחראי על הדפסות תסתכלו טוב טוב אין פה .NET ואין פה managed, ובפרופרטיס שלו, במודולים, אם נעשה CLR, אנחנו לא נראה אותו כי הוא לא חלק מזה.

  20. 06:28

    למה? כי spool service, השירות הזה, נכתב לא בשפת .NET, לא בפלטפורמה של .NET, הוא כתוב ב-C++. כשכותבים פקודות ב-C++, איך שמסיימים לכתוב את התוכנה, עושים קומפילציה, הופכים אותה לשפת מכונה, את ה-exe שלה, ואז את הפקודות בשפת

  21. 06:47

    מכונה מביאים ללקוח סופי,

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

ההרצאה הקודמת: חטיפת DLL - עם Procmon - Process Monitor

ההרצאה הבאה: הזרקה Process Injection - חלק 2

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

  • process
  • הסבר על Dependency Injection
  • התקפת SQL injection
  • הגנה מהתקפות SQL Injection

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

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