יום שישי, 23 באוגוסט 2013

שימוש נכון ב-NMAP

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




על שימוש נכון ב-nMap
מאת: 
Andrew J. Bennieston

מאמר מתורגם מתוך http://nmap.org/bennieston-tutorial/
1. 
מבוא

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

2. דברים חוקיים

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


3. סריקות בסיסיות [-sT –sS]

שתי סוגי הסריקות הנפוצות והפשוטות ביותר של 
nMap הן סריקת TCP connect() [-sT] וסריקת SYN (שידועה גם כסריקה חצי פתוחה, או סריקה שקטה) [-sS].

3.1 TCP connect() [-sT ] 

סריקות אלו נקראות בשם זה מאחר שסוקטים של UNIX משתמשים בפקודת המערכת connect() כדי להתחיל תקשורת TCP למוקד מרוחק. אם connect() מצליח, החיבור מצליח. אם הפקודה נכשלת, יש אפשרות שהחיבור המרוחק נכשל כי המארח לא מחובר, הפורט סגור או כל שגיאת התחברות אחרת במהלך הדרך ליעד.
פקודה זו מאפשרת את הסריקה הפשוטה ביותר של פורטים פתוחים. הסריקה פשוט עוברת בצורה סדרתית על כל הפורטים הפתוחים ומנסה להתחבר. אם היא הצליחה הפורט פתוח, אחרת הוא סגור. כך היא עוברת אחד אחד ובודקת איזה מהפורטים פתוח ובסוף הסריקה היא מחזירה רשימה, כל החיבורים שהצליחו נחשבים ל"פתוח", והשאר כסגורים.
שיטה זו של סריקה מאוד פשוטה ומאוד אפקטיבית, ומאפשרת תמונה ברורה של הפורטים הבלתי נגישים ואלו הנגישים. אם 
connect() הצליח הפורט תמיד יהיה נגיש וזו בדיוק הייתה המטרה של הסריקה. החלק הפחות טוב של הסריקה הוא שהיא מאוד ברורה וניתנת לגילוי בקלות. אם פיירוול או מערכת לגילוי פריצות מזהה נסיונות חיבור סדרתי לכל הפורטים שנמצאים על המחשב כל המערכות יתעוררו בצעקות על נסיונות להשתלטות על המערכת. ואכן, כשמדובר במערכות הגנה מתקדמות, מהרגע שבו הן מזהות נסיון התחברות לפורט חסום, או אחד שלא הוגדר כפתוח ובאופן מיידי ירשמו את נסיון ההתחברות ללוג, כמו כן רוב השרתים מחזיקים לוג של כל נסיונות ההתחברות כולל כתובת IP, כך שיהיה פשוט מאוד לזהות את המקור של סריקת TCP connect .

מהסיבה הזו פותחה סריקת 
TCP שקטה.

3.2 
סריקת SYN שקטה [-sS]

ההתחלה של החלק הזה תלווה בהסבר קצת על תהליך החיבור בפרוטוקול 
TCP. כשחיבור TCP נוצר בין 2 מערכות, יש תהליך שנקרא "three way handshake". התהליך מורכב מתחלופה של 3 פאקטות, ומסנכרן את המערכות אחת עם השניה, (דבר זה הכרחי למנגנון תיקון שגיאות).
המערכת שיוצרת את החיבור מתחילה אותו בעזרת שליחה של פאקטה לצד השני. לפאקטות מסוג 
TCP יש כותר (header) שכוללת שדות דגלים. תפקידת של הדגלים הוא לתת לצד המקבל אינדיקציה על המידע שעומד להיות בתוך הפאקטות וכך מאפשר מידע מוקדם על התגובה הצפוייה של הצד המקבל.
הממאמר הזה יתמקד רק בארבע דגלים רלוונטים לסריקה. הדגלים הללו הם SYN (synchronise)ACK (acknowledge)FIN (finished) ו-RST (reset). פאקטת SYN מכילה את המספר סידורי של TCP, שמאפשר לצד המקבל לדעת אילו מספרי פאקטות הוא אמור לקבל (המספר סדרתי). ACK מאשר קבלה של פאקטה או סדרה של פאקטות, FIN נשלח כאשר הקישור צריך להסתיים (מכין את הסגירה של הקו), ו-RST נשלח כאשר החיבור מאותחל (סוגר את ההתקשרות באופן מיידי ללא המתנה לתשובה).
כדי לאתחל קישור מסוג TCP, הצד היוזם שולח פאקטת SYN אל היעד, שמגיב בשליחה של פאקטת SYN משל עצמו משולבת עם פאקטת ACK לאשר את קבלת הפאקטה הראשונה. (כאשר הן מחוברות הפאקטה נקראת פאקטת ACK/SYN). הצד היוזם שולח בשלב זה בחזרה פאקטת ACK ע"מ לאשר את קבלת ה-ACK/SYN ובשלב זה, החיבור קיים ומוכן להתחלה של העברת מידע.
סריקת SYN (סריקה שקטה) משתמשת בתהליך הזה של יצירת החיבור, היא שולחת פאקטות SYN ומחכה לתשובות. אם מתקבלת פאקטת ACK/SYN, הרי שהפורט פתוח והצד השני מנסה להתחיל חיבור TCP. הסורק שולח כתגובה פאקטת RST ושובר את החיבור באופן מיידי, לפני שהחיבור מושלם, דבר שפעמים רבות מונע את השמירה של נסיון ההתחברות מאחר והוא לא הושלם. אם הפורט סגור, מתקבלת בסורק הוראת RST כדי למנוע את החיבור. אם הפורט מכיל מסנן כלשהו (Firewall) הפאקטה זוכה להתעלמות ואין שום תגובה. בצורה זו, nMap יכולה למפות 3 סוגים שונים של פורטים: פתוחים, סגורים ועם פילטר.
מערכות הגנה מודרניות יכולות לעקוב אחרי סריקות SYN, אבל השילוב עם פרמטרים שונים של הסורק יכולות ליצור סריקה שתהיה כמעט בלתי נראית ע"י שינוי של תזמון השליחה של הפאקטות ועוד אפשרויות שונות.

