
הטקסט המלא של הדקות הראשונות בהרצאה «פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו נלמד לתקוף בן אדם שנמצא בבית, לא באותה רשת שלנו, אנחנו רחוקים ממנו, אין לנו כתובת IP שלו, אין לנו את הרשת שלו, והדבר היחיד שאנחנו רואים מתוך הפייסבוק שלו, שהוא אוהב לטייל באיזשהו אתר אינטרנט.
ואם האתר הזה יש בו חור אבטחה שהוא מאוד נפוץ שנקרא XSS, אנחנו נוכל דרך אתר אינטרנט לתקוף את הבן אדם בבית.
בואו נעשה את זה. קודם כל, דבר ראשון, אנחנו בווינדוס 10, זה הבן אדם התמים בבית. שימו לב, הוא לא עושה שום דבר מסוכן, חוץ מלטייל באתר האהוב עליו, שבאתר הזה יש חור אבטחה.
נניח שהאתר הזה זה כתובת 1012-23. נניח שזה האתר. כמובן שהאתר הזה כרגע נמצא אצלי במכונה וירטואלית, כי אני לא הולך לתקוף מישהו באינטרנט כדי לא לקבל תביעה משפטית ועבירה פלילית.
והבן אדם הזה בתמימות שלו אוהב איזשהו אתר. זה אתר שיש בו בלוגים. בלוגים זה אומר שכל אחד כותב מה שהוא רוצה, יש כל מיני יוזרים ואתה יכול גם לכתוב משהו. נניח אתה כותב סתם איזשהו אתר כזה שאפשר להכניס בו את ה...
זה נקרא בלוגים כאלה, כל אחד כותב מה שהוא רוצה. אני כתבתי כרגע כאנונימוס, לא הזדהיתי. ויש פה לקוחות קבועים שאני יכול לראות את כל מה שהם כתבו.
נניח שאול, אני רואה שאדמין כתב את זה, דייב כתב את זה, כל אחד מה הוא כתב לפי האנשים. וזה מה ש... זה אתר האינטרנט שנקרא בלוג. עכשיו, מה אני כאקר מגיע ורואה את האתר הזה? מה הדבר הראשון שאני עושה?
אני לוקח את ההודעה ומוסיף לה נניח סימן בשפת html, נניח bold, זה תגית html. נוסיף לזה תגית html ואני רואה האם האתר יגיב לתווית html שלי.
אני רואה שהוא כן מגיב לתווית html, שימו לב זה נהיה בולט. זה אומר שהאתר הזה מקבל הוראות מהמשתמש לביצוע, זה אומר שהאתר לא יודע להבדיל, שימו לב, האתר לא יודע להבדיל בין תגיות שמגיעות מהשר"ט לתגיות שמגיעות מהמשתמש.
בואו ננסה עכשיו לעשות משהו יותר מתורכם, ניקח את ההודעה ונוסיף לה פה סקריפט פקודות לביצוע בשפת Javascript ונכתוב פקודת alert, alert סתם מקפיצה הודעה על המסך סתם מקפיצה הודעה על המסך, אני בא לבדוק האם אתר חשוף ל-XSS, מה זה אומר XSS?
שאני כמשתמש יכול להכניס סקריפט והאתר יחשוב שזה סקריפט אורגינל שנרשם על ידי המתכנת המקורי, כאשר הסקריפט הזה הוא לא באמת המקורי בתוך האתר, לא המתכנת המקורי של האתר עשה את הסקריפט, אלא אני כמשתמש חיצוני, כותב לו סקריפט והוא לא מבדיל ביניהם, הוא לא יודע להבדיל בין סקריפט כזה לסקריפט ההוא,
כי מבחינתו זה סקריפט וזהו. בואו נראה, מה קרה לו? או, קפצה הודעה 0. אתם רואים שקפצה הודעה 0? הודעה 0. זו הודעה שקופצת. ועכשיו, מרגע זה שההודעה קופצת, אתם תראו שכל מי שמגיע לאתר, כל מי שמגיע לאתר, לא משנה מי הוא, סתם בן אדם מהבית מגיע לאתר, הוא חוטף את ההודעה הזאת, אוקיי?
חוטף את ההודעה הזאת. אז אני כאקר, מה אני לומד מתוך זה? שהאתר הזה חשוף ל-XSS. אני יכול, בלי ידיעתו של המנהל של האתר, לשתול בפנים JavaScript והאתר יבצע את זה.
בואו נראה איך זה נראה. האתר מקבל View Page Source, והאתר מקבל סקריפט. אתם רואים? הוא מקבל כל מיני סקריפטים. תסתכלו, האתר מקבל כל מיני סקריפטים.
סקריפטים שכתבו המתכנתים המקוריים של האתר הזה כך הוא מקבל את זה מהשרת כל מיני פקודות לביצוע בשפת ג'אווה סקריפט אתם רואים אז הוא מבצע את זה והוא לא יודע להבדיל בין הסקריפט שהם עשו לבין הסקריפט שאני עשיתי איפה הסקריפט שהם עשו מבחינתו זה אותו דבר הכל והנה הסקריפט שאני עשיתי עכשיו הוא מבחינתו זה גם סקריפט בדיוק כמו הסקריפט ההוא ובדיוק
כמו הסקריפט הזה אז הוא רואה סקריפטים הוא מבצע אותם מה שקורה מאחורי הקלעים שזה המידע שמגיע מהשרת רדפדפן מקבל אותו, עובר קודם כל עם JavaScript, רואה את כל מה שיש לו לבצע ואחרי זה עובר עם מנוע של תצוגה ומציג את זה כמו שצריך.
קודם כל עובד המנוע של JavaScript, מבצע את כל הסקריפטים, אחרי זה עובד מנוע של תצוגה. אז המנוע של JavaScript עובד ומבצע לדוגמה אלרט.
לדוגמה, אתם תיקחו, תעברו לדף אחר, אתם תראו, אין פה ככה, הופה, אתם רואים הודעה קופצת, עדיין שום דבר לא מוצג, קודם כל הודעה קפצה, גם מידע. חבר'ה, מה אנחנו מגלים?
אנחנו כאקרים מגלים שהאתר הזה חשוף להתקפת XSS. למה הוא חשוף להתקפת XSS? כי האתר לא יודע להבדיל בין מידע שמזין המשתמש ונותן לו להזין סקריפטים, לבין מידע שמזין המתכנת המקורי של האתר.
וזה בדיוק מה שאני הולך לנצל. אז בואו נראה איך אנחנו מנצלים את זה. אוי, סליחה, אני אמור להיות אקר, סליחה. כל מה שעשיתי אמור להיות אקר. אני כהאקר גיליתי שדרך Firefox זה המכונה של האקר.
אני כהאקר גיליתי שהאתר חשוף להתקפות אקססס. סליחה, הייתי צריך לעשות את כל זה כהאקר מכאן. עכשיו בואו אני אראה לכם עוד משהו מדהים, משהו שאנחנו כהאקרים לא יכולים לעשות, אלא רק מנהל של האתר יכול לעשות את זה.
אני מראה לכם את זה רק כדי שתראו מה קורה מאחורי הקלעים כדי שתהיה לכם הבנה, אבל אנחנו לא יכולים במציאות כאקרים חיצוניים להיכנס לדאטאבייס שבו שמור המידע של האתר.
זאת אומרת, יש אתר אינטרנט, מאחורי הקלעים יש לו איזשהו מסד נתונים, דאטאבייס. אנחנו לא יכולים להיכנס לתוכו במציאות, אבל כרגע אני רוצה שתבינו משהו, אז אני מראה לכם משהו שיכול לראות רק מנהל האתר.
מה שאני מראה לכם זה לצורך ההבנה העמוקה שלכם, שתבינו איך הכל מתנהל מאחורי הקלעים. אז מאחורי הקלעים יש דאטאבייס שנקרא MySQL ויש פה הרבה מסדי נתונים, הרבה דאטאבייסים.
אנחנו צריכים את הדאטאבייס שנקרא NoWasp. בפנים יש מלא טבלאות, כל זה טבלאות ואנחנו צריכים טבלה שנקראת בלוק טייבל. בתוך הטבלה הזאת יש מי כתב איזו הודעה, זה למעשה הטבלה.
אנחנו רואים פה שבתוך הדאטאבייס יושב הסקריפט שלנו ובגלל שהסקריפט שלנו יושב בתוך הדאטאבייס של האתר, מעכשיו כל מי שייכנס לאתר הזה יבצע את הפקודות של הסקריפט שלי.
כרגע עשינו רק הקפצת הודעה, אבל מה יקרה אם אני אפעיל סקריפט הרבה הרבה יותר חזק מזה? אם אני אפעיל סקריפט הרבה הרבה יותר חזק מזה, בואו ננסה, נמחק את האלרט הזה. עשיתי את האלרט הזה רק להראות לכם שהאתר מקבל את הסקריפט, מכניס אותו לדאטאבייס ואחרי זה כל מי שנכנס מבצע אותו.
זה אומר שהוא חשוף להתקפת XSS קבועה. מה זה קבועה? כי זה יושב קבוע בדאטאבייס, וכל מי שאי פעם ייכנס לאתר הזה, לדף הזה יחטוף את ההתקפה שלי. זה נקרא XSS קבוע.
בואו נמחק את זה, נעשה לזה X. פה אנחנו יכולים לעשות גם עיפרון ולשנות. לדוגמה, אני רוצה, לא יודע מה, ביר לעשות בלי רווחים. אני יכול לשנות פה ולעשות אוקיי.
זאת אומרת, אני מתעסק עכשיו ישירות בדאטאבייס, ומה שהאתר מציג זה המידע מכאן. עכשיו, ברגע שמחקתי את זה בדאטאבייס, אתם תראו שהאנשים כבר לא חוטפים את זה יותר.
זאת אומרת שאין יותר את הדבר הזה אתם רואים זה כבר לא הודעה יותר קופצת בוא נראה שהכתובת לא התחלפה לנו אני עושה ifconfig ורואה שהכתובת לא התחלפה לי הנה אתם רואים אין יותר הודעה קופצת הכל בסדר כי הורחקנו אותה מהדאטאבייס הבנו שהאתר חשוף ל-XSS הבנו שזה בעצם סקריפט שאני שותל כיוזר בתוך השדה וזה נכנס לדאטאבייס
ואחרי זה כולם חוטפים אותו וזה יושב שם קבוע ומרביץ לכל היוזרים עכשיו בוא נעשה סקריפט ממש חזק אז אנחנו נעשה משהו מתוחכם יש כלי שנקרא ביף הכלי הזה שנקרא ביף זה למעשה שני דברים זה גם סקריפטים מוכנים מאוד חזקים וגם שרת שליטה שימו לב ברגע שאני מפעיל ביף מופעל אצלי שרת שליטה בפורט 3000 אני הופך להיות שרת לרוב מפעילים אותו באיזשהו באיזשהו אתר באיזושהי מכונה וירטואלית וברגע
שאני שרת בפורט 3000 כולם מתחברים אליי כל מי שנפרץ מתחבר אליי ואני שולט עליו מהמרכז, זה למעשה מרכז שליטה command and control CNC. יש לי מרכז שליטה על כל המחשבים שפרצתי עליהם.
איך אני פורץ? שותן להם את הסקריפט. בואו נראה את זה. ניכנס לביף, ביף, ביף, ביף.
מרגע שאני נכנס לביף, יש לי פה כל מי שפרצתי עליהם שכרגע זמין וכל מי שפרצתי עליהם והוא כרגע לא זמין. אז אונליין בראוזר זה כל מי שאני פרצתי. למעשה רץ לי עכשיו שרת ברקע שמה שנשאר לי לעשות זה דבר נורא פשוט לקחת את ה...
בואו נראה רק מה הכתובת שלי 25 בסוף אני לוקח את הסקריפט הזה שנקרא חוג.js אתם רואים חוג javascript וזה הסקריפט שאם אני שרוטל אותו אצל מישהו אני מצליח להשתלט עליו אני 25 בסוף ואז אני אומר דבר כזה כל מי שייכנס לבלוג יקבל את הסקריפט שלי שימו לב אני מחליף פה כתובת לכתובת שכל מי שאני פורץ אליו יוכל להגיע כתובת אינטרנטית, 102, 25.
אני אמור לשתול פה כתובת אינטרנטית. זה אומר שכל מי שמקבל את הסקריפט הזה מתחיל להתחבר אליי ואני מתחיל לשלוט עליו. בואו נראה את זה. כתבתי מילת good.
עכשיו שימו לב, כל מי שפותח את הדף הזה מקבל את הסקריפט שלי, וברגע שאתה מקבל את הסקריפט שלי, אני מצליח להשתלט עליך. הנה, תראו, כבר מישהו התחבר אליי, שזה היה אני התחברתי.
אוקיי, אני כבר מצליח להשתלט עליך. לדוגמה בא בן אדם בתמימות שלו ועוד עושה פה show all ושימו לב זה תחנת עבודה של windows 10 הכי מעודכנת שזה חרום הכי מעודכן עושה view all הוא לא חושד בכלום הוא לא חושד בכלום מבחינתו הכל רגיל הוא לא ראה שום דבר שקרה אבל אם ללחוץ f12 אפשר לראות בנטוורק שחוג gs התחיל כל שנייה להתחבר אליי זה כמו סוס טרויאני שמתחבר לשרת השליטה שלי
לשרת שלי ואני מהשרת השליטה יודע להוריד פקודות לכולם ויוזר לא רואה את זה יוזר לא רואה את זה אם אצלכם זה לא עובד אתם יכולים לקחת את החוג gs הזה ולשים אותו בדפן רגיל זה אמור לעבוד זאת אומרת אתם יכולים לעשות קופי לינק אדרס לעשות לו קופי ולהכניס אותו פה חוג gs אתם מכניסים
את החוג gs פה ואתם רואים שהוא אכן עובד זה אומר שהוא מקבל את כל הג'אווה סקריפט שהלינק תקין עכשיו יוזר לא רואה את כל זה כי הוא לא יודע שזה מה שקורה אצלו במחשב.
אבל אם לא עובד לכם בהדגמה, אז תדעו לקחת את הלינק כמוני ולבדוק שאפשר להגיע לשם. זה קובץ JavaScript, זה פקודות JavaScript מתומצתות.
זה אומר כל המשתנים מקוצרים. ואנחנו רואים פה שהמשתמש לא רואה כלום במסך, ומאחורי הקלעים רץ פה חוג GS כל שנייה והוא לא יודע שזה קורה לו. הוא מבחינתו מטייל באתר הרגיל שהוא אוהב אותו.
ואני יכול להגיע לכאן, לביף שלי, לשרת השליטה שלי, לבחור את המחשב שלו, אתם רואים, זה הווינדוס.
אני רואה פה את כל הנתונים על המחשב הזה, ומה שהכי מגניב, יש פה קומנטס, ולדוגמה אני בא ועושה לו איזושהי פקודה, נניח, אני אומר לו פייסבוק פאק תוקף, כאילו עושה לו סושיאל אינג'ינירינג, אני יכול לבחור פה כל מיני, נניח ווינדוס, יוטיוב, מה שאתם רוצים, יש פה מלא התקפות, עושה אקזיקיוט.
תראו מה קרה למשתמש קפצה לו הודעה כאילו פייסבוק סיישן טיים אאוט כאילו פג לו התוקף כי הוא חושב שזה בתמימות פג לו תוקף הוא לא חושד במשהו הוא מכניס את הסיסמה הוא עושה לוגין ועכשיו שימו לב אני כאקר מקבל בדיוק את מה שהוא הכניס כולל הסיסמה שהוא הכניס אני עכשיו שולט על המחשב שלו אני יכול להקפיץ לו הודעות
אני יכול לעשות לו פה מיליון התקפות תסתכלו יש פה מלא מלא מלא התקפות אני לא רוצה עכשיו לבזבז זמן על זה אתם יכולים לעבור על כל מיני התקפות לבד יש פה מלא התקפות.
אדום זה כנראה לא יצליח לסוג הדפדפן הזה.