PracticU

Meterpreter & Powershell

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › Meterpreter & Powershell
מילון מושגים:
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
הקסדצימלי - שיטת ספירה בבסיס 16, המשתמשת בספרות 0-9 ובאותיות A-F, ונפוצה לייצוג ערכים בינאריים בקצרה.
ASCII - תקן לקידוד תווים שמייצג אותיות, ספרות וסימנים כמספרים, ומשמש בסיס לייצוג טקסט במחשב.

Meterpreter & Powershell
בשיעור זה ממשיכים בפרק ההתחמקות מאנטי וירוס ורואים שאותו payload מגיע בכל פורמט שמבקשים, בין אם PowerShell ובין אם קובץ הרצה, ושהבעיה אינה באריזה אלא בשפת המכונה שבפנים, שאותה האנטי וירוס מכיר. גם כאן הדגש הוא על הבנת המנגנון.
נושאי הסיכום המוצגים בשיעור:
1. אריזות שונות לאותו payload: הכלי המייצר את ה payload יכול לעטוף אותו בפורמטים שונים. בבקשת פורמט PowerShell הוא מייצר קובץ PowerShell שבתוכו שוב מערך של מספרים בשפת מכונה, ומסביבו קוד שמקצה זיכרון, מעתיק את המערך אליו ומריץ אותו בתהליכון.
2. פונקציות מערכת ולא קוד כתוב: הסקריפט אינו ממציא יכולות משלו, הוא מייבא מ kernel32.dll פונקציות מוכנות של מערכת ההפעלה, כמו הקצאת זיכרון ויצירת תהליכון, בדיוק כמו במאקרו של אקסל בשיעור הקודם.
3. הרצה בזיכרון בלבד: החשוב להבין שכל ההרצה מתבצעת בזיכרון, ואין שום קובץ על הדיסק. ה payload נטען כתהליכון נוסף של תוכנה קיימת, וכל הרצה מחדש של הסקריפט פותחת חיבור נוסף אל המאזין, כלומר סשן חדש בכל פעם.
4. האנטי וירוס מזהה את שפת המכונה: כאשר ההגנה בזמן אמת מופעלת, האנטי וירוס עוצר את הסקריפט מיד וכותב שמצא וירוס. הסיבה אינה האריזה, אלא שהוא מכיר את רצף הפקודות בשפת המכונה שבפנים. לכן שום שינוי קוסמטי באריזה לא יעזור כל עוד הליבה נשארת.
5. אותו payload גם בתוך קובץ הרצה: מייצרים עכשיו את אותו payload בפורמט של קובץ הרצה x64. קובץ כזה נבחן בעזרת עורך קבצים הקסדצימליים, כלי המציג את התוכן הגולמי של הקובץ בייצוג הקסדצימלי וב ASCII.
6. מבנה קובץ הרצה: כל קובץ הרצה מתחיל בשתי האותיות MZ, סימון התקן קובץ ההרצה, ומיד אחריו מופיע המשפט המוכר שהתוכנה אינה יכולה לרוץ במצב DOS. זהו חלק מהתקן ולא סוד.
7. הוכחה שהליבה זהה: מחפשים בתוך קובץ ההרצה את רצף ההקסדצימלי המוכר של ה payload, מנקים ממנו תחיליות, ומוצאים אותו בתוך הקובץ, אותו רצף בדיוק שהיה בגרסאות האחרות. כלומר כל הפורמטים משתפים את אותה שפת מכונה.
8. העברת הקובץ במציאות ומגבלתה: במציאות קובץ כזה עשוי להגיע דחוס בארכיון או דרך שירות אחסון, וגם אז ברגע שהמשתמש מריץ אותו האנטי וירוס עוצר אותו. העברה חכמה אינה עוקפת זיהוי של התוכן.
9. ההשוואה במעבדה: בלי הגנה בזמן אמת הקובץ רץ ופותח סשן בכל הרצה, ועם ההגנה הוא נתפס מיד ונמחק. כך מודגם בצורה מוחשית ההבדל בין סביבה מוגנת ללא מוגנת.
10. שני כלי ניתוח שיותקנו: הכלי הראשון הוא מנפה שבירות לקבצי הרצה, שמאפשר ניתוח דינמי, כלומר צפייה בקוד בזמן ריצה מתוך הזיכרון האמיתי, פקודה פקודה. הכלי השני הוא סקריפט חינמי שמחלק קובץ לחתיכות קטנות, כמה בייטים כל אחת, כדי שאפשר יהיה לזהות באיזו חתיכה בדיוק נמצא הרצף שהאנטי וירוס תופס.
11. הכיוון של ההמשך: בשיעורים הבאים מחלקים את הקובץ לחתיכות ומאתרים בדיוק באיזה חלק נמצאת החתימה שהאנטי וירוס מזהה, ומה עושים עם זה.
בשיעור זה ראינו שאותו payload מגיע בכל פורמט, PowerShell וקובץ הרצה כאחד, שהרצתו נעשית כולה בזיכרון, שהאנטי וירוס תופס אותו בגלל שפת המכונה המוכרת שבפנים ולא בגלל האריזה, ושהעברה דחוסה אינה פתרון. הותקנו המנפה לניתוח דינמי והסקריפט לחלוקת הקובץ לחתיכות עבור ההמשך.
בשיעור הבא נעסוק בנושא Meterpreter EXE vs Windows Defender.
SR12502HE