4. סריקות FIN, Null ו-Xmas Tree [-sX, -sN, -sF]

נכון להיום, כשמערכות הגנה ופיירוולים מוגדרות לשים לב לסריקות SYN, שלושת הסריקות הללו יכולות להיות יעילות עד לדרגה מסויימת. כל אחת מהן מתייחסת לדגלים המתאימים של כותר ה-TCP. הרעיון שעומד מאחורי הסריקות הללו הוא שעבור פורט סגור הצד השני יחזיר הודעת RST, בעוד פורטים פתוחים יתעלמו מהם לחלוטין, (מאחר והם ממתינים אך ורק לפאקטות עם דגלי SYN). בצורה זו אף לא תתחיל בקשת התחברות וגם לא ישלחו פאקטות SYN, שהן המרכיב העיקרי שמערכות הגנה מתוכננות לחפש.
סריקת FIN שולחת פאקטה שרק דגל FIN מסומן בה, Xmas tree שולחת פאקטה עם הדגלים FIN, URG ו-PUSH, וסריקת Null שולחת פאקטה ללא דגלים בכלל
הסריקות הללו נועדו להיות יעילות מול מערכות TCP/IP שממשות את פרוטוקול RFC 973 . מייקרוסופט (כמה מפתיע) לא מממשת את הפרוטוקול, ולכן מערכת ווינדוס תתעלם מהפאקטות האלו גם אם הפורטים סגורים. טכנית, הסריקה הזו מאפשרת גילוי של מערכות MS ע"י הוספה של פרמטרי סריקת SYN לסריקה. אם סריקת SYN מצאה פורטים פתוחים אבל סריקת FIN/NUL/XMAS לא קיבלה תשובה, רוב הסיכויים הם שיש לנו עסק עם מערכת מתוצרת באלמר. 
הדוגמה המצורפת תראה סריקת SYN וסריקת FIN מבוצעות על מערכת לינוקס. התוצאות הן, כצפוי אותן התוצאות, אבל סריקת FIN היא בעלת סיכויים נמוכים בהרבה להתגלות במעבר על לוגים של המערכת.

קוד:

 1 [chaos]# nmap -sS 127.0.0.1
  
   2 
  
   3 Starting Nmap 4.01 at 2006-07-06 17:23 BST
  
   4 Interesting ports on chaos (127.0.0.1):
  
   5 (The 1668 ports scanned but not shown below are in state:
  
   6         closed)
  
   7 PORT     STATE SERVICE
  
   8 21/tcp   open  ftp
  
   9 22/tcp   open  ssh
  
  10 631/tcp  open  ipp
  
  11 6000/tcp open  X11
  
  12 
  
  13 Nmap finished: 1 IP address (1 host up) scanned in 0.207
  
  14         seconds
  
  15 [chaos]# nmap -sF 127.0.0.1
  
  16 
  
  17 Starting Nmap 4.01 at 2006-07-06 17:23 BST
  
  18 Interesting ports on chaos (127.0.0.1):
  
  19 (The 1668 ports scanned but not shown below are in state:
  
  20         closed)
  
  21 PORT     STATE         SERVICE
  
  22 21/tcp   open|filtered ftp
  
  23 22/tcp   open|filtered ssh
  
  24 631/tcp  open|filtered ipp
  
  25 6000/tcp open|filtered X11
  
  26 
  
  27 Nmap finished: 1 IP address (1 host up) scanned in 1.284
  
  28         seconds

