
הטקסט המלא של הדקות הראשונות בהרצאה «Metasploit Meterpreter Reverse Https vs Defender» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כרגע ברגיסטר 14 הכל ריק, אתם רואים? הכל אפסים. אני לוחץ פה F7, שזה די-באג, לבצע פקודה אחת F7. הוא מבצע את הפקודה הזאת, ולרגיסטר נכנס ה-77 הזה.
מה אני רוצה לעשות? אני רוצה שלא ייכנס 77, אני רוצה שייכנס 70, ונעשה עוד פקודה שמכניסה 7. זה כל הטריק. אז אני עוצר את הכל ואומר לו דבר כזה: תכניס לי פה לא את ה-77 הזה, זוכרים שזה כתוב הפוך?
תכניס לי 70. בואו נהפוך את זה עוד פעם לאקזה הפכנו אותו לאקזה נלך לדבאגר עוד פעם נטעין אותו לזיכרון הוא עוצר לנו פה בנקודה הראשונה נעשה לו run הגיע עד לברק פוינט עד cc עצר בקוד שלנו שימו לב פה כבר לא 77 פה 70 זה בדיוק מה ששיניתי כרגע אני עושה f7 שזה דיבאג לבצע פקודה אחת ובר 14 יש במקום 77 7 זה אומר שזה באמת עובד
השינוי של הקוד אכן עבד נהדר מה נשאר לנו לעשות להוסיף פה עוד פקודה שמוסיפה ל-R14 סתם מספר 7 אז איך אנחנו נעשה את זה אנחנו נלך לאסמבלר שלנו ונגיד לו דבר כזה תהפוך לי פקודת אסמבלר add להוסיף לרגיסטר 14 זה צריך לדעת אסמבלר כן פקודת add תוסיף לרגיסטר 14 מספר 7. כמובן שאנחנו מוסיפים באקסה 0x זה
אקסה. תוסיף לי מספר 7 באקסה אני עושה לו דיסאסמבלי יותר נכון אסמבלי הנה הוא עושה לי את הפקודה הזאת וככה היא נראית בשפת מכונה 49 83 c607 זה פקודה בשפת מכונה להוסיף לרגיסטר 14 סתם מספר 7. בוא נראה אם התיאוריה שלי נכונה או לא רק שאני אקח את המספרים האלו עם 0x בהתחלה אתם רואים זה אותם מספרים שבע, שישה, שמונים ושלוש, ארבעים ותשע,
אני עושה קופי ואני לוקח אותם, אני רוצה להכניס אותם. זאת אומרת, אני מוסיף לו פקודה שלא הייתה לו. הנה, זה הקוד שלנו, ואנחנו מוסיפים פה עוד פקודה שלא הייתה לפני כן, שלוקחת את זה, הופכת אותו לשבעים, וזה עד ארבע עשרה.
עכשיו, בסוף מבחינת תוכנה זה לא משנה, כי בסוף יש לה ברגיסטר את אותו המספר. בואו נראה שזה באמת יעבוד, שהתיאוריה שלי אכן מצליחה, נעשה ריביל סולושן, נעשה רילאוד, עצרנו בנקודת כניסה, עושים פליי, ירוץ מהר, מגיע עד לנקודה הבעייתית, הנה הוא מכניס 70 ל-R14, כרגע R14 0-0-0,
אני עושה דיבאג, סטפ אינטו F7, הנה הוא מכניס פה 70, והנה פקודה אדד 7, הופה, נהיה 77, אז כאילו מבחינתו הכל אותו דבר, התוכנה צריכה לרוץ רגיל, אני עושה לה לרוץ רגיל ואכן אנחנו רואים פה שהסשן אמור להצליח.
בואו נראה שהסשן מצליח. עוד פעם, יש לנו שני סשנים, עוצרים את הכל, מריצים הכל מהר עד לנקודת העצירה וגם אחריה מריצים הכל מהר ורואים שיש לנו עוד סשן. זה אומר שהתוכנה ממשיכה לעבוד רגיל, הכל עובד רגיל, רק פיצלנו את הפקודה לשני חלקים.
הנה אני מראה לכם שהכל עובד ואנחנו מריצים שם הפקודות. בואו ליתר ביטחון גם נפצל את זה לשניים. אז אני אומר, במקום מספר ארוך הזה, בואו נפצל אותו.
בואו נראה מה זה המספר הזה, זה זה. בואו נעשה סתם, נניח במקום 26, נעשה אותו 26. שימו לב, הסדר הוא הפוך. זה מאוד מאוד חשוב איפה אתם משנים את המספר.
אנחנו מאפסים את ה-6 הזה, סתם תפסתי את ה-6 הזה. זה אומר שאני מאפס אותו כאן, אתם רואים פה בזיכרון. זאת אומרת, המספר הראשון זה היה 0.7, השני היה 26, נהיה 20, ואחרי זה 77, ארבע סי, אז יופי, אז אני צריך להוסיף את המספר פה שש,
אז קודם כל ככה, אני לא עושה מוב, מוב זה להזין משהו בזיכרון, זה אד, אני רוצה פקודת אד. היה פה עשרים ושש, נכון? ככה, לפניו אפס אפס, לא מעניין אותי, אני רוצה להוסיף שש, ופה ארבע אפסים אחריו, זה מה שהיה חשוב לי להבין, כמה אפסים אחריו, אחד, שתיים, שלוש, ארבע.
זאת אומרת שאני מוסיף את השש בדיוק פה במקום הזה, כמו במתמטיקה, נכון? 1, 2, 3, 4, אני לא נוגע בהם, ו-6. זה שה-6 פה נראה לכם לקראת סוף, שלא יבלבל אתכם, כי בזיכרון הוא הפוך.
אז אני רואה את הפירוש שלו, רואה שה-6 הזה מופיע כאן, ועושה פקודת הוספה, ושם כמה אפסים שצריך בסוף. בואו נפרש את הפקודה החדשה הזאת.
add 600, זה המספרים האלו. בואו ניקח את זה ונבדוק שאכן הצלחנו. אני עושה קופי, יופי. עושה לזה דיבאג. בילד ריבילד בונה את זה מחדש אחרי שאני בונה את זה מחדש אני הולך לדבאגר מפעיל אותו מחדש הוא עוצר בפקודה הראשונה מריץ אותו מהר מגיע לפיצול הראשון שלנו 70 ו77 בואו תראו 70 ו77 זה כבר בדקנו עכשיו פה היה 26 הנה אתם רואים הוא פירש אותנו נכון
r10 תסתכלו היה 20 ועכשיו מוסיפים עוד 6 26 חזרנו למספר המקורי מה אכפת לו? הוא צריך שיהיה לו ערך ברגיסטר R10, ערך כזה וכזה. מה אכפת לו? עשינו את