יום שבת, 22 בינואר 2011

Information Gathering

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

איסוף האינפורמציה מתבצע בהמון טכניקות במטרה לקדם את ההתקפה, נניח שיש 2 חברות (אחת נקרא ל A ולשניה B) והן מיצרות את אותו מוצר וכל אחת תופסת חצי מהשוק, הפלטפורמה השיווקית שלהם היא האינטרנט, ובעל הבית של חברת A התחרפן על דעתו והחליט שהוא רוצה לתפוס 80 אחוז מהשוק, הוא ניסה בדרכים ישרות וכשראה שזה בלתי אפשרי הוא הלך לצד האפל ברשת והפעיל קבוצה של אנשים מסתוריים שיעשו בשבילו את העבודה.

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

מי האויב שלנו?
השלב הראשון באיסוף המידע הוא להבין את מי אנחנו הולכים לתקוף, נעשה עליו חיפושים לגיטימיים ברחבי הרשת
  1.  נשאל את Google (הכי פשוט והכי מהיר).
  2.  נבדוק באתרים פיננסיים (גודל החברה, מיקומים, מנכ"לים, כספים).
  3. רשתות חברתיות (שמות של עובדים, חברים של העובדים, בלוגים).

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

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

יש עשרות כלים לזיהוי חשיפות שמאפשרות לתוקף למצוא לו את ההתקפה המתאימה.


Nmap
אחד הכלים הותיקים והמפורסמים בתחום מכיל בתוכו המון אפשריות, ובעצם הכלי סריקה האמין ביותר שקיים,ניתן לזהות את מערכות ההפעלה, הפורטים ואת ה Services שרצים על השרת, והוא ניתן להורדה מהאתר: http://nmap.org/ , יש לו גרסאות  Gui ו Console ומגיע עם Backtrack , הוא מפורסם גם בתעשיית הסרטים וניתן לראות בסרטים כמו :
Matrix Reloaded, Bourne Ultimatum, Die Hard 4.

דוגמה לסריקה
#: nmap -A 192.168.1.1


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



ניתן לראות את הזמנים המאוד קצרים בין חבילה לחבילה שנשלחת מהתוקף.
ניתן לבצע סריקות יותר איטיות שלוקחות יותר זמן אבל מוסתרות יותר, האות T מייצגת את הזמן של הסריקה, כש 1 היא האיטית ביותר עד 5 שהיא המהירה ביותר.

#: nmap -T1 -A 192.168.1.103



ניתן לראות את שהזמנים יותר ארוכים בין חבילה לחבילה.


Zombie
שימוש במחשב "Zombie" שיבצע בשבילנו את הסריקה מבלי לחשוף את עצמנו, איך בדיוק זה עובד?
בתוך המושג Zombie מסתתרת בעייה עמוקה והיא ברמת ההתנהגות הבסיסית של הפרוטוקול Tcp/Ip , כל חבילה שנשלחת מכילה מספר רץ, בכל חבילה יש מספר שעולה + 1 כאשר מגיעה חבילה חדשה, ובעצם ע"פ הקפיצות ניתן לחזות אם ה Port פתוח או לא.

#: nmap -sI Zombie-Address -PN -v Victim-Address


הפעולה שמאחורי הקלעים:

שליחת Packet SYN/ACK ל Zombie


  • החבליה שחוזרת לנו מהזומבי היא RST ובעצם מעלה את ה ID באחד.


שליחת חבלית  Spoof  Packet SYN.

  • נשלחת דרכנו חבילה מטעם הזומבי.


הקןרבן מחזיר Packet SYN/ACK


  • מעלה את ה ID בזומבי ב 1.

שליחת Packet SYN/ACK נוסף ל Zombie



החבילה שחוזרת לנו חוזרת + 1 , כלומר אם ננתח את השיטה בחבילה הראשונה שנשלחה המספר ID עלה ב 1 כאשר אנחנו שולחים את החבילת ה Spoof שלנו ה Victim שולח חבילת SYN/ACK בעקבות הבקשה של SYN ששלחנו בחבילה, הזומבי מסרב לחבילה ומחזיר חבילת RST ומעלה את ה ID שלו ב 1  פעם נוספת כששולחים חבילה נוספת של SYN/ACK לזומבי מקבלים חבילה RST שמעלה את ה ID באחד ובעצם אם ה ID קפץ 3 פעמים ,המסקנה שה Port אצל ה Victim פתוח במקרה וחבילה החוזרת מה Zombie וה ID קפץ רק פעמיים זה אומר שה Port כנראה סגור כי חבילת ה Spoof לא הגיעה ליעד שלה.

ניתן לראות איך זה קורה בפועל מאחורי הקלעים:
#: nmap -sI Zombie-Address -PN -r --packet-trace -v Victim-Address 


 Httprint
כלי לזיהוי האפליקציה שמריצה את האתר, הכלי מאוד פשוט והוא עובד על ניתוח של החבילות שחוזרות, מגיע עם Backtrack, להורדה: http://net-square.com/httprint/


במקרה שלנו אנחנו רוצים לדעת אם המערכת עובדת על IIS או Apache , ה Response שנקבל שונים מאפליקציה לאפליקציה ובנוסף נקבל את הגרסה הנוכחית על מנת שנוכל להתאים לה התקפה.


כיצד ניתן לבלבל את התוקפים?

FireWall
נחשוף לעולם כמה שפחות, הגדרות נכונות ב Firewall והסרה של שירותים שלא נחוצים למערכת שלנו.
Packet TTL
לשנות את זמני ה TTL שהמערכת מחזירה, כלומר ה Hops שיכולים לעבור ב Datagram שבחבילה, ובכל Hop  שאנחנו עוברים בדרך ה TTL קטן באחד, ברגע שאנו עוברים יותר Hops מהכמות המוגדרת ב TTL נקבל הודעת ICMP Time Exceeded, ב Windows הגדירו את ב TTL כ 128 וב Linux כ 64.

שינוי TTL ב Windows Server 2008
נפתח את ה RegEdit ונלך למפתח:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters


נוסיף Dword 32 bit נגדיר את ה TTL הרצוי, בין 1 - 255, חשוב לא להגדיר מספר נמוך מידי, נשמור אותו כ DefaultTTL



Http Response
שינוי ה Response שחוזרים לנו ב Http , לדוגמה אם נגיע לדף שלא קיים נקבל הודעת שגיאה יחודית עבור האפליקציה שמריצה את האתר.


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



קבצי השגיאות מסוג Html והם ממוקמים בספרייה:
C:\inetpub\custerr\en-US\
ניתן לשנות את הניתוב עבור דפי השגיאות ברמת ה IIS ב Error Pages.


לסיכום:
איסוף המידע הוא קריטי עבור שלב ההתקפה, ובעצם כל חשיפה שיש על הקורבן מקרבת את התוקף לפריצה שהוא רוצה להפעיל - Exploits, DOS attack , Brute Force וכדומה.


אין תגובות:

הוסף רשומת תגובה