5

סריקת פינגים [sP-]הסריקה הבאה, מציגה את כל ההוסטים הקיימים בטווח נתון שהגיבו לפינג. לעומת הסריקות הקודמות שחיפשו פורטים פתוחים, היא מאפשרת לזהות אילו מחשבים מחוברים לרשת. יש ארבעה סוגים של סריקה.
הסוג הראשון שולח פאקטת ICMP ECHO REQUEST (פינג J) למערכת היעד. אם מתקבל ICMP ECHO REPLY, המערכת מחוברת ופאקטות ICMP לא נחסמות. אם אין תגובה לפינג, מערכת לא מחוברת, או שפורט היעד עובר סינון ולכן הוא לא עונה לשום בקשה.
פינג TCP שולח פאקטה עם דגל SYN או ACK לפורט כלשהו (ברירת המחדל – 80) ליעד. אם מתקבלת כתשובה פאקטה עם דגל RST או SYN/ACK, המערכת מחוברת. אם לא מתקבלת תשובה, המערכת אופליין או שהפורט מסנן כתובות ולכן מתעלם מהבקשה.
כשמריצים סריקת פינג כ-ROOT. ברירת המחדל היא שימוש בשליחת ICMP ו- ACK. כאשר מדובר במשתמש "רגיל" הסריקה תשתמש ב- connect(), שתנסה להתחבר למכונה, תמתין לתגובה ותהרוס את החיבור ברגע שבו הוא יושלם (בדומה לסריקת ACK/SYN למשתמש ROOT, ההבדל הוא שבסריקה זו נוצר קשר מלא !). אפשר לבטל את האפשרות לסריקת ICMP ע"י שימוש בפרמטר PO- (האות, לא המספר 0)

6. סריקת UDP [-sU]

סריקה של פורטי 
UDP פתוחים נעשית עם פרמטר –sU. בסריקה זו nMap שולח פאקטות UDP בגודל 0 בתים לכל פורט של המטרה. קבלה של הודעת "ICMP port unreachable" מסמלת שהפורט סגור, אחרת נסיק שהוא פתוח.
הבעיה העיקרית של גישה זו, היא שכאשר פיירוול חוסם תעבורה יוצאת של הודעות "פורט סגור" נצא מנקודת הנחה שהוא פתוח מאחר ולא קיבלנו תגובה. בשיטה זו קשה מאוד להבחין בין פורטים פתוחים לבין פורטים שחסומים ע"י פיירוול.
חיסרון נוסף בסריקת UDP הוא מהירות הבדיקה. רוב המערכות מגבילות את כמות הודעות ICMP port unreachable שאפשר לייצר בכל נקודת זמן, מה שמאט משמעותית את הזמן שלוקח לסריקה לעבור. nMap מתאים את התזמון של הסריקה בהתאם כדי למנוע הצפה של הרשת עם פאקטות חסרות תועלת. נקודה למחשבה היא שמייקרוסופט לא מגבילה את כמות ההודעות, מה שגורר קלות יתר בסריקה של כל 65,535 (!) הפורטים.
רוב השירותים המודרנים משתמשים בפרוטוקול TCP מה שגורם לסריקת UDP להיות נדירה יחסית בסריקות של איסוף נתונים, אלא אם כן סריקה של TCP רומזת שיש בזה צורך. אחרת זה פשוט לא שווה את הזמן שזה לוקח.

7. סריקת פרוטוקול [-sO]

סריקת פרוטוקול 
IP מנסה לקבוע באילו פרוטוקולי IP היעד תומך. nMap שולח פאקטות IP גסות (Raw data) ללא כותר לכל פרוטוקול במכונת היעד. קבלה של הודעת "ICMP Protocol Unreachable" תגלה לנו שהפרוטוקול לא נמצא בשימוש, אחרת נסיק שהוא בשימוש. לא כל ההוסטים שולחים הודעות שגיאה כאלו. אלה עשויים להיות פיירוולים, AIX,HP-UX ו- Digital UNIX. אלו ידווחו על כל הפורטים כפתוחים.
סריקה זו גם סובלת מההגבלה שיש לשליחה של הודעות ICMP כמו סריקת UDP. לעומת זאת, יש רק 256 פרוטוקולי IP ולכן הסריקה לא תיקח כ"כ הרבה זמן.
תוצאות סריקת –sO כל מכנות הלינוקס של מחבר המאמר מצורפת כאן:

