PracticU

התקפת Buffer Overflow - סיכום כל הפקודות

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › התקפת Buffer Overflow - סיכום כל הפקודות
מילון מושגים:
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
VPN - רשת פרטית וירטואלית שיוצרת חיבור מוצפן דרך האינטרנט, כאילו המכשיר מחובר ישירות לרשת מרוחקת.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
מעבד - יחידת העיבוד המרכזית של המחשב, שמבצעת את הפקודות של התוכניות ומנהלת את החישובים.
ASCII - תקן לקידוד תווים שמייצג אותיות, ספרות וסימנים כמספרים, ומשמש בסיס לייצוג טקסט במחשב.
בינארי - ייצוג מידע בבסיס 2 בעזרת הספרות 0 ו-1. גם קובץ הכולל קוד מכונה ולא טקסט קריא.
אופרטור - סימן בקוד שמבצע פעולה על ערכים, כמו חיבור, השוואה או פעולה לוגית.

התקפת Buffer Overflow - סיכום כל הפקודות
בשיעור זה אנו מסכמים את כל מתקפת גלישת החוצץ ומבצעים פתרון מהיר של האתגר השני מההתחלה ועד הסוף. אנו עוברים את כל השלבים ברצף: הפעלת הסביבה, פאזינג לגילוי החולשה, זיהוי ההיסט אל האוגר בעזרת תבנית תווים, גילוי התווים האסורים, איתור כתובת קפיצה קבועה, ייצור הפיילואד וקבלת שליטה מלאה בשרת.
נושאי הסיכום המוצגים בשיעור:
1. הכנת הסביבה: נכנסים לאתר האימונים ומפעילים את הקורבן, כדי שיהיה פעיל. מתחברים אליו ב-VPN ולא דרך הווב, ואין צורך בקאלי בענן. מחברים את הקאלי המקומי אל הרשת הפנימית שלהם בעזרת קובץ הגדרות שהורדנו מאתר שלהם, ומקבלים כתובת IP של הקורבן החדש. לעיתים הקורבן אינו ממש מוכן כשהאתר מציג זאת, ואז מנסים שוב ומוסיפים לעצמנו זמן ספייר.
2. ההכנות בקאלי: יש לנו מאזין שיחכה לחיבור אחרי שנסיים את התקיפה, ושורת פקודה רגילה שבה כותבים את הפקודות. המאזין הוא שיבוא בהמשך.
3. הפעלת הדיבאגר והמונה: מפעילים את הדיבאגר בהרצה כמנהל, ובתוכו מגדירים את סקריפט המונה לעבוד בתיקייה ייעודית. הכלי מציג ביומן שההגדרה הצליחה, וחוזרים מחלון יומן הנתונים אל חלון המעבד. מפעילים את הקורבן בתוך הדיבאגר: קובץ ההפעלה של הקורבן נמצא בשולחן העבודה, פותחים אותו ומריצים.
4. בדיקת השירות: מתחברים ל-IP שלו בפורט 1337 וכך מדברים עם השרת. הוא מקבל אותנו, עונה על המילה עזרה ברשימת הפקודות, ואפשר להריץ אצלו פקודת בדיקת גלישה של האתגר השני.
5. פאזינג: ההתקפה מתחילה בגילוי האם יש בכלל חולשה, וזה נקרא פאזינג. יש סקריפט מוכן לפאזינג בשולחן העבודה. מגדירים בו את ה-IP של היום, את פורט 1337, את הקידומת המתאימה לאתגר, ומתחילים לתקוף באות A כפול מאה, וכך הרבה פעמים, כדי לראות אם יש קריסה ואם האות נכנסת אל האוגר. מריצים את הסקריפט עם פייתון 3 וממתינים לקריסה.
6. תקלה אפשרית בסקריפט: אם עובר זמן רב ואין קריסה, עוצרים וחוזרים לסקריפט, כנראה נמחק בטעות רווח חיוני. מתקנים ומריצים שוב, ואז מופיעה קריסה. חשוב לשלוח לשרת בדיוק את המידע כפי שהוא מצפה לו.
7. קריאת הקריסה: רואים קריסה סביב 700 בתים, ויודעים שאיפשהו שם יש קריסה. השאלה היא אם אפשר להשתלט, ובחלון האוגר רואים שנכנס הערך 41, שהוא בטבלת ה-ASCII האות A, כלומר יש לנו פה אפשרות להשתלטות. השלב הראשון עבר: גילינו שיש גם קריסה וגם השתלטות על האוגר.
8. גילוי ההיסט בעזרת תבנית: כדי לגלות את מיקום האוגר עצמו מייצרים קובץ עם סדרה ייחודית של תווים. כמה צריך: 700 ועוד כארבע מאות, כלומר 1100. מייצרים את התבנית הייחודית, רצף שילובים של אות גדולה, אות קטנה ומספר, ומכניסים אותה לתוך הסקריפט השני שלנו, סקריפט הניצול.
9. מבנה הסקריפט: בתוך הסקריפט מכניסים את הרצף הייחודי למשתנה הפיילואד, ורוצים לראות מה ייכנס אל האוגר. כרגע לא יודעים מה יהיה האוגר. הריפוד נשאר ריק לעת עתה, ההיסט ריק, הכתובת ריקה, הריפוד ריק, והכל נכנס לתוך הפיילואד. למעשה הפיילואד הזה יהיה החוצץ שיישלח, כי כל השאר ריק לחלוטין: כל המשתנים ריקים, החוצץ שווה לכל המשתנים האלה, ובסוף החוצץ הוא זה שנשלח. כלומר על הכבל נשלח רק הרצף הזה, עם הקידומת החובה של האתגר שאחריה מתבצעת כל הפעילות.
10. מטרת התבנית: לגלות באיזה תו בדיוק נכנס אל האוגר, ואז נדע כמה היסט צריך לזוז כדי להגיע אל כתובת החזרה. כלומר כמה סימנים מההתחלה עד לסימן המתאים. הכל נכנס להיסט של הגלישה, סתם דריסה מפוזרת, ואחריה יש ארבעה תווים שנכנסים בדיוק לכתובת החזרה שהיא האוגר. צריך לגלות מהם ארבעת התווים שנכנסו לשם, וכך משתלטים על האוגר, כי נדע בדיוק איפה הוא מתחיל.
11. הרצה וטעות נפוצה: מריצים את הסקריפט. אם אין קריסה כלל, סימן ששכחנו להחליף את כתובת ה-IP בתוך הסקריפט אל כתובת הקורבן של היום. מתקנים, וכל המשתנים נאספים אל משתנה חוצץ אחד, מחרוזת אחת שנשלחת על הכבל. מריצים שוב ומתקבלת קריסה, ורואים מה נכנס פנימה אל האוגר. במקום לחפש ידנית איפה הוא נמצא בתבנית, מריצים את המונה ומבקשים ממנו לחפש איזה תו נמצא באוגר. מתברר שהאוגר נמצא במרחק 634 תווים, כלומר צריך להכניס 634 פעמים את האות A, ואחר כך מגיעים אל האותיות B.
12. אימות ההיסט: בודקים שזה אכן כך: הפיילואד הופך לאותיות C, ומצפים לראות שאל האוגר נכנסות האותיות B. קודם כל דורסים עם 634 פעמים האות A, אחר כך מגיעות האותיות B שנכנסות אל האוגר, הפקודה הבאה לביצוע, ואחר כך הולך להיות הפיילואד שלנו, האותיות C. זה מה ששולחים, את הרצף הזה. מריצים הכל: איפוס, רענון, שליחה נוספת, ורואים שבאמת האותיות B נכנסו לשם, הערך 42, ושימו לב שהיה A ואז B ואז C, והאותיות B נפלו בדיוק על כתובת הפקודה הבאה לביצוע. וזו דרך אגב התשובה לשאלה הראשונה שהאתגר שואל: כמה היסט, וההיסט שגילינו הוא 634, והתשובה מתקבלת כנכונה.
13. גילוי התווים האסורים: תווים אסורים הם מה שאסור לשלוח בתוך הפיילואד, בתוך הפצצה שלנו. מייצרים מערך בתים, כל האפשרויות בלי אפס אפס, בעזרת המונה, שמייצר על הדיסק את כל האפשרויות. אם הפקודה לא עובדת, כנראה יש רווח מיותר בהזנה. במקום להעתיק את התווים מהמסך, מעתיקים אותם מקובץ הטקסט שהכלי ייצר, כי הוא ייצר גם קובץ בינארי וגם קובץ טקסט. לוקחים את כל הצירופים האפשריים, מכניסים אותם לסקריפט בעזרת אופרטור ההוספה, ושולחים כדי לראות אם יש תו שלא ייכנס אל הזיכרון, אילו תווים אסור לשלוח. מתחילים הכל שוב, איפוס והרצה, מפעילים את הסקריפט, מתקבלת קריסה, והאותיות B נכנסות, אבל מה שמעניין אותנו הוא מה הם התווים שלא נכנסו. לוחצים על אוגר מצביע המחסנית, שמצביע על כתובת המחסנית בזיכרון, ומבקשים להציג אותה בצורה יפה יותר בעקיבה בחלון הדאמפ, והוא מציג את אותה כתובת בצורה נוחה יותר.
14. ההשוואה האוטומטית: במקום לחפש ידנית איזה מספר חסר, מנצלים את המונה שיעשה זאת במקומנו בעזרת פקודת ההשוואה, שכל הפקודות האלה יהיו בשרת הקבצים. מעתיקים את כתובת אוגר המחסנית, מריצים את ההשוואה והכלי מגלה את התווים הפסולים. כשמופיעים שני תווים צמודים לוקחים רק את הראשון. כך מתקבלת רשימת התווים האסורים המלאה.
15. אימות התווים האסורים: רוצים לבדוק שגילינו נכון, ולכן מייצרים שוב מערך בתים, הפעם בלי כל התווים שהתגלו. עושים שוב את אותה בדיקה בדיוק: סוגרים את החלון, חוזרים לחלון המעבד, מייצרים מערך בתים חדש, פותחים את החדש ומכניסים אותו שוב לסקריפט בעזרת אופרטור ההוספה. בודקים לדוגמה שהתו שהוצאנו אכן אינו מופיע ברשימה, מריצים שוב את השרת ואת הסקריפט, רואים נפילה, רואים שהאותיות B נכנסו למקום הנכון, והולכים ישר אל פקודת ההשוואה של המונה עם כתובת אוגר המחסנית. מתקבל ללא שינוי, וזה אומר שגילינו נכון את התווים האסורים. לוקחים אותם ושולחים כתשובה לאתגר, כי זה מה ששאלו אותנו, והתשובה מתקבלת כנכונה.
16. השלמת ההשתלטות: אחרי גילוי התווים האסורים צריך לייצר פיילואד ולקפוץ אליו. כדי לקפוץ אל הפיילואד צריך לגלות איפה יש פקודת קפיצה אל אוגר המחסנית. באים אל מפת הזיכרון וסורקים אותה בעזרת המונה, ומגלים את הכתובת של פקודת הקפיצה. מעתיקים אותה ללוח, וזו הכתובת שצריך לכתוב הפוך בתוך כתובת החזרה, לאן הוא יקפוץ. שימו לב שהפיילואד הקודם, שרק בדק אילו סימנים אסורים, כבר אינו נחוץ, סיימנו את הבדיקה. עכשיו כותבים את הכתובת רק בסדר הפוך, תו אחר תו, וזו הכתובת שאליה הוא יקפוץ, ואחרי הקפיצה שם תהיה פקודה לקפוץ אלינו חזרה, ואז הוא יחזור אלינו.
17. ריפוד ופיילואד סופי: מכניסים ריפוד כדי שחס וחלילה הפיילואד הזדוני שלנו לא יינזק, ואז מייצרים את הפיילואד עצמו, את הקוד הזדוני עצמו. בודקים בעזרת פקודת הרשת מה ה-IP שלנו כרגע, לוקחים אותו, מעתיקים ומכניסים אותו לפקודה, וגם את התווים האסורים מכניסים, כדי שהפיילואד לא ייוצר עם תווים שבכלל אי אפשר לשלוח על הכבל. הכלי מייצר את הפיילואד הזדוני, ומכינים כבר את המאזין שיחכה לחיבור כשמריצים את הפיילואד. לוקחים את הפיילואד שנוצר, מכניסים אותו בסקריפט אל משתנה הפיילואד בעזרת אופרטור ההוספה, שמשמעותו שכל שורה היא פקודה נפרדת שמוסיפה לפיילואד עוד שורה. ה-IP נכון, 634 הזזות מלמעלה, דורסים סתם עם האות A, אחר כך דורסים את כתובת החזרה שמאוחסנת בזיכרון, ואז האוגר שולף אותה בסיום הפונקציה וקופץ לכתובת הזאת בזיכרון, ששם כתוב לקפוץ חזרה אלינו, הוא חוזר לכאן, עושה ריפוד, שהוא אומר לא לעשות כלום שש עשרה פעמים, למקרה שיש דריסה של זיכרון על ידי המשתנים שהשתחררו, ואחר כך יש את הפיילואד הזדוני שלנו.
18. ההרצה המוצלחת: בודקים שהכל באמת עובד: איפוס, הרצה, חוזרים לשורת הפקודה שלנו, מריצים את הסקריפט, אין נפילה, ויש לנו מאזין. שימו לב, אנחנו בפנים: אפשר להריץ פקודת תיקייה ולראות את כל הקבצים, לעשות מעבר תיקייה ולטייל במחשב. השתלטנו עליו. כל הפקודות יהיו בקובץ בשרת הקבצים.
בסוף השיעור חזרנו על כל שלבי מתקפת גלישת החוצץ מההתחלה ועד הסוף, ביצענו אותם ברצף על האתגר השני, ענינו נכון על שאלות האתר והשתלטנו במלואם על שרת הקורבן.
SR12616HE

פרקי ההרצאה: התקפת Buffer Overflow - סיכום כל הפקודות

  1. 00:00

    הכנת הסביבה לתרגול

  2. 01:34

    הגדרת Mona והפעלת השרת

  3. 02:50

    שלב ה-Fuzzing הראשוני

  4. 04:04

    איתור השליטה ב-EIP

  5. 05:05

    בניית סקריפט הניצול

  6. 07:13

    מציאת ה-Offset המדויק

  7. 08:53

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

  8. 11:06

    אימות התווים הפסולים

תמלול ההרצאה: התקפת Buffer Overflow - סיכום כל הפקודות

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

  1. 00:02

    שלום לכולם, בהרצאה הזו אני רוצה לסכם את כל ההתקפה באפר אוברפלואו ולעשות פתרון מהיר של האתגר השני. ממה אנחנו מתחילים? קודם כל אנחנו נכנסים לאתר www.tryhackme.com ומפעילים את הקורבן שלנו, deploy.vm שהקורבן שלנו יופעל עד שהוא פועל.

  2. 00:24

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

  3. 00:54

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

  4. 01:25

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

  5. 01:39

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

  6. 02:02

    לחלון של CPU, מפעיל את הקורבן שלנו בתוך דבאגר, הוא נמצא אקזה של הקורבן שלי, נמצא בשולחן עבודה, וורנבל אפס, oacp, oacp.exe, אני פותח אותו ועושה לו פליי.

  7. 02:19

    בואו נבדוק שהוא באמת עובד, נתחבר ל-IP שלו, הפעם זה 65.1, בפורט 1337, ככה אני מדבר עם השרת. הנה, הוא אומר לי Hello, אני כותב לו Help, הוא אומר לי Help, אני יכול לכתוב לו Overflow 2 Test.

  8. 02:38

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

  9. 02:49

    זה נקרא פאזינג, ויש לנו סקריפט מוכן לפאזינג. פה בשולחן העבודה יש לנו פה פאזר py שזה הסקריפט המוכן, בואו נראה.

  10. 02:57

    קודם כל צריך להגיד לו מה הIP לתקיפה, היום זה 65.1, פורט 1337, פה אני שם prefix overflow 2, אני מתחיל לתקוף אותו A כפול 100, וכך הרבה פעמים אני שולח לראות אם יש קריסה ואם ה-A נכנס ל-EIP.

  11. 03:17

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

  12. 03:31

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

  13. 03:42

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

  14. 03:52

    אתם רואים, צריך לשלוח בדיוק את המידע כמו שצריך לשרת. אנחנו רואים קריסה סביב 700 בתים. אנחנו יודעים איפשהו שם יש קריסה. השאלה היא אם אני יכול להשתלט או לא, ואני רואה שבתוך EAP נכנס 41, שזה באסקי אות A, שזה אומר שיש לנו פה אפשרות להשתלטות.

  15. 04:14

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

  16. 04:31

    כמה אנחנו צריכים? 700 ועוד נוסיף איזה 400, 1100, נכון? הפעם אנחנו צריכים 1100, 700 ועוד 400. אנחנו מייצרים פאטרן, העיקר לקבל את הדבר הייחודי הזה, את כל ה-a, a גדול, a קטן 0, a גדול, a קטן 1, אני רוצה כאלו, ואני מכניס אותם לתוך הסקריפט השני שלי,

  17. 04:55

    שזה exploit py. מה אני עושה ב-exploit py? פה ב-payload אני מכניס את הרצף הייחודי שלי, ואני רוצה לראות מה ייכנס לנו לתוך ה-eip, לתוך האוגר eip, שזה אמור להיות פה.

  18. 05:11

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

  19. 05:27

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

  20. 05:50

    המטרה שלי לגלות באיזה תו בדיוק ייכנס לתוך EIP ואז אני אדע כמה אופסט צריך לזוז בשביל להגיע ל-Return.

  21. 06:00

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

  22. 06:16

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

  23. 06:36

    אקספלויט py אין לי פה שום קריסה כי בטח שכחתי להחליף כתובת IP הכתובת IP שלנו זה 65.1 זה הסקריפט החדש 65.1 פורט הזה כל המשתנים האלו נאספים לתוך משתנה אחד באפר לתוך סטרינג אחד והסטרינג הזה הטקסט הזה נשלח לנו על הכבל בוא נריץ את זה שוב ונראה

  24. 07:02

    האם תהיה לנו הפעם קריסה הופה יש קריסה וזה מה שנכנס פנימה ל-eip עכשיו צריך לדעת בדיוק איפה זה נמצא במקום לעשות את זה ידנית נגיד למונה לחפש איזה תו נמצא ב-eip אנחנו רואים כאן ש-EIP נמצא במרחק 634 תווים.

  25. 07:23

    זה אומר שאנחנו צריכים להכניס 634 פעם אות A לכאן בשביל שאחרי זה נגיע ל-BBB. וה-payload הזה כבר לא מעניין אותי. בואו נבדוק שזה אכן ככה. ה-payload שלי הולך להיות CCC.

  26. 07:41

    אני רוצה לראות שנכנס לי BBB לתוך EIP, שקודם כל דורסים עם 634 פעם אות A, אחרי זה מגיע BBB שנכנס לאוגר EIP, פקודה הבאה לביצוע ואחרי זה הולך להיות ה-payload שלי C. זה מה שאני שולח, את הרצף הזה.

  27. 08:00

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

  28. 08:30

    הוא צריך וזו דרך אגב התשובה לדבר הראשון שהם שואלים פה הם בתוך האתגר בודקים אותנו הם שואלים אותנו כמה אופסט והאופסט כרגע גילינו שהוא 634 פעם בואו נבדוק את זה יש your answer is correct התשובה נכונה, עכשיו אנחנו בלגלות מהם התווים האסורים.

  29. 08:58

    איך נגלה מהם התווים האסורים? אני מזכיר לכם, תווים אסורים זה מה שאסור לשלוח פה בתוך ה-payload, בתוך הפצצה שלנו. אז אנחנו נייצר byte array, זה אומר כל האפשרויות ללא 0,0.

  30. 09:11

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

  31. 09:26

    הנה הוא מייצר לי את כל התווים, במקום להעתיק אותם מהמסך אני מעתיק אותם מקובץ טקסט שהוא עשה לנו, הוא עשה לנו גם קובץ בינארי וגם קובץ טקסט.

  32. 09:36

    אוקיי, לוקחים את כל הדבר הזה, שזה סתם כל הקומבינציות האפשרויות, 0, 1, 0, 2, ככה, ואני עושה פה payload+ =, אוקיי, זהו, זה payload+ =, ואני מכניס לכאן,

  33. 09:55

    לכאן, לכאן ולכאן payload+ =, ואני שולח את זה לראות האם יש איזשהו תו שלא ייכנס לתוך הראם, לתוך הזיכרון. איזה תווים אסור לי לשלוח.

  34. 10:10

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

  35. 10:26

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

  36. 10:34

    אתם רואים 010234567 כבר נכנס 8 נכנס אני יכול ללחוץ על ESP הוא זה שמצביע על כתובת של סטאק בזיכרון ולהגיד לו להציג את זה בצורה יותר יפה Follow in Dump ואז הוא פה מציג את אותה הכתובת תסתכלו רק בצורה יותר נוחה אבל במקום לחפש ידנית מה חסר איזה מספר חסר אני יכול לנצל את המונה שיעשה את זה במקומי

  37. 11:06

    אז אני עושה פה מונה קמפר כל הפקודות האלו יהיו לכם בשרת הקבצים הנה הוא עשה לי מונה קמפר ואני מעתיק את הכתובת של ESP copy selection to clipboard נהדר מריץ את זה ומגלה פה את התווים שפסולים bad characters 23 24 אז אנחנו יודעים שאם זה 23 24 לוקחים רק את הראשון אוקיי, 23, 24, אחרי זה 3C, אחרי זה 3D, לא מעניין כי הם צמודים, ואחרי

  38. 11:36

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

  39. 11:52

    עושים עוד פעם אותה בדיקה בדיוק. אני סוגר את החלון הזה, חוזר ל-CPU, מכניס מונו קריאייט בייטר A, בלי רווח בהתחלה הנה הוא מייצר לי בית הרי חדש הנה זה hold וזה החדש פותח את החדש ואת החדש הזה אני מכניס לסקריפט שלי עוד פעם לכאן אני מכניס אותו עוד פעם עושה את כל הסיפור הזה עם פלוס שווה אני עושה פלוס שווה ורווח בוא נבדוק לדוגמה ש-N23

  40. 12:25

    איפה 23 הנה אתם רואים 22-24 נכון N23 מריצים עוד פעם את השרת מריצים עוד פעם את הסקריפט שלנו, רואים נפילה, רואים ש-BBB נכנס למקום הנכון, רואים פה שזה 01020304, ואני אלך ישר להגיד מונה קומפר, עוד פעם אני עושה מונה קומפר, אני כותב לכם פה את כל האגודות, מונה קומפר, וכתובת של ESP,

  41. 13:00

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

  42. 13:19

    הרי זה מה ששאלו אותנו, נכון? פה, באתגר. פה שאלו אותנו מהם התווים האסורים. ו-your answer is correct.

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

ההרצאה הקודמת: התקפת Buffer Overflow - שלב 4 - כתובת קפיצה + יצירת Payload

ההרצאה הבאה: התקפות DoS

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

  • סיכום של כל הפקודות ב-Git
  • הסבר והדגמה נוספים על הפקודות
  • NAT - הפקודות בנתבי סיסקו
  • התקפת CSRF

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

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