פרקי ההרצאה: Meterpreter & Powershell

  1. 00:00

    הכנת המאזין לחיבורים

  2. 00:41

    ייצור Payload ב-PowerShell

  3. 01:20

    ניתוח הסקריפט והפונקציות

  4. 02:19

    זיהוי על ידי אנטי וירוס

  5. 03:14

    הרצה בזיכרון וסשנים

  6. 03:56

    יצירת קובץ EXE לניתוח

  7. 04:50

    פתיחת הקובץ בעורך הקסדצימלי

  8. 05:30

    איתור שפת המכונה בקובץ

תמלול ההרצאה: Meterpreter & Powershell

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

  1. 00:02

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

  2. 00:23

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

  3. 00:46

    עושה הוא מייצר לי קובץ matpsh power shell אתם רואים זה הקובץ הזה שהוא מייצר לי בפורמט של power shell אתם תראו עוד פעם הוא לוקח את כל הקוד הזה במערך של שפת מכונה זאת אומרת שזה מספרים שהם פקודות בשפת מכונה, בשפת הסמבלר, ויוצר מהם Thread,

  4. 01:11

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

  5. 01:22

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

  6. 01:52

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

  7. 02:16

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

  8. 02:33

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

  9. 02:57

    הוא למעשה פותח את זה כ-thread נוסף בזיכרון לתוכנה קיימת, ובהנדלר כאן אנחנו רואים שיש לנו פה סשנים שנפתחים. אתם רואים סשן מספר 2. אם אני אעשה עוד פעם את הפקודה הזאת, קריאה thread, הוא יעשה לי פה סשן מספר 3. אתם רואים, עכשיו יש שלושה סשנים.

  10. 03:17

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

  11. 03:45

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

  12. 04:03

    בואו תראו, אני עושה פה קונטרול L, אני מייצר עכשיו MSF ונום את הפיילואוד שלי ב-exe קובץ אקסי ואני קורא לו מטר פריטר אקסי x64 עם פיילואוד שהוא גם 64 ביט.

  13. 04:19

    אקסי פשוט אני מייצר שמריץ את הקוד הזדוני. אני רוצה להראות לכם מה קורה בתוך האקסי הזה, זאת אומרת יש לי קובץ אקסי הזה, אני יכול להיכנס פנימה ולראות מה קורה במקום לעשות cut אני משתמש בפמו notepad שנקרא x-editor אני רק צריך להתקין אותו up install x-editor

  14. 04:40

    שזה כמו notepad משוכלל עבור קבצי אקזה התקנתי אותו ואני מפעיל את הקובץ אקזה שלי בתוך x-editor ואני מסתכל פה תמיד קובץ xc יתחיל מאותיות mz למה? כי זה תקן להרצה ויהיה לו פה this program cannot be running dose mode.

  15. 05:01

    שימו לב, כשאתם רואים mz, זה התקן של קובץ הרצה. בואו נחפש את השפת מכונה המפורסמת שלנו, fc4883e4. בואו נחפש כזה דבר.

  16. 05:17

    ניקח את זה, נעשה לזה קופי. שנייה, תנו לי להיפטר מכל הסימנים שמפריעים, כל ה-0x. אני משאיר רק את הספרות עצמם, 48, 83, E4, F0, הולך חזרה לקאלי.

  17. 05:36

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

  18. 05:51

    אתם רואים אותו? FC4883, תראו את זה. זה 41, הנה, תסתכלו. 41, 51, תסתכלו טוב טוב. אתם יכולים להשוות.

  19. 06:01

    ולראות שזה בדיוק אותו דבר כמו פה. אתם רואים? fc48, כל האפסים, אחרי זה 4151, אחרי זה 4150, תסתכלו, זה בדיוק אותה שפת מכונה.

  20. 06:15

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

לקורס המלא: קורס סייבר למתחילים אונליין

ההרצאה הקודמת: Meterpreter & Macro in Excel

ההרצאה הבאה: Meterpreter EXE vs Windows Defender

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

  • PowerShell Versions
  • פקודות Exchange Powershell
  • איסוף מידע עם Powershell - חלק 1
  • זיהוי הזרקת Powershell - חלק 1

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

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