PracticU

התקפת Buffer Overflow
שלב 1 - זיהוי חולשה - Fuzzing

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

התקפת Buffer Overflow שלב 1 - זיהוי חולשה - Fuzzing
בשיעור זה אנו מתחילים לתקוף את הקורבן באתר האימונים בהתקפת גלישת חוצץ הראשונה, על הקובץ שניתן לתרגיל. אנו מכירים את סביבת העבודה, מתחברים לשירות הרשת של התוכנה, מתקינים את כלי העזר של הדיבאגר, ובונים סקריפת פאזינג ששולח קלט הולך וגדל עד לקריסה, כדי לגלות אם בכלל קיימת בתוכנה חולשה שאפשר לנצל.
נושאי הסיכום המוצגים בשיעור:
1. פתיחת התרגיל: אנו מתחילים לתקוף את הקורבן באתר האימונים בהתקפת גלישת חוצף הראשונה, על קובץ ההפעלה של התרגיל. התחברנו ב-VPN לרשת הפנימית שלהם, הכל בחינם, וביצענו שולחן עבודה מרוחק אל הקורבן.
2. מקורות העזרה: באתר יש הוראות מדויקות מה לעשות, ולמעלה גם Writeups, שהם פתרונות שאנשים אחרים פרסמו. ניתן לפתוח פתרון של מישהו כדי להציץ בו מדי פעם, ואנו משלבים בין הפתרונות לבין ההנחיות שלמטה.
3. סביבת העבודה: יש לנו חלון שולחן עבודה מרוחק שהוא הקורבן, הוראות ביצוע, ושורת פקודה שממנה אנו מחוברים ב-VPN לרשת שלהם. בשורת הפקודה מריצים את הפקודות ובחלון המרוחק עובדים על הקורבן.
4. הרצת התוכנה תחת דיבאגר: ההוראה הראשונה היא להריץ את הדיבאגר במחשב הקורבן בהרצה כמנהל. פותחים את התוכנה דרך קובץ ופתיחה, מכוונים קודם את ההצגה והגופנים כדי לראות טוב יותר, ורואים שהתוכנה במצב השהיה, כי הדיבאגר מעביר הכל להשהיה בעת ההתחברות אליה. מריצים אותה בעזרת פקודת ההרצה או מקש הקיצור, והאפליקציה עובדת, כפי שההוראות מבקשות.
5. בדיקת השירות בעזרת נטקאט: במקום טלנט משתמשים בתוכנת נטקאט כלקוח. מתוך קאלי מתחברים לכתובת של השרת בפורט 1337. הפורט הזה נהוג אצל האקרים, כי בכתיבה המספרית שלו הוא מסמל את המילה המקוצרת של הכל קל. השרת מקבל אותנו, מציג הודעת ברוכים הבאים ומבקש לכתוב את המילה עזרה, שעליה הוא עונה ברשימת הפקודות התקפות שלו.
6. שפת השרת: השרת מבין רק פקודות מסוימות, לדוגמה פקודת בדיקת גלישה שעליה הוא עונה שהבדיקה הושלמה. אפשר גם לנתק את השיחה בעזרת צירוף המקשים. כך מתקבלת שיחה תקינה עם השרת, כאילו אין לנו גישה לשולחן העבודה המרוחק של אותה תוכנה.
7. השלב הראשון נקרא פאזינג: רוצים לבדוק האם בשרת יש בכלל חולשה, האם יש מה לפרוץ בו. שימו לב לשיטת העבודה: את התוכנה שיש בשרת שמים במכונה וירטואלית משלנו ובודקים אם קורית קריסה. אם מצליחים להשתלט על התוכנה במכונה הווירטואלית שלנו, אחר כך עוברים לשרת האמיתי, מבצעים את אותו תרגיל ומשתלטים על השרת האמיתי. כרגע רק בודקים אם קורית קריסה, וזה נקרא פאזינג.
8. משמעות הפאזינג: פאזינג הוא להכניס הרבה קלט פגום, כלומר פעמים רבות את אותה אות, אלפי פעמים, רק כדי לראות אם בשלב כלשהו נוצרת קריסה, כדי שנוכל להשתלט על התוכנה. השאלה היא אם התוכנה מוגנת מפני יותר מדי תווים או לא.
9. הגדרת כלי העזר של הדיבאגר: לפני הפאזינג יש שלב שנקרא הגדרת מונה, כלי נוסף שלא השתמשנו בו עד עכשיו. זה סתם כלי עזר שהוכנס אל תיקיית התוכניות יחד עם הדיבאגר, קובץ שנקרא מונה שבא לעזור לנו. הוא אינו קובץ חובה, נמצא בתיקיית הפקודות של פייתון בתוך תיקיית הדיבאגר, ואפשר להוריד אותו חינם מהגיטהאב ולהכניס אותו לשם.
10. הגדרת תיקיית הפלט: הדבר היחיד שמבקשים מהמונה הוא שאת כל הפלט שלו ישים בתיקייה ייעודית, שעדיין לא קיימת ותיווצר כשתידרש. מריצים את פקודת ההגדרה של המונה, נפתח חלון רישום שכותב בדיוק מה בוצע, מבקש ערך חדש לתיקיית העבודה, וההגדרה מסתיימת בהצלחה. חוזרים לחלון הרגיל של הדיבאגר, חלון המעבד, ומתחילים בשלב הפאזינג.
11. סקריפת הפאזינג: האתר מספק סקריפט פייתון שמבצע את הפאזינג. מעתיקים אותו לקובץ חדש בשולחן העבודה בשם פאזר פי, פותחים אותו בעורך טקסט גרפי ומדביקים את התוכן. הסקריפט לוקח את ה-IP ואת הפורט ומתחיל לשלוח כל פעם את האות A כפול מאה, אז מאתיים, אז משלוש מאות, וכך הלאה, עד שקורית קריסה.
12. איך הסקריפט עובד: הלולאה האינסופית מסתובב כל הזמן. בכל איטרציה הסקריפט שולח את המחרוזת הנוכחית, מקבל תשובה, מגדיל את המחרוזת במאה תווים נוספים וממתין שנייה בין שליחה לשליחה. אופרטור ההוספה הוא השורה שמגדילה את המחרוזת בכל סבב, כך שהיא תמיד ארוכה יותר מהסבב הקודם. שומרים את הקובץ ומריצים אותו עם פייתון 3, כי בקאלי מותקנות גם פייתון 2 וגם פייתון 3 והסקריפט נכתב עבור השלישית.
13. הקריסה ומשמעותה: הסקריפט רץ ושולח אלפי תווים, מאה, אלף וארבע מאות, אלף וחמש מאות, הכל בסדר, התוכנה לא קורסת. ואז באזור האלפיים קורית הקריסה, התוכנה עוברת להשהיה עם שגיאת גישה, ובמצביע הפקודה הבאה לביצוע מופיע הערך של ארבעים ואחת שלוש פעמים. מצביע הפקודה הבאה לביצוע הוא הכתובת שממנה המעבד יבצע את הפקודה הבאה, והוא מנסה לבצע פקודה בכתובת שאינה קיימת וחורג מהרשאות הגישה שלו. בבדיקה בטבלת ה-ASCII מתברר שהערך הזה הוא בדיוק האות A, כלומר האות A נכנסה למקום של הפקודה הבאה לביצוע.
14. מה למדנו: מהקריסה למדנו שאפשר לשלוח את האות A המון פעמים ובשלב כלשהו המעבד יחשוב שהיא הפקודה הבאה לביצוע. כמה פעמים צריך לשלוח אותה, קרוב לאלפיים, נגלה בדיוק בהמשך. הפאזר גילה שהתוכנה קורסת מקלט מוגזם ושהקלט נכנס אל מצביע הפקודה, וזה סימן שיש מה לתקוף, שיש אפשרות להקריס את התוכנה ולהשתלט על מצביע הפקודה הבאה לביצוע, ובדיוק על כך יעסוק השלב הבא.
15. השלב הבא והמשמעות הרחבה: השלב הבא אחרי הפאזינג הוא שליטה במצביע הפקודה הבאה לביצוע, להבין בדיוק כמה תווים לשלוח כדי שהקלט יפגע בכתובת הבאה לביצוע, להשתלט על פקודות התוכנה ולגרום לשרת לבצע את הפקודות שלנו, וזו המהות של ההתקפה. הפאזר קריטי: מריצים אותו, ממתינים לקריסה ובודקים אם ברגע הקריסה האות נכנסה אל מצביע הפקודה. אם קרה, אפשר להשתלט. אם לא, אין בתוכנה באג. ובסוד: ברוב התוכנות אין את הבאג הזה. הוא היה נפוץ פעם, היום הוא נדיר יותר, אבל חייבים להכיר אותו כי אם הוא קיים אפשר להשתלט על השרת.
בשיעור הבא נעסוק בנושא התקפת Buffer Overflow שלב 2 - שליטה על EIP.
בסוף השיעור התקנו את כלי העזר של הדיבאגר, בנו והרצנו סקריפת פאזינג ששלחה קלט הולך וגדל אל שירות הרשת, גרמה לקריסה סביב האלפיים תווים והוכיחה שהקלט חודר אל מצביע הפקודה הבאה לביצוע.
SR12612HE

פרקי ההרצאה: התקפת Buffer Overflow שלב 1 - זיהוי חולשה - Fuzzing

  1. 00:00

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

  2. 01:01

    הכרת ההוראות והפתרונות

  3. 01:42

    הפעלת השרת בדיבאגר

  4. 03:24

    התחברות לשרת עם Netcat

  5. 04:18

    התקשורת עם השרת

  6. 05:13

    הכרת שלב ה-Fuzzing

  7. 06:14

    הכרת הכלי Mona

  8. 06:48

    הגדרת ספריית העבודה של Mona

תמלול ההרצאה: התקפת Buffer Overflow שלב 1 - זיהוי חולשה - Fuzzing

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

  1. 00:02

    שלום לכולם, אנחנו מתחילים לתקוף את הקורבן שלנו באתר tryhack.com בהתקפת אוברפלואו הראשונה, את הקובץ oacp.exe התחברנו ב-VPN בהרצאות קודמות לתוך הרשת הפנימית שלהם הכל בחינם בלי אשראי, ועשינו רימור דסקטופ לקורבן זה הקורבן, ואנחנו רוצים להתחיל לתקוף אותו

  2. 00:25

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

  3. 00:46

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

  4. 01:01

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

  5. 01:36

    יש לנו את הרימור דסקטופ ויש לי את ההוראות לביצוע ובואו נתחיל לעשות את ההוראות ולראות מה הם רוצים. הם אומרים לי דבר ראשון, תריץ במחשב של הקורבן run as administrator עם unity debugger.

  6. 01:47

    את הדיבאגר עצמו תריץ אותו run as administrator. בואו נעשה את זה run as administrator. אנחנו באים לחקור את האפליקציה שתרוץ שמה ותיכנס לפייל open ותפתח את הקובץ OCP. בואו נעשה פה פייל לפני שאני עושה פייל open אולי נעשה אפיריאנס.

  7. 02:07

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

  8. 02:33

    כלום בואו נעשה רייט קליק, אפיריאנס, איפה יש לנו פה אפיריאנס? מראה, פונט all, כל הפונטים, נעביר אותם לפה ל-oem.

  9. 02:43

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

  10. 03:07

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

  11. 03:19

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

  12. 03:34

    אצל האקרים זה נהוג להשתמש בפורט הזה, כי הוא מסמל מילת איזי. אתם רואים? E-Z כמו דאבל S וזה כאילו Y כאילו במספרים כתבו מילת E-Z יעני התותחים משתמשים בפורט הזה בשביל לציין שזה E-Z Welcome to OCP server כאילו התחברנו לשרת שלו כאילו זה דרך דפדפן או משהו לא משנה דרך מה התחברנו לשרת מדברים עם השרת

  13. 03:58

    והוא כותב לי פה לכתוב מילת help אני כותב help והשרת עונה לי ואני רואה פה וליד commands איזה פקודות יש כאילו אני מדבר עם השרת שאני אמור לתקוף אותו והנה הם כותבים לי פה לכתוב את המילת help אני יכול לכתוב overflow test 1 סתם אני יכול לדבר עם השרת הזה בשפה של השרת הזה השרת הזה מבין רק פקודות מסוימות לדוגמה overflow test בבקשה test

  14. 04:25

    completed מה עוד אני יכול לעשות אני יכול לסיים את הקונקשן לנתק את השיחה איתו לעשות ctrl c ניתקתי את השיחה עם השרת טוב אנחנו רואים שהשרת עובד ויש איתו שיחה כאילו אין לנו גישה לremote desktop לתוכנה הזאת אנחנו רוצים לבדוק האם בשרת הזה יש חולשה וזה השלב הראשון.

  15. 04:48

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

  16. 05:04

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

  17. 05:13

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

  18. 05:32

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

  19. 05:45

    זה כלי נוסף שלא השתמשנו בו עד עכשיו שנקרא מונה סקריפט זה סתם כלי עזר שהכניסו לנו ב-C Program Files עם יוניטי דיבאגר הנה פה עם יוניטי חברת עם יוניטי עם יוניטי דיבאגר ויש פה קובץ שנקרא מונה שבא לעזור לנו זה לא קובץ חובה בוא נחפש איפה הוא נמצא הנה הוא נמצא כאן בתיקייה הזאת שזאת התיקיית py commands בתוך עם יוניטי דיבאגר יש לי פה את התיקייה python commands

  20. 06:16

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

  21. 06:17

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

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

ההרצאה הקודמת: חיבור VPN לאתר THM - TryHackMe

ההרצאה הבאה: התקפת Buffer Overflow - שלב 2 - שליטה על EIP

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

  • בניית שלב - חלק 1
  • התקפת CSRF
  • התקנת vCenter 8 - שלב ראשון
  • זיהוי מגע באנדרואיד

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

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