
הטקסט המלא של הדקות הראשונות בהרצאה «דיבאג של Metasploit Meterpreter עם x64dbg» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הקודמת עשינו ניתוח סטטי של הקוד גילינו מה כל פקודה עושה אבל עשינו את זה סטטית בלי להריץ את זה לפי אתר אינטרנט שפירש לנו את כל הקודים עכשיו אנחנו רוצים להיכנס לתוך הזיכרון של המעבד ולראות שבאמת זה נכון זאת אומרת אנחנו לוקחים את התוכנית שלנו מקמפלים
אותה הופכים אותה לקובץ אקזה בואו נמחק את כל מה שהוא עשה לפני כן ונעשה לו קמפול מחדש הולכים לתוכנית שלנו כאן ועושים ריבילד או לחלופין בילד ריבילד סולושן למעלה בתפריט ברגע שאני עושה ריבילד הוא כותב לי פה שהוא בנה לי קובץ אקזה באיזה נתיב
שהוא הצליח הכל בסדר הנה קובץ אקזה ואני רוצה לפתוח אותו בשפת מכונה ולראות את הפירוש שבאמת זה מה שקורה אני עושה פה ראנז אדמיניסטרטור מריץ אותו ככה האנטיווירוס אצלי צריך להיות מנותק, כי עדיין אנחנו לא יודעים להתחמק מהאנטיווירוס, זה בדיוק מה שאנחנו רוצים להצליח בסוף כל
הסיפור הזה, להצליח להתחמק מהאנטיווירוס, ואני רוצה כרגע להפעיל listener שיאזין ויקבל פניות, ואקסיט און סשנס פולס אומר אל תצא גם אם יש לך חיבור, תמשיך להאזין, ואז אנחנו רואים שהוא מאזין, סשנס אפס, ג'ובים של האזנה יש, אף אחד לא התחבר עדיין,
אבל ג'וב עובד ומחכה לחיבור. זה הדבאגר שלנו שרץ שורה-שורה. אנחנו עושים אופן, לפתוח. פותחים פה את הקוד שלנו. איפה הוא נמצא? הנה הוא נמצא בכל הכתובת הזאת.
הנה, זאת הכתובת שלנו. עושים דאבל קליק. הוא טוען לנו אותו לזיכרון וישר עובר למצב פאוזה. פה בצד שמאל אנחנו רואים בדיוק מה קורה, שהוא במצב פאוזה.
הוא עדיין לא הריץ אף פקודה. כנראה שזה קטן לי מדי במסך. בואו נלך לאפיריאנס למראה לפונטים ובמקום 8 שזה קצת מדי בוא נעשה 14 נראה לי 14 זה קצת יותר מדי 12 בסדר נעשה 12 שלא נוציא את העיניים אז אנחנו פה ואנחנו רואים שהפקודה הראשונה אתם רואים ריפ מצביע ואנחנו יכולים לעשות דיבאג טאפ אינטו או ללחוץ F7
אני אלחץ F7 והוא יעבור פקודה פקודה אתם יכולים לראות פה שהוא עובר לי פקודה פקודה דרך אגב הריפ הזה זה פה כל הרגיסטרים פה בצד ימין כתובים לי זה תאי זיכרון שצמודים למעבד ואנחנו יכולים לראות שריפ זה תא זיכרון שמצביע על פקודה הבאה לביצוע ואני רואה שהפקודה הבאה לביצוע זה 930 זה בדיוק זה ככה מעבד יודע איזה פקודה לבצע כי יש לו תא
בזיכרון רגיסטר בזיכרון שמצביע לאיזה פקודה הבאה לבצע שימו לב אני עושה F7 אתם רואים 39 זאת הפקודה הבאה לביצוע אז זאת אומרת שזה תאי זיכרון שצמודים למעבד, נמצאים על המעבד, ופה למטה סתם יש לנו זיכרון רגיל, שאנחנו יכולים לראות את הבפנוכו של זיכרון רגיל,
באיזה כתובת שבא לנו. טוב, מה אנחנו נעבור עכשיו? פקודה, פקודה. בואו נריץ הכל מהר. אנחנו עושים דיבאג run, להריץ הכל מהר, לראות שהכל עובד לנו מהר.
או שאפשר ללחוץ F9 או run, ואז הוא רץ מהר עד שהוא עוצר. שימו לב, הוא עצר בפאוזה, וכותב שיש לו איזושהי שגיאה פה exception איזושהי שגיאה בקוד יש איזשהו באג בתוכנה או לא יודע במה יש לו באג יש לו באג כלשהו אני לא הולך עכשיו לחקור איזה באג יש לו כי זה לא מעניין אותי הבאגים שלו אני רואה שעדיין החיבור
פה לא הצליח ויש לו איזשהו באג מה אני אעשה אני פשוט אתעלם ממנו בוא נתעלם ממנו ונריץ את זה הלאה הנה הנה הנה הוא רץ או running הכל רץ הכל עובד היה איזשהו באג התעלמנו ממנו המשכנו לערוץ הלאה ואני רואה פה שהחיבור הצליח.
הנה, יש לנו סשן אחד, חיבור הצליח, ואנחנו יכולים לעשות סיס אינפו ולראות שהוא באמת מצליח. בייגראונד חוזרים חזרה, ורואים שהחיבור נשאר זמין בסשנס.
בואו תראו איך אני יכול לעצור אותו בנקודה מסוימת. בואו נעשה עוד פעם ריסטארט לתוכנה האחרונה. אני יכול לעשות דבר כזה, אני לוחץ F7, עובר שורה-שורה, ונניח אני רוצה שהוא ירוץ מהר לכמה שורות.
יעשה מהר כמה שורות ולפני השורה הזאת יעצור. אני שם פה breakpoint, הוא רץ מהר עד הברקפוינט הזה ורק שם הוא עוצר. מה זה הברקפוינט הזה?
מאחורי הקלעים, גם זאת פקודה בשפת מכונה. סגרתי את הכל. בשפת מכונה אני יכול לשים ברקפוינט שיעצור באיזושהי פקודה איפה שבא לי. אתם יודעים מה? אני יכול להתחיל ברקפוינט ישר בפקודה הראשונה שלי.
אני עושה 0XCC. 0XCC זה פקודה למעבד, לעצור את הכל, יש דבאגר שרוצה אותך, זו הנקודה האדומה, זה הדבאגר.
זה מה שגורם למעבד להעביר את השליטה לדבאגר חיצוני, לתוכנה שבודקת אותך חיצונית. אנחנו מכניסים לו פה פקודת ברקפוינט, זאת הנקודה שאנחנו פה, או מכניסים לו את האינטראפט שלוש, את הברקפוינט, את נקודת העצירה הזאת.
אנחנו מכניסים לו את זה כפקודה ראשונה, הרי פקודה ראשונה בוודאות צריכה להתבצע, וככה אנחנו עוצרים ומסתכלים מה קורה בזיכרון שלו. אני אומר לו, דבר ראשון תעצור.
אני עושה לו ריבילד, בואו נמחק את הכל, שנוודא שהכל תקין. נעשה לו עוד פעם ריבילד. הנה הוא בנה לנו הכל מחדש.
משאיר רק את הקובץ אקזה. הולך לדבאגר. שימו לב, פתחתי אותו run as administrator. בואו אני אראה לכם עוד פעם, מי שפספס אותי. בא לדבאגר, עושה run as administrator.
עושה פייל open, פותח את הקובץ אקזה. הוא מריץ אותו וישר עוצר אותו פאוז כי נקודת כניסה הוא לא יודע מה אני רוצה לעשות אז הוא עוצר אותו על הפקודה הראשונה אני אומר לו לרוץ מהר run מהר הוא מגיע לאיזושהי נקודה ועוצר למה הוא עצר אקספשן בעיה תקלה מספר 0420 זה התקלה שכל הזמן יש לנו אותה היא פחות מעניינת אותי אני לא רוצה שיעצור לי כל פעם
על התקלה הזאת אני לא הולך לטפל בתקלה הזאת אני רוצה להתעלם ממנה אז אני הולך לפרפרנס להגדרות ואומר לו להתעלם מהתקלה הזאת, מהאקספצ'ן הזאת, מהשגיאה הזאת.
אז אני בסטינגס באקספצ'אנס אומר לו ignore last. הוא אומר are you sure האם אתה בטוח שאתה רוצה להתעלם מהתקלה 4242420 שזה זה 4242420 פה למטה אני אומר לו כן ואני יכול לבחור אותה ולהגיד לו אל תעצור עליה don't break ומי שמטפל בה זה התוכנה עצמה זה לא הדבאגר זה לא אני החיצוני אלא הוא בעצמו שהקוד שלו יטפל בשגיאה
הזאת לא מעניין אותי מבחינתי אל תעצור לי את הריצה תרוץ קדימה ושהוא יטפל לבד בשגיאה הזאת יתעלם ממנה יעשה מה שבא לו אז בוא נרוץ ככה שזה לא יטריד אותנו יותר בוא נבדוק שזה באמת עובד נעשה ריסטארט טוענים הכל מההתחלה סיסטם ברקפוינט זה אומר נקודת ההתחלה חזרנו לפקודה הראשונה עושים ראן רצים מהר או עכשיו זה משהו אחר יש לנו פה פאוז בברקפוינט, עצרנו בנקודה את הברקפוינט, כבר לא התקלה היא.
מה זה הברקפוינט הזה? קודם כל, אני יכול לראות שבאמת יש לנו פה את ה-cc, אחרי זה fc4883, מה זה fc4883?
נשמע לכם מוכר? נכון, כי זה הקוד שלנו, fc4883e4. הנה, זה הקוד שלנו, אנחנו ממש יכולים לראות את הקוד שלנו, ואנחנו יכולים עכשיו בקוד שלנו לעבור פקודה פקודה עם F7. הנה הוא נתקע לנו פה על אינטראפט הזה.
הרי הכנסנו לו פקודה לעצור, הוא עצר והוא נתקע עליה,