קוד:


   
1 [chaos]# nmap -sO 127.0.0.1
2
3 Starting Nmap 4.01 at 2006-07-14 12:56 BST
4 Interesting protocols on chaos(127.0.0.1):
5 (The 251 protocols scanned but not shown below are   
6         in state: closed)   
7 PROTOCOL STATE         SERVICE   
8 1        open          icmp                       
9 2        open|filtered igmp                      
10 6        open          tcp                       
11 17       open          udp                       
12 255      open|filtered unknown                   
13   14 Nmap finished: 1 IP address (1 host up) scanned in  
15         1.259 seconds  8.


8. בדיקת סרק [-sI]

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

צורת הסריקה עובדת ע"פ ניצול של תהליך "Predictable IP fragmentation ID" של הזומבי. ע"מ לקבוע אילו פורטים פתוחים אצל היעד, הסריקה בודקת מה ה-IPID של הזומבי ואז מחליפה את נתוני בקשת החיבור אל היעד, כך שנראה שהבקשות מגיעות מהזומבי. אם הפורט פתוח, מגיעה פאקטת אישור של SYN/ACK מהיעד בחזרה לזומבי, שבתורו ישלח הודעת RST אל היעד מאחר והוא לא שלח בקשת התחברות כלל. אם הפורט סגור, הודעת RST תישלח אל הזומבי ולא ישלחו פאקטות נוספות. בשלב זה התוקף בודק את ה- IPIDשל הזומבי שוב. אם הערך עלה ב-2 (או השתנה בטווח של 2 בסדרה), זה מתקשר ישירות עם הפאקטה שהתקבלה מהיעד, פלוס ה-RST שנשלח מהזומבי. אם הערך השתנה רק ב-1, הרי שהתקבל RST ולא נשלחו עוד פאקטות ולכן הפורט סגור.
בעזרת מנגנון זה, אפשר לסרוק כל פורט של היעד, תוך שזה נראה כאילו הזומבי ביצע את הסריקה. כמובן שנסיונות ההתחברות המזוייפים יירשמו בלוגים, ולכן המערכת שנסרקה תכיל את ה-IP של הזומבי והמערכת של הזומבי ככל הנראה תכיל את כתובת ה-IP של התוקף. כך שעדיין אפשר להתחקות אחרי התוקף בעזרת התערבות של רשויות החוק, אבל השיטה הזו מקשה מאוד על ההתחקות אחר עקבות התוקף. בנוסף, חלק ממערכות ההגנה עושות מאמצים לגילוי של כתובות מזוייפות על בסיס הרשת ממנה הגיעו הבקשות (שהיא בעצם שונה מכתובת הזומבי המקורית). כל עוד הזומבי והתוקף נמצאים "ברחבי המרשתת", או באותה הרשת באופן יחסי, טכניקות זיהוי זיופים נעשות פחות ופחות יעילות.
סריקה מהסוג הזה דורשת כמה דברים מהזומבי. תהליך ה-IPID חייב להיות צפוי מראש (צעד אחד כל פעם, למשל). הזומבי חייב להיות בעל תעבורה נמוכה יחיסת כך שלא יגיעו פאקטות תוך כדי הסריקה ויגרמו לבדיקה להיות לא יעילה. ראוטרים זולים ושרתי ווינדוס הם מועמדים מעולים להיות זומבים. רוב מערכות ההפעלה משתמשות בסדר רנדומלי (ראה המשך בנושא טביעות אצבע של מערכות הפעלה לפירוט על תהליך הרנדומציה של מספור הפאקטות).
בדיקת סרק יכולה גם לבדוק אם יש תחום קבוע של כתובות IP שיכול לגשת למכונת היעד בעוד כל השאר נחסמים אוטומטית.
לעוד מידע בנושא ניתן לקרוא בקישור: http://www.insecure.org/nmap/idlescan.html

9. בדיקת גרסה [sV-]

