
הטקסט המלא של הדקות הראשונות בהרצאה «שינוי חתימה של Payload» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב חברים, איך אנחנו חומקים מההגנה הראשונה של חתימות שיש לאנטיווירוס? אני מזכיר לכם שחתימות זה אוסף מילים רעות שמזהות את הקוד הזדוני שהוא כבר יודע, או אוסף מספרים, רצף של כל מיני מספרים שמזהים את הקוד הזדוני שהוא כבר מכיר.
לפי החתימה הזאת הוא מזהה אותי כרע. איך אני חומק מהזיהוי הזה? אז קודם כל, שיטה הכי פשוטה, פשוט לכתוב קוד חדש לחלוטין. לכתוב קוד חדש לחלוטין ואף אחד לא יזהה אותי וזה הכי פשוט אבל אני רוצה לקחת קוד מקורי קוד מקורי שלא יזהו אותי זה האתגר האמיתי למה קוד מקורי, אוריג'ינל פיילוד?
כי אני כבר יודע שהוא עובד טוב, יש לו יכולות גבוהות הוא יודע לשים ברג'יסטרי שאחרי הריסטארט הקוד שלי יופעל הוא יודע להכניס אותי כסרוויס, הוא יודע לגלות לי מחשבים ברשת הוא יודע לתקשר איתי במוצפן
יש לי קוד פיילואוד מצוין שעובד ולא בא לי לכתוב אחד חדש. אז איך אני מתחמק מאנטיווירוס כשהחתימה של הפיילואוד שלי כבר ידועה לו והוא מנסה לתפוס אותי?
אז בואו נתחיל משיטות פשוטות יחסית שנקראות פולימורפיזם. מה זה פולימורפיזם? שינוי צורה. אני קורא לזה פולימורפיזם level 1. למה level 1? כי זאת השיטה הכי כזאת פשוטה.
אני בא לקחת את הפיילואוד הקיים ולקודד אותו. מה זה לקודד? נניח להציג אותו בצורה טיפה שונה כאשר התקן של הקידוד זה משהו שידוע כמו בייס 64 או יש קידודים אחרים בקאלי לינוקס אני אראה לכם את הקידודים האלו בהמשך הבעיה בקידודים האלו בגלל שהם ידועים הם באמת היו חומקים מהחתימות הידועות עד שהיצרנים של אנטיווירוס
למדו את אותם החתימות גם לאחר הקידוד זאת אומרת למדו את האלגוריתמים הידועים של הקידוד ולמעשה זה כבר לא עובד היום. אז מה עשו האנשים הרעים?
האנשים הרעים אמרו בואו נעשה קידוד סודי שאף אחד לא מכיר אותו. נעשה קידודים סודיים. עכשיו מה ההבדל בין קידוד להצפנה? שאין מפתח סודי, זה פשוט קידוד מבולבל יותר.
הצגה שונה של מידע בצורה מבולבלת כזאת שאי אפשר יהיה לעלות עלינו וזה נקרא Obfuscate, הרפול, באנגלית זה הרפול. הרפול של הקוד אנחנו מבלבלים אותו.
ויש לנו הרבה תוכנות שיודעות לעשות אופיוסקייט, לערפל את הקוד, לקודד אותו בצורה שונה ומשונה, בצורה סודית.
לדוגמה, יש UPX פייקר. מה הוא עושה, ה-UPX פייקר הזה? אתם יכולים בגוגל לראות אותו, זה קוד פתוח, אני פשוט לא רוצה לבזבז זמן להראות לכם, תאמינו לי, זה קוד פתוח שמופיע בגוגל.
הוא מכווץ ויודע לפתוח קיבוץ של קובץ אקזה בזיכרון. זאת אומרת, אני מביא לו מראש קובץ אקזה, עושה עליו זיפ אני שולח ללקוח את הקובץ זיפ שאם הוא יעשה דאבל קליק עליו הוא יעשה לו אנט זיפ בזיכרון הראם ויפעיל אותו למעשה זה כמו זיפ ואנט זיפ אבל לא בתוך ארדיסק אלא ישירות בזיכרון לקובץ אקזה ה-upxpaker הזה הוא מצוין כי הוא חוסך מקום ובזיכרון כמו הזיפ הרגיל והוא נפתח לבד ומופעל לבד זה
למעשה זיפ לתוכנות אקזה שפועל כולו בזיכרון מה האנשים הרעים עושים? מה העקירים עושים? לוקחים את ה-UPX פקר הזה ואומרים לו, בגלל שאתה מכווץ, בגלל שאתה מבלבל, בוא תכווץ את הקובץ הזדוני שלי ואז האנטיווירוס לא יזהה אותו.
אני יכול לקחת את ה-UPX פקר הזה ולשנות אותו קצת כי הוא קוד פתוח ואז הוא יכווץ דברים בזיו בצורה קצת שונה, לשנות לו קצת את האלגוריתם ואז אני למעשה בלבלתי את האנטיווירוס כי הוא לא מזהה חתימה, כי כבר הכל מבולבל, וההצפנה, זה לא הצפנה, זה אינקודינג סודי, קידוד סודי, וזה די דומה כבר להצפנה, זה כבר משהו בין
הצפנה לקידוד. אז אופטפיוסקייט זה קידוד של מידע בצורה שונה, מבולבלת, לרוב סודית, ו-UPX פייקר אפשר לנצל אותו למטרה הזאת, אפשר גם לנצל אותו למטרה טובה, לקחת קובץ אקזה, לכווץ אותו, לשלוח ללקוח, הוא עושה דאבל קליק,
עובד לא רגיל, אבל תפס פחות מקום, פחות זיכרון, כמו קובץ זיפ רגיל. זה UPC Packer, זה זיפ קיבוץ לקבצי אקזה שנפתח בזיכרון ואם לוקחים אותו ומשנים אותו קצת והוא כבר נהיה custom made כזה, זה כבר כמו אופוסקייט.
ככה משתמשים בזה. דרך אגב, בעולם האמיתי המון וירוסים משתמשים ב-UPC Packer הזה על אמת כדי לנסות עוד קצת לאספות את עצמם.
זה לא כזה יעיל אבל עדיין זה עוזר ובמציאות היום משתמשים בזה. זאת אומרת הווירוסים האמיתיים, המלווארים האמיתיים, הסוסים הטרויאניים האמיתיים לוקחים UPS פייקר המקורי משנים אותו קצת כדי שלא יהיה פשוט לפתוח אותו ושמים את הקוד הזדוני מכווץ שמה ושמים על עצמם עוד שכבת הגנה מפני גילוי אבל כל זה זה בלי מפתחות סודיים זה בלבול
של קוד הקיים יש שכבה הבאה זה נקרא להצפין payload קיים מה זה אומר להצפין זה אומר נניח כל אות אני מזיז בשלוש קדימה נניח A הופכת להיות D כל אחד אני מזיז נניח בשלוש קדימה או בשלוש עשרה קדימה כמה שאני מחליט יש מפתח סודי וחוץ מזה כל אות מספר שבע עשרה אני מוריד לשמונה אותיות אחורה כאילו אני מתחיל לבלבל את הקוד ויש לי מפתח
סודי שפותח את ההצפנה למעשה קידוד פלוס מפתח סודי זה הצפנה ואנחנו הולכים לעשות את זה אנחנו הולכים להמציא איתכם מפתח נניח סתם נזיז את כל האותיות תשע עשרה מקומות קדימה וכל אות מספר שבע נוריד לשלוש