6.2 גניבת NTLM Hashes הרצאה
גניבת NTLM Hashes¶
גניבת NTLM Hashes היא אחת הטכניקות המרכזיות שמנצלות את חולשות פרוטוקולי הרשת של Windows. המטרה כאן היא להשיג את NTLM Hashes של משתמשים במערכת, מה שמאפשר לתוקף לבצע Pass-the-Hash ולהשיג גישה למערכות או שירותים נוספים ברשת. טכניקות הרעלת LLMNR, NBT-NS, IPv6 ו- SMB Spoofing מאפשרות לתוקף להאזין לתקשורת של המערכת ולהגיב בקשתות זדוניות על מנת להשיג את ההאשות.
הקדמה¶
- בגדול, לפי הדרך שבה NTLM הפרוטוקול עובד, כאשר אדם ברשת מנסה להתאימת מולי, אני יכול לגנוב לו את הhash בקלות.
- ובגלל איך שNTLM עובד, באמצעות הhash הזה- אני יכול להתאמת מול כל שירות שאני רק רוצה.
-
כלומר, אם נצליח לגרום למשתמש מסויים להתחבר לשירות שלנו בדומיין, נוכל לגנוב לו את הhash ולהתחזות אילו מול שירותים אחרים עם הhash שלו.
-
פרוטוקולי LLMNR (Link-Local Multicast Name Resolution) ו- NBT-NS (NetBIOS Name Service) הם פרוטוקולים המאפשרים למחשב לפנות למחשב אחר ברשת ולבצע השוואת dns-ים. כאשר מחשב מבצע חיפוש עבור מחשב אחר או משאב ברשת, הוא ישלח בקשה דרך פרוטוקול LLMNR או NBT-NS אם הוא לא מצליח למצוא את הכתובת ב-DNS.
-
התוקף יכול לבצע הרעלה של הבקשות ולספק תשובות שגויות שמצביעות על הip שלו, ואז כשהקרבן יפנה לתוקף להתאמתות- התוקף ישיג NTLM Hash שלו.
שלב 1: הרעלת LLMNR ו-NBT-NS¶
השלב הראשון בניצול חולשה זו הוא הרעלת LLMNR ו- NBT-NS. באמצעות הרעלת פרוטוקולים אלו, ניתן לגרום למחשב תמים לשלוח את בקשות ה- NTLM Hashes לתוקף.
הפעלת התקיפה באמצעות Responder¶
הכלי Responder הוא כלי פופולרי להרעלת LLMNR ו- NBT-NS. הכלי מאזין לבקשות LLMNR ו- NBT-NS ומגיב עם תשובות שגויות, אשר גורמות למחשב המותקף לשלוח את ה- NTLM Hashes לתוקף.
התקנת Responder¶
הפעלה וגניבת ההאשות¶
לאחר הפעלת Responder, התוקף מתחיל להאזין לבקשות LLMNR ו- NBT-NS. כאשר מחשב שולח בקשה ל-LLMNR או ל-NBT-NS, Responder יענה בתשובה שגויה ויבקש מהקובץ SMB את ההאשות של המחשב המותקף.
דוגמת פלט מ-Responder:¶
[*] Poisoned 192.168.1.10:445 - sending challenge for M$Windows 7
[*] Hash: administrator:aad3b435b51404eeaad3b435b51404ee:9e107d9d372bb6826bd81d3542a419d6
ה- NTLM Hashes שגנבתם יופיעו בפלט, אותם ניתן להפעיל בהתקפות Pass-the-Hash לאחר מכן.
שלב 2: הרעלת IPv6¶
פרוטוקול IPv6 משמש לתקשורת בין מחשבים ברשת המקומית, ויש לו תכונה המאפשרת למחשב לאתר מחשבים אחרים ברשת. לעיתים, יש חוסר בהגנה על התקשורת הזו, מה שמאפשר לתוקפים לבצע Spoofing ולגנוב את ה- NTLM Hashes.
התקפת IPv6 Spoofing¶
באמצעות Responder ניתן להפעיל התקפת IPv6 Spoofing. התוקף יאזין לתקשורת IPv6 ויגיב על בקשות DNS שמגיעות ממחשבים אחרים ברשת, ובכך יוכל לגרום למחשב לשלוח את ה- NTLM Hashes אליו.
הפעלת התקפת IPv6 Spoofing ב- Responder מתבצעת באמצעות פקודה כזו:
לאחר הפעלת הפקודה, התוקף יאזין לבקשות IPv6 ויבצע Poisoning של הכתובת שנשלחת מהקורבן.
**שלב 3: הרעלת SMB **¶
אחת מהטכניקות המתקדמות ביותר היא הרעלת SMB, שם התוקף מפנה את המחשב הקרבן לכתובת SMB של התוקף, כדי לשיבצע מולו התאמתות כדי להשיג את הhash-ים.
SMB Spoofing דרך desktop.ini¶
קובץ ה- desktop.ini הוא קובץ מערכת שמכיל מידע על תיקיות במערכת Windows. לעיתים, ניתן לשתול בו קוד זדוני שיגרום למחשב לנסות להתחבר לשרת SMB שנשלט על ידי התוקף. באמצעות קובץ זה, ניתן לגרום למחשב לפנות ל- SMB זדוני ולשלוח את ה- NTLM Hashes.
התקנת SMB Server על התוקף¶
על התוקף להפעיל שרת SMB כדי שיוכל לקבל את ההתחברות מהקורבן:
לאחר מכן, התוקף משתיל את קובץ ה- desktop.ini בתיקיה כלשהי על המחשב המותקף, שיגרום למחשב לפנות אל השרת SMB.
תקיפת גניבת NTLM Hashes עם LNK¶
ניתן להשתמש ב-LNK כדי לגרום למערכת לשלוח את ה-NTLM Hash של המשתמש לתוקף.
נניח שאנו יוצרים LNK שמפנה לקובץ SMB זדוני:
כאשר הקורבן פותח את הקובץ, המערכת מנסה להתחבר לשרת SMB של התוקף, ושולחת את ה-NTLM Hash של המשתמש.
גישה לקובץ דרך פריצת אתר¶
בהתקפות LFI, arbitrary file read בפריצות אתרים- התוקף יכול לגרום לאתר לנסות לגשת לקובץ מסויים על המחשב שהוא יכול לשלוט עליו.
אם בחולשה התוקף יכול ממש לתת נתיב אבסולוטי לאתר, התוקף יכול לתת לו נתיב רשתי שמכוון לשרת smb של התוקף ובכך לגרום לאתר הקורבן לנסות לגשת ולהתאמת מול התוקף ולגנוב לו את הhash.
טיפ¶
- כשאתם בודקים רשת פנימית, תמיד תתחילו בלהריץ ברקע responder, יכול להיות שבזמן ההפסקת צהריים שלכם שתחזרו לעבוד מישהו יתפס במלכודת.
- אולי תראו שמישהו ניסה לגשת לכתובת ipv6 ובגלל שלא היה מקונפג בדומיין ipv6 אז הוא נתפס במלכודת שלכם וקיבלתם את הhash שלו.
- ובדיוק אותו הדבר יכול לקרות עם llmnr או nbns.
- זאת פעולה שלא עולה לכם הרבה ויכולה להביא לכם בקלות את המשתמש הראשון שלכם בדומיין, או סתם דרך קלה להרחיב משטח.