בדיקת גרסה אוספת מידע על 
Service מסויים שרץ על פורט פתוח, כולל את שם המוצר ואת הגרסה שלו. המידע יכול להיות חיוני מאוד בקביעה של נקודת הכניסה של התקיפה למערכת. שימוש באופציית -sV מאפשר גילוי גרסה ושימוש באפוציית A- מאפשר גם מציאה של טביעת אצבע של מערכת הפעלה וגם מציאת גרסה, כמו גם אפשרויות שונות שיתווספו בשחרורים עתידיים.
לקריאה נוספת אפשר לבקר ב: http://www.insecure.org/nmap/vscan/ 


1. 10. סריקת ACK [-sA]

מטרת סריקה זו היא לגלות חוקים של מערכות סינון והגנה (פיירוול), ולהבדיל בין מערכות מובנות מצבים וכאלו שלא מובנות מצבים (לדוגמה, מערכות להתמודדות עם עומס על הרשת וכדו'), סריקה זו שולחת פאקטות ACK אל היעד. אם מתקבל RST כתגובה, הפורט נרשם כ"ללא פילטר", (כלומר, הוא מאפשר שליחה של תשובות ללא קשר לפיירוול). אם לא מתקבלת תשובה, הפורט נרשם כ"בעל פילטר". כלומר, הפיירוול מונע שליחה של RST מהפורט הנקוב. סריקה יכולה לעזור בקביעה אם פיירוול הוא מובנה מצבים (עוקב אחרי התחברויות וגם מונע שליחה של ACK ליעדים לא מוכרים) או לא (מונע כניסה של כל SYN).
2. סריקת חלונות, סריקת RPC וסריקת רשימות [-sW, -sR, -sL]
סריקת חלונות TCP דומה מאוד לסריקת ACK אבל לפעמים היא יכולה לזהות פורטים פתוחים כמו גם פורטים מסוננים/לא מסוננים. זה נובע מדיווחים על גודל חלון TCP של חלק ממערכות ההפעלה.
סריקת RPC יכולות לשמש בתוספת לסוגי בדיקות אחרות כדי לקבוע אם יש שירות (serviceRPC שרץ מעל פורט UDP או TCP, אם היא מוצאת שכן, היא בודקת איזו תוכנה ואיזה מס' גרסה רץ על הפורט. אי אפשר ליצור הטעיות בסריקת RPC.
סריקת רשימות פשוט מדפיסה רשימה של כתובות IP ושמות (ברירת המחדל היא ע"פ DNS, אלא אם כן נוסף הפרמטר –n בהוראת הסריקה), ללא שליחה של פינג או סריקה של ההוסטים.
11. תזמון והסתרה של סריקות.

11.1 תזמון

nMap, מתזמן את הסריקות שלו באופן אוטומטי ע"פ מהירות הרשת וזמני התגובה של המטרה. אבל עדיין אפשר לשלוט בתזמון בצורה ידנית כדי ליצור סריקות יותר חשאיות, או לחילופין סריקה גסה ומהירה שתיתן תוצאות בזמן הקצר ביותר.
אפשרות התזמון הראשית היא בפרמטר -T. יש 6 תזמונים שונים שאפשר ליצור (החל מאפס שמוגדר כסריקה פרנואידית) התזמונים הם: paranoid, sneaky, polite, normal, aggressive, insane.
סריקת פארנויה (או -T0) תחכה בד"כ לפחות חמש דקות בין כל שליחה של פאקטה. דבר זה יוצר מצב שבו כמעט בלתי אפשרי לפיירוול לזהות סריקת פורטים (מאחר והוא יתייחס לפורטים שמגיעים כל חמש דקות כרעש רקע.) סריקה כזו עדיין תופיע בלוגים, אבל מאחר והיא תתפרש בצורה כ"כ רחבה, רוב כלי הניתוח יפספסו אותה לחלוטין.
סריקת insane (או -T5), תמפה את הפורטים במהירות רבה מאוד, בהנחה ואתם עובדים על רשת מהירה מאוד או שלא איכפת לכם לאבד חלק מהמידע בדרך.
תזמון לאספקטים מסויימים של סריקה יכול להיקבע ע"י שימוש בפרמטרים הבאים: -host_timeout, -mac_rtt_timeout, -min_rtt_timeout, -initial_rtt_timeout, -max_parallelism, -min_parallelism ואחרון -scan_delay.

3.2 11.2 הטעיות

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

3.3 11.3 דילוג FTP
דילוג FTP
פרוטוקול FTP (RFC 959) מוגדר לתמיכה בפרוקסי. האופציה הזו מאפשר חיבור לשרת FTP ע"מ לשלוח מידע לכל מקום באינטרנט. אפשרות זו נוטה שלא לעבוד על ftpd מודרני שבהם בד"כ האפשרות מבוטלת, אבל אם שרת שכזה מנוצל ע"י nMap, הוא יכול לאפשר כמתווך ואפשר לבדוק חיבורים של המטרה לשרת.
סריקה כזו מאפשרת אנונימיות במידה כלשהי, אפילו ששרתי FTP עלולים לשמור לוגים של כל הפקודות שנשלחו אליהם.

11.4 ביטול שליחת פינגים

אפשרות -P0 (מספר אפס), מאפשר כיבוי של פינגי ICMP. האפשרות 
-PT מדליקה בחזרה את האפשרות, אפשר גם לציין במדוייק אחרי פקודת –PT לאיזה פורט לשלוח את הפינגים.
לביטול פינגים יש 2 יתרונות: ראשית האפשרות הזו מוסיפה חשאיות לבדיקה אם אנחנו מריצים סריקה חשאית, ושנית היא מאפשרת ל-nMap לסרוק הוסטים שלא משיבים לפינגים (שבד"כ היו מדווחים כמנותקים, והסריקה שלהם הייתה מתבטלת).
בצירוף עם -PT, אפשר להשתמש בפרמטר -PS ששולח פאקטות SYN במקום ACK ליצירה של פינגים.
אפשרות -PU (עם אפשרות להוספה של רשימת פורטים), שולחת פאקטות UDP בשביל ליצור פינג. זו כנראה השיטה הטובה ביותר לשלוח לפורטים שחשודים כסגורים, מאחר ופורטים פתוחים לא נוטים לשלוח תגובה לפאקטות ריקות של UDP.
אפשרויות נוספות ליצירת פינג היא -PE (ICMP echo request), -PP (ICMP timestamp request) ואפשרות -PB (ICMP echo request & ACK packet).


11.5 חלוקה

הפרמטר -f מפצל את פאקטות ה-IP להמון חלקים קטנים כשסורקים בעזרת -sS, -sF, -sX או -sN. החלוקה מקשה מאוד על פיירוול או מסנן פאקטות לקבוע את סוג הפאקטה. צריך לשים לב שהרבה פיירוולים ומסננים (כולל iptables) מכילים גם באפר ששומר את החלקים ומרכיב מחדש את הפאקטות כדי לבדוק את סוגן. פיירוולים פחות מתוחכמים לא יצליחו להתמודד עם פאקטות מחולקות בכמות כזו וכנראה שיתנו למערכת ההפעלה להרכיב את הפאקטות ולשלוח אותן לפורט המתאים. שימוש באופציה הזו עלולות להקריס חומרה ותוכנה לא יציבות מאחר והפאקטות נעשות קטנות במיוחד!

12. 
טביעות אצבע של מערכות הפעלה


הפרמטר -O מדליק את מערכת זיהוי טביעות אצבע של nMap. יחד עם אפשרות -v (אופציית פירוט) אפשר לאסוף מידע על מערכות הפעלה מרוחקות ועל שיטת המספור של פאקטותTCP
מאמר על זיהוי מערכות הפעלה אפשר למצוא כאן: http://www.insecure.org/nmap/nmap-fi...g-article.html.

13. 
יצירת לוגים של סריקות


יצירת לוגים של סריקות ב-nMap אפשרית דרך הוספת הפרמטרים -oN, -oX או -oG. כל אחת מהן צריכה בנוסף גם שם של קובץ אליו תייצא את הלוג.
-oN מייצרת לוג אנושי רגיל, -oX מייצאת לקובץ XML בעוד -oG מייצרת לוג הניתן ל-grep. האפשרות -oA תייצר את כל הלוגים הללו והאפשרות -oS תייצא לוג שאני בטוח שאף אחד לא ירצה להשתמש בו. (נסו את זה, אתם תראו למה הייתה הכוונהJ).
האפשרות -append-output, תוסיף את התוצאות לקבצי פלט שנקבעו, אחרת הקבצים יידרסו.

14. 
אפשרוית נוספות.


אני לא עומד לפרט כאן את כל האפשרויות שהיו במדריך המקורי אלא רק כמה.
o · o ע"מ לבקש פירוט מהסריקה צריך להוסיף את הפרמטר -v, הכפלה של הפרמטר (-v-v) תיצור פירוט רב יותר. ניתן להשתמש גם בפרמטר -d או -d-d.
· o אפשר לסרוק רשימה מובנית של יעדים בעזרת הפרמטר -iL <inputfilename>.
· o אפשר לסרוק סריקה מהירה בעזרת -F, פרמטר זה עובר רק על הפורטים שרשומים בקובץ nmap_services במקום לעבור על כל 65,535 הפורטים האפשריים.

15. 
דוגמה לסשן סריקה נורמלי.


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

1 [chaos]# nmap -sP 10.0.0.0/24
  
   2 
  
   3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at
  
   4         2006-07-14 14:19 BST
  
   5 Host 10.0.0.1 appears to be up.
  
   6 MAC Address: 00:09:5B:29:FD:96 (Netgear)
  
   7 Host 10.0.0.2 appears to be up.
  
   8 MAC Address: 00:0F:B5:96:38:5D (Netgear)
  
   9 Host 10.0.0.4 appears to be up.
  
  10 Host 10.0.0.5 appears to be up.
  
  11 MAC Address: 00:14:2A:B1:1E:2E (Elitegroup Computer System Co.)
  
  12 Nmap finished: 256 IP addresses (4 hosts up) scanned in 5.399 seconds


עכשיו נסתכל על הוסט 10.0.0.1 ועל 10.0.0.2 שרשומים שניהם כ-netgear. הכתובות הללו נראות ככתובות אפשריות לראטורים (למעשה ידוע ש-10.0.0.1 הוא ראוטר ו-10.0.0.2 היא נקודת הכניסה של רשת אלחוטית, מאחר והם שייכים למבצע הבדיקה). נסרוק את 10.0.0.1 בעזרת סריקת -sS עם פרמטר -A כדי לבדוק איזו מערכת הפעלה קיימת.

קוד:

 1 [chaos]# nmap -sS -A 10.0.0.1
  
   2 
  
   3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at
  
   4         2006-07-14 14:23 BST
  
   5 Insufficient responses for TCP sequencing (0),
  
   6         OS detection may be less accurate
  
   7 Interesting ports on 10.0.0.1:
  
   8 (The 1671 ports scanned but not shown below are in state:
  
   9         closed)
  
  10 PORT   STATE SERVICE    VERSION
  
  11 80/tcp open  tcpwrapped
  
  12 MAC Address: 00:09:5B:29:FD:96 (Netgear)
  
  13 Device type: WAP
  
  14 Running: Compaq embedded, Netgear embedded
  
  15 OS details: WAP: Compaq iPAQ Connection Point or
  
  16         Netgear MR814
  
  17 
  
  18 Nmap finished: 1 IP address (1 host up) scanned in
  
  19         3.533 seconds



הפורט היחיד שהיה פתוח הוא 80/tcp במקרה הזה, מנהל הממשק עם האינטרנט של הראוטר. מערכת ההפעלה ששוערה היא Netgear Wireless Access Point. אבל כמו שנכתב, לא היו מספיק תשובות כדי לוודא באופן מוחלט את מערכת ההפעלה.
עכשיו נסרוק את 10.0.0.2

קוד:


   1 [chaos]# nmap -sS -A 10.0.0.2
 
   2
 
   3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ )
 
   4         at 2006-07-14 14:26 BST
 
   5 Interesting ports on 10.0.0.2:
 
   6 (The 1671 ports scanned but not shown below are in state:
 
   7         closed)
 
   8 PORT   STATE SERVICE VERSION
 
   9 80/tcp open  http    Boa HTTPd 0.94.11
 
  10 MAC Address: 00:0F:B5:96:38:5D (Netgear)
 
  11 Device type: general purpose
 
  12 Running: Linux 2.4.X|2.5.X
 
  13 OS details: Linux 2.4.0 - 2.5.20
 
  14 Uptime 14.141 days (since Fri Jun 30 11:03:05 2006)
 
  15
 
  16 Nmap finished: 1 IP address (1 host up) scanned in 9.636
 
  17         seconds

מעניין הוא שהסריקה כתבה כאן שמערכת ההפעלה היא לינוקס, והגרסה נקבעה כ-httpd.
רמת הדיוק של הסריקה לא מוחלטת, אבל מאחר והמכשיר הוא נקודת חיבור לרשת אלחוטית יכול להיות שהוא מריץ גרסה כלשהי של Embedded Linux!
כעת נעבור לכתובות 10.0.0.4 ן- 10.0.0.5 שהן ככל הנראה שייכות למחשבים שרצים ברשת.

קוד


   1 [chaos]# nmap -sS -P0 -A -v 10.0.0.4
 
   2
 
   3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at
 
   4         2006-07-14 14:31 BST
 
   5 DNS resolution of 1 IPs took 0.10s. Mode:
 
   6         Async [#: 2, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
 
   7 Initiating SYN Stealth Scan against 10.0.0.4 [1672 ports] at 14:31
 
   8 Discovered open port 21/tcp on 10.0.0.4
 
   9 Discovered open port 22/tcp on 10.0.0.4
 
  10 Discovered open port 631/tcp on 10.0.0.4
 
  11 Discovered open port 6000/tcp on 10.0.0.4
 
  12 The SYN Stealth Scan took 0.16s to scan 1672 total ports.
 
  13 Initiating service scan against 4 services on 10.0.0.4 at 14:31
 
  14 The service scan took 6.01s to scan 4 services on 1 host.
 
  15 For OSScan assuming port 21 is open, 1 is closed, and neither are
 
  16         firewalled
 
  17 Host 10.0.0.4 appears to be up ... good.
 
  18 Interesting ports on 10.0.0.4:
 
  19 (The 1668 ports scanned but not shown below are in state: closed)
 
  20 PORT     STATE SERVICE VERSION
 
  21 21/tcp   open  ftp     vsftpd 2.0.3
 
  22 22/tcp   open  ssh     OpenSSH 4.2 (protocol 1.99)
 
  23 631/tcp  open  ipp     CUPS 1.1
 
  24 6000/tcp open  X11      (access denied)
 
  25 Device type: general purpose
 
  26 Running: Linux 2.4.X|2.5.X|2.6.X
 
  27 OS details: Linux 2.4.0 - 2.5.20, Linux 2.5.25 - 2.6.8 or
 
  28         Gentoo 1.2 Linux 2.4.19 rc1-rc7
 
  29 TCP Sequence Prediction: Class=random positive increments
 
  30                          Difficulty=4732564 (Good luck!)
 
  31 IPID Sequence Generation: All zeros
 
  32 Service Info: OS: Unix
 
  33
 
  34 Nmap finished: 1 IP address (1 host up) scanned in 8.333 seconds
 
  35                Raw packets sent: 1687 (74.7KB) | Rcvd: 3382 (143KB)

מכאן ניתן להסיק ש-10.0.0.4 מריץ מערכת לינוקס עם קרנל בגרסה של בין 2.4 ל-2.6 עם הפורטים 21/tcp, 22/tcp, 631/tcp, 6000/tcp. כל הפורטים חוץ מ-6000 רשומים גם עם מס' גרסה והסריקה מצאה את ה-IPID של כולם כ-0. מה שהיה גורם להם להיות חסרי תועלת בבדיקת סרק ומנגנון המספור של TCP חוזה מספרים שלמים חיוביים. הפרמטר -v היה חיוני כדי ש-nMap ידפיס את נתוני ה-IPID.
ועכשיו לכתובת 10.0.0.5

קוד

   1 [chaos]# nmap -sS -P0 -A -v 10.0.0.5
 
   2
 
   3 Starting Nmap 4.01 ( http://www.insecure.org/nmap/ )
 
   4         at 2006-07-14 14:35 BST
 
   5 Initiating ARP Ping Scan against 10.0.0.5 [1 port] at 14:35
 
   6 The ARP Ping Scan took 0.01s to scan 1 total hosts.
 
   7 DNS resolution of 1 IPs took 0.02s. Mode: Async
 
   8         [#: 2, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
 
   9 Initiating SYN Stealth Scan against 10.0.0.5 [1672 ports] at 14:35
 
  10 The SYN Stealth Scan took 35.72s to scan 1672 total ports.
 
  11 Warning:  OS detection will be MUCH less reliable because we did
 
  12         not find at least 1 open and 1 closed TCP port
 
  13 Host 10.0.0.5 appears to be up ... good.
 
  14 All 1672 scanned ports on 10.0.0.5 are: filtered
 
  15 MAC Address: 00:14:2A:B1:1E:2E (Elitegroup Computer System Co.)
 
  16 Too many fingerprints match this host to give specific OS details
 
  17 TCP/IP fingerprint:
 
  18 SInfo(V=4.01%P=i686-pc-linux-gnu%D=7/14%Tm=44B79DC6%O=-1%C=-1%M=00142A)
 
  19 T5(Resp=N)
 
  20 T6(Resp=N)
 
  21 T7(Resp=N)
 
  22 PU(Resp=N)
 
  23
 
  24 Nmap finished: 1 IP address (1 host up) scanned in 43.855 seconds
 
  25                Raw packets sent: 3369 (150KB) | Rcvd: 1 (42B)

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

קרדיט על התרגום ל: thepoosh 

בהצלחה (:

עומרי זכאי על NMAP עומרי זכאי על NMAP עומרי זכאי על NMAP  עומרי זכאי על NMAP

אין תגובות:

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

תודה על תגובתך (: