Nmap

Nmap (קיצור של Network Mapper תרגום; "ממפה רשת") היא תוכנת סריקת רשת, המשמשת לגילוי מתחמים ושירותים, ברשת מחשבים. דרך פעולת Nmap היא שליחת חבילות בעלות מבנה מסוים אל המתחם הרצוי, וניתוח התגובה המתקבלת ממנו. 

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

Nmap מסוגלת גם להסתגל למצבי רשת שונים, כולל השהיה ועומס במהלך סריקה.

בהתחלה הייתה התוכנה מותאמת לשימוש רק תחת לינוקס, אך היא עברה פורטינג לחלונות, סולאריס, BSD, HP-UX, AmigaOS, ו-SGI IRIX. לינוקס היא המערכת שהכי נפוץ בה השימוש בתוכנה, וחלונות מיד אחריה. 

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

== פקודות בסיסיות ==
להלן פקודות בסיסיות לסריקת מטרות:<syntaxhighlight lang="bash">
nmap -sn -PS <target> # Discovering hosts with TCP SYN ping scans 

nmap -sn -PA <target> # Discovering hosts with TCP ACK ping scans

nmap -sn -PU <target> # Discovering hosts with UDP ping scans

nmap -sn -PE <target> # Discovering hosts with ICMP ping scans

nmap -sn -PR <target> # Discovering hosts with ARP ping scans

nmap -sn -PR --spoof-mac <mac address> <target> # MAC address spoofing
</syntaxhighlight>

== איסוף מידע - Reconnaissance ==
התהליך החשוב ביותר במהלך הערכת אבטחה הוא שלב איסוף המידע, בשלב זה, מגלים מעריכי האבטחה - או ההאקרים - נכסים וממפים את משטח ההתקפה של הקורבן כדי ללמוד כמה שיותר, מכיוון שכל פיסת מידע יכולה לעזור. בדרך כלל, בשלב זה, אוספים את כל המידע שניתן למצוא, כולל שמות משתמש, סיסמאות אפשריות, שמות מארחים, כתובות IP, ספקים חיצוניים ושירותים פנימיים, כולל באנרים של גרסאות, בין הרבה פיסות מידע מעניינות אחרות. יש אלפי כלים לצורכי איסוף מידע, עם זאת, ל-Nmap Scripting Engine (NSE) יש יתרון בכך שהתוצאות הפנימיות מתקבלות מהסריקות, בנוסף למקורות נתונים חיצוניים המשלימים את הכלים הרבים שעוזרים להשלים את השלב הזה. 

=== הערכת מיקום גאוגרפי של כתובת IP ===
זיהוי המיקום של כתובת IP עשוי לעזור למנהלי מערכת או מנתחי מודיעין איומים לזהות את מקורו של חיבור לרשת. Nmap מגיע עם מספר סקריפטים של NSE שעוזרים לנו לבצע מיקום גאוגרפי של כתובת IP מרוחקת, למשל:<syntaxhighlight lang="bash">
nmap -sn --script ip-geolocation-* <target>
</syntaxhighlight>ניתן לשמור את התוצאות בפורמט KML ולהוציא אותן ממפות Google או ב-Google Earth מאוחר יותר על ידי שימוש בארגומנט הסקריפט traceroute-geolocation.kmlfile כדלקמן:<syntaxhighlight lang="bash">
nmap --traceroute --script traceroute-geolocation --script-args traceroute-geolocation.kmlfile=<output file> <target>
</syntaxhighlight>

=== קבלת מידע מרשומות WHOIS ===
רשומות WHOIS מכילות מידע שימושי, כגון שם הרשם/ארגון, תאריכי יצירה ותפוגה, מיקום גאוגרפי ופרטי יצירת קשר לרעה בין כמה שדות שעלולים להיות מעניינים. מנהלי מערכת, צוות IT ואנשי אבטחת מידע אחרים משתמשים ברשומות WHOIS, ולמרות שיש הרבה כלים ואתרים זמינים לשאילתות מידע זה, Nmap יכולה לעבד טווחי IP/רשימות יעדים בפורמטים רבים כדי לבצע משימה זו, למשל עם הסקריפט הבא:<syntaxhighlight lang="bash">
nmap -sn --script whois-* <target>
</syntaxhighlight>

=== שאילתה של Shodan כדי לקבל מידע על יעד ===
Shodan הוא אחד ממנועי החיפוש למכשירים המחוברים לאינטרנט. זהו מקור מידע שימושי, הכולל אפילו מידע על פורטים ובאנרים של יעדים מרוחקים, בין שאר פיסות נתונים מעניינים. אחד היתרונות של סריקת פורטים פסיבית עם Shodan הוא שלא צריך לתקשר ישירות עם היעד כדי לקבל את רשימת הפורטים הפתוחים, הפרוטוקולים והבאנרים של השירות, הסקריפט הוא כדלקמן<ref>הסקריפט shodan-api NSE צריך מפתח API לפני שניתן יהיה להשתמש בו. Shodan מציעה תוכניות API למפתחים בחינם שתוכל להשיג על ידי הרשמה בכתובת <nowiki>https://developer.shodan.io/</nowiki>.</ref>:<syntaxhighlight lang="bash">
nmap -sn -Pn -n --script shodan-api --script-args shodan-api.apikey=<ShodanAPI KEY> <target>
</syntaxhighlight>

=== גילוי שמות מארחים על ידי Brute-Force רשומות DNS ===
רשומות DNS מכילות כמות מפתיעה של מידע, ובאמצעות Brute-Force או ניחוש שלהן, ניתן לחשוף מטרות נוספות. שמות כניסות DNS לרוב מסגירים מידע; לדוגמה, רשומת DNS מסוג mail מציינת שמדובר בשרת דואר וכדומה, להלן הסקריפט:<syntaxhighlight lang="bash">
nmap -sn --script dns-brute --script-args dns-brute.hostlist=wordlist.txt <target>
</syntaxhighlight>

=== מציאת חולשות ידועות בשירותים שונים ===
גילוי גרסאות חיוני לבודקי חדירה ולמנהלי מערכת מכיוון שהם יכולים להשתמש בבאנרים של גרסאות כדי למצוא פרצות אבטחה ציבוריות המשפיעות על שירות. Nmap מאפשר להתאים מסדי נתונים פופולריים של פגיעות עם גרסאות השירותים המתקבלות מהסריקה שלנו באופן אוטומטי, להלן סקריפט לדוגמה<syntaxhighlight lang="bash">
nmap -sV --script vulners <target> 
</syntaxhighlight>

== סריקת מערכות ICS/SCADA ==
מערכות בקרה תעשייתיות (ICS)/בקרת פיקוח ורכישת נתונים (SCADA) הן חלק מהתשתית הקריטית שנמצאת בתחנות כוח, מפעלים כימיים, בתי זיקוק לנפט ומתחמים גדולים אחרים. ככל שטכנולוגיית הניטור הבשילה, יכולות הרשת שמטרתן לשפר את הקישוריות בין רכיבים הציגו סוג חדש של סיכון: התקפות רשת. כדי להחמיר את המצב, נמצאו מערכות שהאמינו שהן נמצאות ברשתות מבודדות מחוברות לאינטרנט ונגישות לחלוטין מרחוק. מספר המערכות הקריטיות שנמצאות באינטרנט גדל בהתמדה, ועד היום נפוץ מאוד למצוא ארגונים בעלי רשתות מחוברות המאפשרות גישה למקטעי רשת שבהם נמצאות מערכות ICS/SCADA. זה הוכח על ידי חוקרי אבטחה שפרוטוקולים ומוצרים רבים של ICS/SCADA הם פגיעים ביותר שכן רבים מהם נבנו ללא אבטחה. יש להשתמש בזהירות ב-Nmap בעת סריקת תשתית קריטית שכן שכבות רשת רבות הן שבריריות מאוד ורגישות להתקפת מניעת שירות, כאשר חלק מהמנות נוצרות על ידי טכניקות הסריקה השונות. לכן, מומלץ להשתמש תמיד ב-TCP connect scan (-sT) כדי לפתוח ולסגור כל חיבור בדיקה כראוי ולהגביל את רשימת בדיקת היציאות וקצב המנות.

=== מציאת פורטים נפוצים בשימוש במערכות ICS/SCADA ===
יש לטפל בתשתית קריטית בזהירות יתרה שכן היו דיווחים על סריקות ואפילו סריקות פינג שניתקו מכשירים מהרשת. הדבר מסוכן במיוחד ברשתות ייצור שכן נזק או הפרעה לשירות עלולים לעלות לארגון מאות אלפי, אפילו מיליוני דולרים. מסיבה זו, לא נהוג להציף באגרסיביות את הרשת ב-TCP/IP של המכשיר; במקום זאת, משתמשים ברשימה שנבחרה בקפידה:<syntaxhighlight lang="bash">
nmap -Pn -sT --scan-delay 1s --max-parallelism 1 - p80,102,443,502,530,593,789,1089-1091,1911,1962,2222,2404,4000,4840,4843,49 11,9600,19999,20000,20547,34962-34964,34980,44818,46823,46824,55000-55003 <target>
</syntaxhighlight>כל יציאה הרשומה תואמת לפרוטוקול ICS/SCADA ידוע, זוהי רק סריקת הסיור הראשונית לזיהוי פרוטוקולי ICS/SCADA אפשריים ברשת. אם Nmap מחזיר שירות פתוח, סביר להניח שאכן מדובר בפרוטוקול ICS/SCADA. 

=== מניית PLCs של סימנס SIMATIC S7 ===
התקני PLC של סימנס S7 ממשפחת S7 300/400 משתמשים בפרוטוקול S7comm עבור תכנות PLC, חילופי נתונים בין PLC ומערכות SCADA, ולמטרות אבחון. התקנים אלה בדרך כלל מאזינים בפורט 102 (iso-tsap) וניתן להשתמש בחלק מפונקציות האבחון כדי לקבל מידע מהמכשירים בעזרת הסקריפט: <syntaxhighlight lang="bash">
nmap -Pn -sT -p102 --script s7-info <target>
</syntaxhighlight>

=== מניית התקני BACnet ===
התקני BACnet נפוצים מאוד לחיבור ובקרה של HVAC, מערכות חשמל ואוורור ורכיבים רבים במערכות אוטומציה של מבנים. אפשר לאסוף מהם מידע, כגון ספק, שם מכשיר, מספר סידורי, תיאור, מיקום ואפילו גרסת הקושחה באמצעות הסקריפט הבא:<syntaxhighlight lang="bash">
 nmap -Pn -sU -p47808 --script bacnet-info <target>
</syntaxhighlight>

== ראו גם ==
* Nikto
* Banner Grabbing
* Nessus
* סורק פגיעות
*חבילת עץ חג מולד

==קישורים חיצוניים==

* 

==הערות שוליים==

קטגוריה:תוכנה חופשית
קטגוריה:אבטחת מידע