
הטקסט המלא של הדקות הראשונות בהרצאה «Meterpreter EXE vs Windows Defender» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזו אנחנו נבין איך להתחמק מאנטיווירוס בקובץ אקזה אנחנו הולכים לחלק את הקובץ הזה למלא חלקים קטנים ולראות בדיוק איזה חלק מפריע לאנטיווירוס שלנו, לדפנדר אז אני פותח פה CMD, או יותר נכון פאוורשייל, כי הסקריפט שלי הוא בפאוורשייל
עכשיו אני מייבא את המודול שלו, כי הוא בנוי כמו מודול אז אני מייבא אותו, אבל כרגע אי אפשר להפעיל אותו למה? כי יש פה הגבלה ברמת Execution Policy.
Execution Policy זה זכות להריץ סקריפטים, ואני עושה לו Unrestricted, כברירת מחדל שאי אפשר להריץ סקריפטים. והוא גם לא נותן לי לעשות את זה, למה? כי אין לי הרשאה, Access is Denied.
אין לי הרשאה וחבל מאוד שלא הפעלתי את זה עם הרשאות אדמיניסטרטור, אז אני עושה PowerShell, Run as Administator ומוריד את ההרשאה ל-Unrestricted, וזהו, עכשיו אני אוכל להפעיל את המודול שלי, אחרי שהפוליסי ב-unrestricted, Execution Policy במצב Unrestricted.
הנה אני מייבא את המודול שלי. עכשיו אני לא בתיקי הנכונה, סליחה. צריך להיכנס לתיקי הנכונה. בשעה טובה עשינו אימפורט למודול. ועכשיו הפקודה הכי מעניינת, היא תיקח את הקובץ ותחלק אותו כל 4 בייט לקובץ נפרד. זאת אומרת, תחתוך אותו להרבה מאוד חלקים.
שימו לב, קובץ זה למעשה מספרים שכתובים שם בפנים, ואת המשמעות של המספרים האלו מבינה מערכת ההפעלה כשהיא מתחילה להריץ את הקובץ, כשהיא טוענת אותו לזיכרון.
אז אנחנו עושים פה תיקייה שקוראים לה small files. אנחנו הולכים לחתוך את הקובץ הזה למלא מלא חתיכות קטנות. בואו נראה איך כל זה מתבצע.
זה די פשוט האמת. תחשבו שקובץ זה הרבה מספרים בפנים. בואו נראה מה הוא עשה לנו. הוא עשה לנו מקובץ אחד של 7 קילו בייט של 7168 בייט.
הוא חתך אותו למלא חלקים קטנים ועשה לנו 1800 קבצים. שימו לב, הקובץ הזה זה 0, אין בו כלום. פה 0 עד 4 שמורים כאן. 4 עד 8, או יותר נכון 0 עד 8 שמורים כאן.
0 עד 12 שמורים כאן. אנחנו יכולים לראות גם מה יש בפנים, אני אראה לכם יותר מאוחר. בקיצור הוא לקח את הקובץ וחתך אותו למלא מלא חלקים ועכשיו אנחנו מה יכולים לעשות?
אנחנו יכולים לקחת ולהריץ על התיקייה הזאת scan, סריקה ולראות בדיוק איזה קובץ הוא יתפוס ולפי השם של הקובץ שהוא תופס אנחנו נדע באיזה בייט יש לנו בעיה בואו ניתן לו לעשות סריקה על 1800 קבצים הנה הוא מצא שיש לנו סוס טרויאני ואנחנו עושים לו c details ורואים פה שקובץ 6904
זה הבית, 6904, זה מה שמפריע לו. הבאים כוללים את כל מה שלפניו, אז אנחנו יודעים שזה פה, אז בין 6900 ל-6904, אחד המספרים האלו.
אז בואו נכתוב פה 6900, אני כותב לי פה בצד, 6900 עד 6904, זה איפשהו כאן, בטווח הזה. בואו ניתן לו למחוק, בינתיים תתחיל למחוק את כל מה שמצאת, אין בעיה.
אני חוזר ל-PowerShell. אז מה אנחנו נעשה? אנחנו צריכים לגלות מה יש לנו בתוך הדבר הזה שמפריע לאנטיווירוס. קודם כל, עלינו איפה בדיוק הבעיה. אז אנחנו נכריז על משתנה דולר בייטס, אנחנו יכולים לקרוא לו בכל שם שבא לנו, והוא יקרא מתוך הקובץ את כל מה שיש בפנים.
זאת אומרת, עכשיו בדולר בייטס הזה יושבים כל המספרים. למעשה, הוא קרא את כל הקובץ. אם נעשה פה Enter, אנחנו נראה את כל ה"בפנוכו" של הקובץ. למעשה, זה אוסף של מספרים.
לדוגמה כשעושים זיפ אז מקפצים את כל האפסים האלו ולא סתם שומרים אותם ותופסים מקום. בואו נראה את מה שבאמת מעניין אותנו, שזה 6900 עד 6904.
מה אני כותב לו? אני אומר לו קודם כל סתם תציג לי מספרים, 6901, 234. האמת שזה מ-6901, כן, כי אני צריך סך הכל ארבע מספרים, ארבע בתים.
הרי עשיתי פה אינטרוול ארבע, אז הוא חותך כל פעם בארבע בתים. הנה זה המספרים, זה סתם מספרים שהוא מציג לי. ואני אומר, עבור כל מספר תעשה דולר בית, סוגריים מרובעים ומה להראות. זאת אומרת, אני יכול לעשות כזה דבר.
תראה לי רק מה שיש בבית 901, מספר 86, 902, 903, 904, ככה אני יכול להגיד לו בדיוק מה אני רוצה לראות. עכשיו, אם אני רוצה לראות את זה בצורה של אקסה ולא של יסרוני רגיל, אז אני עושה לו כזה דבר והוא מראה לי את אותו המספר ב-901 במקום 86, 56.
למה במקום 86, 56? כי מה ש-86 אצלנו באקסה זה 56. אתם רואים 86 בדצימאלי, באקסה זה 56. למה אני רוצה לתרגם את זה לאקסה? כי אני רוצה לראות איפה זה נמצא בפיילואוד שלנו, איזה חלק בשפת מכונה מפריע לו.
ראינו שזה אותו payload אצל כולם, זה אותו קוד זדוני אצל כולם בשפת מכונה. אני רוצה לדעת מי זה שמפריע לו. אז חילקנו את הקובץ למלא מלא חלקים ואנחנו מחפשים מה מפריע לו.
אז יש לנו פה ארבע בתים שאנחנו יודעים שאחד מהם מפריע. אז בואו נדפיס את כולם, את כל הבתים האלו, אנחנו פשוט נדפיס אותם ברצף. אז אני אומר לו, תעביר את כל המספרים.
עבור כל מספר 600, 6901, 2, 3, תעשה דולר בית והמספר הזה ועבור כל אחד תציג לי אותו באקסה ואם יש פחות משתי ספרות תוסיף לו מצד שמאל תרפד אותו מצד שמאל באפס כדי שיהיה לי שתי ספרות תמיד.
זה למקרה שיש מספר חד ספרתי והנה הוא כותב לי 56FFD520 בוא נעלה בדיוק מה מפריע לו. איך אנחנו נעלה בדיוק איזה מאלו מפריע לו? משהו כאן מפריע לו, נכון? ואחרי זה נמצא איפה זה נמצא פה בכל שפת המכונה הזאת.
אז אנחנו רוצים לדעת בדיוק איזה בית מפריע לו בקובץ, ואחרי זה נחשוב מה אפשר לעשות עם הבית הזה. אז איך אנחנו נעשה את זה? אז אנחנו נעשה דבר כזה, אנחנו ניקח את הבית, נניח הראשון, נאפס אותו ונבדוק מה קורה לו.
אז נעשה ככה, יש לנו אחד, יש לנו שתיים, יש לנו שלוש ויש לנו ארבע. בוא נעשה ככה, נאפס את ארבעתם.
נאפס את ארבעתם, נראה מה קורה. איפסנו את ארבעתם בזיכרון, זאת אומרת, בתוך הדולר בייץ עדיין שמורים כל הבתים של ה... כל התוכן של הקובץ, אבל עשינו איפוס לארבעת הבעייתיים בתוך הזיכרון, זאת אומרת, הגודל לא השתנה.
ועכשיו אנחנו עושים write all bytes, לכתוב