MITM - Man in the Middle (איש באמצע)
Posted by epotex | Posted in ARP , Cain and able , DNS , Dsniff , Ettercap , Hacking , LAN , Linux , MAC ADDRESS , MITM , OSI , Port Security , security , Sniffer , Snort , sslstrip , Windows
כמו שהבטחתי כאן, פוסט שכולו מוקדש להתקפת MITM
בפוסט הזה אני אעבור על קצת על מושגי יסוד על מנת שהקריאה תהיה מובנת גם למי שעוד לא מכיר לעומק את הנושא,
ואראה הדמיה של מחשב תחת התקפה.
נתחיל בכמה מושגי יסוד:
MAC ADDRESS - Media Access Control Address
זו היא כתובת פיזית שצרובה על כל רכיב רשת לדוגמא :בכרטיס הרשת,נתב,טלפון בעל מודם סלולארי, וכו'
הכתובת נראית בדומה לדוגמא הבאה 00:18:F8:1A:8C:04
הכתובת מתחלקת לשתיים – ששת התווים הראשונים הם מזוהים עם היצרן של החומרה במקרה שלנו 00:18:F8 שייך ליצרן Linksys
וששת התווים הבאים 1A:8C:04 הם מעין מספר סידורי של החומרה עצמה, למרות שהיא צרובה על רכיב הרשת ניתן לזייפה.
על מנת לדעת מהו המאק של המחשב שלך ניתן להקליד את הפקודה הבאה:
Ipconfig /all
תחת physical address תופיע הכתובת
ARP – Address Resolution Protocol
הפרוטוקול ש"אחראי" למפות ולתרגם בין כתובות MAC ADDRESS הפיזיות, לכתובות IP ולהפך, בעזרת ניצול חולשה בתכנון הפרוטוקול, (אין אוטנטיקציה)ניתן לממש את ההתקפה,
המנגנון עובד באמצעות ארבע שלבים פשוטים:
ARP REQUEST - בשלב זה נשלחת בקשה לרשת ששואלת מי מחזיק בכתובת 192.168.1.100 ?
ARP REPLAY – התשובה לשאלה ובה מוחזרת ההכרזה "אני מחזיק את הכתובת 192.168.1.100 והMAC שלי הוא 00:1B:1C:08:FF:0A "
המנגנון עובד גם בצורה ההפוכה:
RARP - "מי מחזיק בכתובת 00:1B:1C:08:FF:0A ?
RARP REPLAY – והתשובה תהיה " אני מחזיק בכתובת ה 00:1B:1C:08:FF:0A והIP שלי הוא 192.168.1.100 "
כמו שאתם שמים לב הפרוטוקול לא מוודא מי מקור התשובה לשאלה, וכל תשובה שהוא מקבל מבחינתו היא אמינה.
כלומר אם אני אחזיר לאחת מהשאלות (מי מחזיק ב...)תשובה, גם אם היא תהיה לא נכונה המחשב השואל יקבל אותה כאמינה ויסמוך עליה בעניים עצומות.
*לרוב מחשבים נתבים ומתגים מחזיקים בזיכרון (cache ), את רשימת הכתובות הפיזיות(mac address ) ואת כתובות הIP שנמצאות ברשת, ומעדכנים אותם מפעם לפעם על מנת לייעל ולקצר את הליך החיפוש.
נהוג לקרוא להליך ההתחזות (כאשר אני עונה לשאלת ARP ומפנה רכיב רשת כל שהוא לכתובת שהיא לא באמת נכונה) "זיהום הרשת" (ARP POISONING/SPOOFING )
אני אנסה לתמצת את כל מה שהבנו עד עכשיו:
כאשר מחשב שמבקש לדעת מה היא כתובת המאק של כתובת IP שקיימת ברשת , התוקף מחזיר לו תשובה שהוא מחזיק בכתובת,בצירוף כתובת הmac האמיתית של מחשב התוקף, אותו מחשב ששאל על הכתובת יודע שכעת על מנת לשלוח תעבורה אל אותה כתובת IP, הוא אמור לפנות אל אותו mac address של התוקף, אותו הליך התוקף יעשה אל מול הכתובת האמיתית, ובכך הוא משיג את הכינוי האיש שבאמצע Man In The Middle
לדוגמא אם התקפנו את מחשב ברשת ואת הנתב של אותה רשת,מה שיקרה לאחר ההליך הזה, הוא שהמחשב המותקף חושב שהנתב שלו הוא המחשב התוקף, והנתב חושב שהמחשב המותקף הוא המחשב של התוקף, מה שהשיג התוקף בזה הוא שכל התעבורה פנימה או החוצה, של אותו מחשב\רשת המותקפת יעברו דרכו, והוא יכול להאזין לה בלי יותר מידי בעיות. (כל עוד התעבורה לא מוצפנת) נשמע מבלבל אני יודע לכן הכנתי תרשים שיעזור להבין את התהליך...
חצים בכחול – מצב התעבורה כאשר הרשת לא מזוהמת
חצים באדום – מצב התעבורה כאשר הרשת מזוהמת
המחשה: (ניתן להגדלה בלחיצה)
ועכשיו אחרי שהבנו את התיאוריה מאחורי ההתקפה, נעבור לתאכלס...
אזהרה! - לפני שאתם מבצעים איזה שהוא הליך שכזה וודאו כי בעל הרשת מרשה לכם לעשות זאת!
זאת עבירה לבצע פעולות אלו ללא הסכמה מפורשת של בעל הרשת!
את ההתקפה הזאת ניתן לבצע עם כלים שונים תחת Windows ו Linux .
חלק מהכלים שניתן להשתמש בהם הם:
1.Ettercap – תוכנה מצוינת גם לLinux וגם ל Windows.
2.Cain and able - תוכנה מצוינת עובדת בסביבת Windows כוללת עוד המון כלים מעניינים ממליץ לכם לחקור אותה.
3.Dsniff - תוכנה גם לLinux וגם ל Windows.
לצורך ההדגמה אני אשתמש ב Ettercap על Linux בגרסת הcommand line *קיימת גם תמיכה ב GUI .
פרטים:
נתב:
IP: 192.168.1.100
מחשב מותקף:
IP: 192.168.1.101
מחשב מתקיף
IP :192.168.1.102
epotex@Black-A-Tech:/$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
פקודה זו גורמת למחשב שלי ( התוקף) להתנהג כנתב אנו זקוקים לה כדי להעביר את התעבורה.
epotex@Black-A-Tech:/$ sudo ettercap -T -q -M ARP /192.168.1.100/ /192.168.1.101/
מתג ה T יוציא פלט טקסט
מתג q לא יגרום להצגה של כל התעבורה אשר תעבור דרכי אלה רק לשמות המשתמש וסיסמאות
מתג M יגרום להפעלת מתקפת Man In The Middle
ARP יפעיל את זיהום הנתב 192.168.1.100 ואת זיהום המחשב המותקף 192.168.1.101
ניתן להוסיף מתג w- somefile.txt אם תרצו לשמור את הפלט לקובץ
מיד כאשר תיכנסו במחשב המותקף לשירות רשת כל שהוא אשר דורש שם משתמש וסיסמא
היא תופיע על המסך (ותכתב לקובץ אם אפשרתם זאת).
לדוגמא:
HTTP : mail.nana10.co.il:80 -> USER: hackmymail PASS: password INFO: mail.nana10.co.il/OWAContainer.asp
והנה אנחנו רואים את החשבון hackmymail והסיסמא שלו password תחת שרות הדואר של נענע
ניתן לשלב את sslstrip במידה ורוצים להאזין לשירותי רשת שמשתמשים בהצפנת SSL לדוגמא בנקים gmail וכו'.
על ידי התקפת Man In The Middle ניתן לבצע מניפולציות רבות ברשת המותקפת, ניתן להאזין להתחברויות ברשת, לבצע זיוף של תשובות DNS, ועוד הרבה הרבה פעולות שיגרמו לתוקף להשיג מידע (כמעט)מבלי להחשף.
דרכי זיהוי והתגוננות
חומת אש לא מסוגלת להתמודדת עם התקיפה משני סיבות עיקריות:
* ההתקפה עובדת על השכבה השניה במודל ה OSI כאשר IP נמצאת בשכבה השלישית חומת אש עובדת לפי כתובות IP.
* ההתקפה עובדת ברמת ה LAN ולכן ההתקפה לא תעבור דרך חומת האש.
* ישנם כלים כדוגמת Snort אשר יאזינו לרשת וברגע שיתבצע arp poisoning תתריע בפני מנהל הרשת על כך
יעיל ברשתות גדולות אך למשתמשים ביתיים לא תמיד יש יכולת יישום של הכלים הללו
* ניתן להשתמש בסוויץ שמיישם את מנגנון ה Port Security ונועל אותו למאק ספציפי, קיים רק בדגמים יקרים של סוויצים
ולכן גם פיתרון זה לא ישים ברשת ביתית
לסיום חידה לא קשה....
כיצד ניתן מתוך המחשב המותקף לדעת שהוא מותקף....?

