התקפות על רשתות פנימיות יכולה להתבצע בדרכים רבות, עם זאת אחת מהדרכים הנפוצות ביותר היא מתקפת Man in the middle. הרעיון מאחוריה הוא ליירט שיחה בין שני התקנים ברשת ולבצע מניפולציה על התעבורה שעוברת ביניהם. התוקף מתחזה למכשיר A ברשת, הוא מציג את עצמו בתור מכשיר A בפני מכשיר B ובפני מכשיר A כמכשיר B וכך הוא שולט על כל הנתונים שעוברים ביניהם. התקפות מסוג MiTM מהוות איום רציני מכיוון שהן מאפשרות לתוקף ללכוד ואף להשפיע על מידע רגיש שמועבר ברשת בזמן אמת. ההתקפה היא סוג של האזנת סתר שבה השיחה נשלטת על ידי התוקף, להתקפה זו יש סיכוי חזק להצליח מכיוון שהתוקף יכול להתחזות אל כל מכשיר ברשת. שימושים שכיחים להתקפה זו היא הוצאת מידע רגיש שמועבר ברשת (סיסמאות, מפתחות הצפנה) והפצת רוגלה ברשת הפנימית, התוקף יפנה את הקורבן לאתר המתחזה לאתר שהמשתמש ציפה להגיע אליו – הקורבן בטוח שהגיע אל אתר לגיטימי. אך מאחורי הקלעים החיבור שנוצר הוא בין המשתמש לתוקף ובין התוקף לאתר האמיתי כך התוקף יכול לקרוא, להוסיף ולשנות את התעבורה בין המשתמש לאתר וכך התוקף לוכד את הנתונים הרגישים שמועברים בין המשתמש לאתר (סיסמאות, עוגיות או כל מידע רגיש אחר). לעיתים קרובות המטרה היא אתרי בנקאות ומסחר באינטרנט.

בדפדפנים מודרניים נדרשת תעודת אימות כדי להקים חיבור מאובטח (SSL או TLS), עם זאת התקפת MiTM יכולה להתבצע בכך שהקורבן יקים חיבור מאובטח עם התוקף והתוקף קובע חיבור נוסף עם שרת האינטרנט. כמובן שהדפדפן מזהיר את המשתמש שתעודת האימות אינה חוקית אבל הקורבן יכול להתעלם מאזהרה זו כי הוא אינו מבין את האיום. 1 ישנם אינספור סוגים של התקפות NBNS Spoofing) MiTM עם ,(ועוד DHCP Spoofing ,DNS Spoofing , זאת אני אתמקד במתקפה ARP Spoofing ואסביר את התאוריה שמאחורי שמאחורי המתקפה, נבין איך רשת פנימית עובדת ומה מאפשר לנו לבצע את המתקפה. נכתוב כלי שמבצע MiTM ונבצע את המתקפה על הרשת שלנו. איך רשת עובדת? רשת פנימית היא קבוצת מכשירים (מחשבים, טלפונים וכו') החולקים תקשורת ומשאבים של התקן מסוים באיזור קטן (לדוגמא: משרד). ההתקן מחזיק בשירותים ונתונים שאותם חולקים הישויות ברשת: הדפסה, שיתוף קבצים וכ'ו. לכל ישות ברשת ישנה כתובת פיזית (MAC), באמצעות הכתובת פיזית המכשירים מתקשרים ביניהם ברשת הפנימית. כשמכשיר A שולח חבילה למכשיר אחר ברשת, החבילה נשלחת לפורט פיזי. בעת שליחת נתונים ברשת האינטרנט, הנתונים נשלחים לכתובת הפיזית של הנתב. כתובות IP ברשת הפנימית נועדו כדי לנתב את התעבורה בין המכשירים ברשת. Address Resolution Protocol) ARP) – הפרוטקול נועד כדי לאתר כתובת פיזית (MAC) ברשת באמצעות כתובת לוגית. כשמכשיר ברשת מתקשר עם ישות אחרת ברשת מערכת ההפעלה חייבת להעביר את כתובת ה-IP לכתובת MAC באמצעות ARP מכיוון שהעברת הנתונים מתבצעת באמצעות הפורט פיזי. מערכות הפעלה שומרות טבלה המקשרת בין כתובות וירטואליות לכתובות פיזיות או במילים אחרות – מטמון (cache). כאשר המחשב שולח חבילת נתונים ברשת הפנימית, מערכת ההפעלה מחפשת את הכתובת הפיזית במטמון כדי לתקשר עם ההתקן (התקשורת נעשת באמצעות פורט פיזי), במידה ולא נמצאה כתובת פיזית נשלחת בקשת ARP – חבילה לכל המכשירים ברשת (Broadcast) "מי מכיר את 192.168.68.1?", הישות עם הכתובת "192.168.68.1" תגיב למערכת ההפעלה "אני!" + הכתובת הפיזית שברשותה.

ICMP חבילת ,ICMP כחבילת נשלח ping ,("10.0.0.138") למוטי ping שולח ("10.0.0.5") אני :לדוגמא מכיל כתובת IP וכתובת הip מועברת לכתובת פיזית. כדי לבנות בקשת ICMP אנחנו צריכים כתובת מקור (כתובת הIP שלי), כתובת יעד (כתובת ה-ip של מוטי). מערכת ההפעלה תפנה אל המטמון ותנסה לאתר את הכתובת הפיזית באמצעות הכתובת הלוגית ("10.0.0.138"). אם נמצאה כתובת פיזית – אין צורך לשלוח בקשת ARP, אם לא אז נשלח בקשת ARP כדי לאתר את הכתובת הפיזית. (אפשר לפנות אל המטמון באמצעות "arp -a")

Capture

בתמונות מעלה אנחנו יכולים לראות את החבילות ב-Wireshark. החבילה הראשונה היא חבילת בקשה (opcode=0x1), הכתובת הפיזית של היעד ריקה (מכיוון שאינה ידועה לנו). קיבלנו תשובה ממוטי ("10.0.0.138") שבה מצורפת הכתובת הפיזית (Wireshark תרגם את הכתובת הפיזית ליצרן).

הפרוטקול ARP נועד להיות פשוט ויעיל וכתוצאה מכך החולשה עיקרית היא שלא מתבצע אימות לחבילות אשר מתקבלות. לא התווסף אימות כל שהוא במימוש הפרוטוקול וכתוצאה מכך אין דרך לאמת שאכן הכתובת הפיזית שקיבלנו היא מתאימה לכתובת ה-ip בתשובת ה-arp, הפרוטוקול אפילו לא בודק אם הוא אמור לקבל תשובת ARP או לא. או במילים אחרות: אם מחשב א' שלח בקשת ARP לפרוטוקול אין שום כוונה לבדוק אם התשובה שקיבל היא נכונה או לא, אפילו אם הוא קיבל תשובת ARP מבלי ששלח בקשה, הוא חושב ששלח ומעדכן את טבלת הקשרים (המטמון). חולשה זו ידועה כהרעלת ARP Poisoning") ARP"). אתם מבינים שאפשר בקלות לנצל את החולשה בפרוטוקול? התוקף יכול לעצב חבילת ARP למטרתו הזדונית, במידה ומטרתו להתחזות לישויות ברשת הוא ישלח חבילת ARP לכל המחשבים ברשת וכתוצאה מכך, המכשירים יעדכנו את טבלת הקשרים (המטמון) וכך התוקף שולט על כל התעבורה ברשת. כמובן שזה לא נגמר פה, ברשות התוקף:

 התקפת מניעות שירות (DoS) – התוקף שולח תשובת ARP עם כתובת פיזית מזויפת (שגויה או לא קיימת ברשת). כתובות שגויות השומרות בנתב ישבשו את כל התקשורת ברשת הפנימית, כל חבילה שבאה מבחוץ תגיע לישות שלא קיימת ברשת.

MiTM  – כפי שכבר קראתם, התוקף יצטט לתקשורת בין המחשבים ברשת וישתלט עליה.

מתג – MAC Flooding  3 Switch הוא התקן המקשר בין רכיבים ברשת. הרעיון הוא הצפת המתג בתשובות ARP שמכילות כתובות פיזיות שונות בשדה המקור, המתג מוסיף את הכתובות אל טבלת הקשרים ובכך המתג שולח את החבילות אל הפורט הפיזי של וגורם למילוי מרחב הזיכרון במתג. העומס גורם לכישלון במציאת הפורט הפיזי אליו הוא צריך לשלוח את החבילה המבוקשת – במקרה זה המתג מעביר את החבילות אל כל המכשירים ברשת (Broadcast) וכך התוקף מקבל נגישות לכלל התעבורה ברשת. מתגים חוסמים התקפות כאלה באמצעות הגבלת מספר הכתובות לפורט פיזי או זיהוי עומס פתאומי של כתובות MAC חדשות המוגדרות בפורט מסוים וניתוקו.

 

Leave a Reply

האימייל לא יוצג באתר. שדות החובה מסומנים *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>