PracticU

שינוי חתימה של Payload

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › שינוי חתימה של Payload
מילון מושגים:
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.
הצפנה - המרת מידע לצורה בלתי קריאה בעזרת מפתח, כך שרק מי שמחזיק במפתח המתאים יכול לפענח ולקרוא אותו.
קוד פתוח - תוכנה שקוד המקור שלה זמין לציבור לצפייה, לשימוש ולשינוי, לרוב לפי רישיון מתאים.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
אלגוריתם - רצף מוגדר של צעדים לפתרון בעיה או לביצוע משימה, שאפשר לממש בקוד.

שינוי חתימה של Payload
בשיעור זה מוסברים העקרונות של עקיפת שכבת החתימות של אנטי וירוס, מהי חתימה, מדוע קוד קיים ומנוסה עדיף על קוד חדש, ומהן רמות שינוי הצורה השונות. השיעור תיאורי בעיקרו ומכין את הקרקע להצפנת ה payload בשיעורים הבאים.
נושאי הסיכום המוצגים בשיעור:
1. מהי חתימה: חתימות הן אוסף של רצפי מספרים או מילים שמזהים קוד זדוני שהיצרן כבר מכיר. האנטי וירוס מחפש אותם בקובץ ולפיהם מחליט שהקובץ רע.
2. הפתרון הפשוט והבעייתי שלו: כתיבת קוד חדש לגמרי עוקפת את כל החתימות, אבל הקוד המקורי כבר מוכח, עשיר ביכולות, יודע להירשם להפעלה אוטומטית, לפעול כשירות, לגלות מחשבים ברשת ולתקשר במוצפן. האתגר האמיתי הוא להשתמש בקוד הקיים ולא להיתפס.
3. פולימורפיזם רמה ראשונה, קידוד בתקנים ידועים: לוקחים את ה payload הקיים ומקודדים אותו לתצוגה שונה לפי תקן מוכר, כמו בסיס 64. בעבר זה עקף חתימות, אבל יצרני האנטי וירוס למדו את האלגוריתמים המוכרים ומוסיפים חתימות גם לגרסאות המקודדות, ולכן השיטה הזאת אינה עובדת היום.
4. ערפול Obfuscation: קידוד סודי שאיש אינו מכיר. בלבול המידע לתצוגה שונה ומבולבלת בלי מפתח סודי, בניגוד להצפנה שבה קיים מפתח. קיימות תוכנות רבות שמבצעות ערפול קוד.
5. דוגמה מוכרת, UPX Packer: כלי קוד פתוח שמכווץ קובץ הרצה ומנפח אותו בחזרה בזיכרון כשמריצים אותו, בדיוק כמו זיפ שנפתח, אבל כולו בזיכרון ולא על הדיסק. הוא חוסך מקום ותופס פחות זיכרון, ובשימוש מסחרי תקין גם נוח. בגלל שהוא קוד פתוח אפשר לשנות את האלגוריתם שלו מעט ולהפוך אותו לכלי מותאם אישית, ואז הוא כבר כמעט ערפול סודי. וירוסים אמיתיים משתמשים בו באמת כשכבת הגנה נוספת.
6. פולימורפיזם רמה שנייה, הצפנה עם מפתח סודי: קידוד בתוספת מפתח סודי היא הצפנה, למשל הזזת כל אות בכמה מקומות לפי חוק סודי. payload מוצפן עובר את סריקת החתימות בקלות, כי הסורק אינו רואה שום דבר מוכר. ואם יום אחד נתפסים והחתימה של הגרסה מוכנסת למאגרי האנטי וירוס, פשוט מחליפים את המפתח, התוצאה כולה משתנה והחתימה הישנה אינה תופסת עוד.
7. פולימורפיזם רמה שלישית, שינוי המקור: בשלב הזה לא מסתפקים בשינוי הצורה אלא מחליפים פקודות בתוך ה payload המקורי עצמו, ברמת האסמבלר או ברמת שפת המקור. למשל פיצול פקודה שמכניסה מספר לשתי פקודות שמביאות לאותה תוצאה. מבחינת הקובץ זו כבר תוכנה חדשה עם חתימה חדשה, ולכן החתימות אינן תופסות. זו רמה קשה יותר לביצוע כי נוגעים בקוד שעובד.
8. השיטה המושלמת, כתיבה מאפס: לכתוב הכל מחדש היא הדרך הבטוחה ביותר מבחינת זיהוי וגם הקשה ביותר, כי דורשת תכנות מלא מהתחלה.
9. מהי הרמה המועדפת ומדוע: ההצפנה עם מפתח סודי נחשבת כאן לרמה הטובה ביותר בתמורה, כי לא נוגעים בקוד המקורי שנבדק ועובד, רק מצפינים אותו, ובמקרה של זיהוי מחליפים מפתח ומקבלים קובץ שונה לגמרי. קידוד פשוט עם תקן מוכר פחות אמין כי קל לעלות עליו, וערפול עם קידוד סודי כבר קרוב מאוד להצפנה.
10. מדוע אסור להשתמש בהצפנה מוכרת: אם בוחרים אלגוריתם הצפנה שכולם מכירים, הוא מתנהג כמו קידוד מוכר ועולים עליו בקלות. צריך הצפנה משלכם, ולכן נדרשת גם יכולת תכנות מסוימת.
11. סדר השיעורים בפרק: יעברו על כל הרמות, ומיד בהמשך ילמדו להצפין את ה payload המקורי, אחת השיטות המפורסמות ביותר, כולל היכולת להחליף מפתח כשמתגלים. קידוד בתקנים ידועים כבר לא עובד היום, ולכן הדרך היא הצפנה וגם כתיבת payload חדש.
בשיעור זה למדנו מהן חתימות אנטי וירוס ומדוע קוד קיים עדיף על קוד חדש, הכרנו את רמות שינוי הצורה, קידוד בתקנים ידועים שאינו עובד עוד, ערפול סודי ובכללו כלי דחיסה מותאם, הצפנה עם מפתח סודי שאפשר להחליף, שינוי הפקודות במקור וכתיבה מאפס, והבנו מדוע הצפנה משלנו היא האיזון הטוב ביותר בין קלות לבטיחות.
בשיעור הבא נעסוק בנושא יצירת תעודה דיגיטלית ויצירת Payload.
SR12526HE

פרקי ההרצאה: שינוי חתימה של Payload

  1. 00:00

    איך עובדות חתימות אנטי וירוס

  2. 00:36

    למה לשמר את ה-Payload המקורי

  3. 01:11

    הכרת שיטת ה-Polymorphism

  4. 01:49

    מגבלות הקידודים הידועים

  5. 02:26

    ערפול קוד Obfuscation

  6. 03:02

    הכרת UPX Packer

  7. 03:40

    שינוי ה-Packer לשימוש עצמי

  8. 05:07

    מעבר מקידוד להצפנה

תמלול ההרצאה: שינוי חתימה של Payload

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

  1. 00:02

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

  2. 00:23

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

  3. 00:47

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

  4. 01:03

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

  5. 01:16

    אז בואו נתחיל משיטות פשוטות יחסית שנקראות פולימורפיזם. מה זה פולימורפיזם? שינוי צורה. אני קורא לזה פולימורפיזם level 1. למה level 1? כי זאת השיטה הכי כזאת פשוטה.

  6. 01:29

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

  7. 01:57

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

  8. 02:09

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

  9. 02:21

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

  10. 02:33

    ויש לנו הרבה תוכנות שיודעות לעשות אופיוסקייט, לערפל את הקוד, לקודד אותו בצורה שונה ומשונה, בצורה סודית.

  11. 02:43

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

  12. 02:55

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

  13. 03:31

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

  14. 03:48

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

  15. 04:12

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

  16. 04:30

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

  17. 04:48

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

  18. 04:58

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

  19. 05:24

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

  20. 05:50

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

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

ההרצאה הקודמת: עקרונות הפעולה של אנטי-וירוסים

ההרצאה הבאה: יצירת תעודה דיגיטלית ויצירת Payload

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

  • איך פועלת חתימה דיגיטלית?
  • שינוי שם מחשב - Hostname
  • שינוי מרחב השמות - Namespace
  • חתימה דיגיטלית - DTR - Image Sign

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

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