Nmap
![]() | |
![]() | |
מפתח |
גורדון ליון ![]() |
---|---|
מחזור חיים |
1 בספטמבר 1997 – הווה (27 שנים) ![]() |
גרסה אחרונה |
7.95 (23 באפריל 2024) ![]() |
מערכת הפעלה |
גנו/לינוקס, Microsoft Windows, מערכת הפעלה מסדרת BSD, macOS ![]() |
נכתבה בשפות |
C++, לואה, C, פייתון, Java ![]() |
סוג רישיון |
GPL-2.0 ![]() |
קוד מקור |
https://github.com/nmap/nmap.git ![]() |
nmap | |
![]() ![]() |
Nmap (קיצור של Network Mapper תרגום; "ממפה רשת") היא תוכנת סריקת רשת, המשמשת לגילוי מתחמים ושירותים, ברשת מחשבים. דרך פעולת Nmap היא שליחת חבילות בעלות מבנה מסוים אל המתחם הרצוי, וניתוח התגובה המתקבלת ממנו.
תכונות התוכנה יכולות להיות מורחבות על ידי סקריפטים ייעודיים המוסיפים תכונות, כדוגמת בדיקות פגיעות, גילוי מערכת ההפעלה, וגילוי מתחמים מתקדם יותר[1].
Nmap מסוגלת גם להסתגל למצבי רשת שונים, כולל השהיה ועומס במהלך סריקה.
בהתחלה הייתה התוכנה מותאמת לשימוש רק תחת לינוקס[2], אך היא עברה פורטינג לחלונות, סולאריס, BSD, HP-UX, AmigaOS, ו-SGI IRIX[3]. לינוקס היא המערכת שהכי נפוץ בה השימוש בתוכנה, וחלונות מיד אחריה[4].
התוכנה נכתבה במקור על ידי גורדון ליון[5] ונמצאת תחת פיתוח ושיפור על ידי קהילת המשתמשים שלה.
פקודות בסיסיות
[עריכת קוד מקור | עריכה]להלן פקודות בסיסיות לסריקת מטרות:
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
איסוף מידע - Reconnaissance
[עריכת קוד מקור | עריכה]התהליך החשוב ביותר במהלך הערכת אבטחה הוא שלב איסוף המידע, בשלב זה, מגלים מעריכי האבטחה - או ההאקרים - נכסים וממפים את משטח ההתקפה של הקורבן כדי ללמוד כמה שיותר, מכיוון שכל פיסת מידע יכולה לעזור. בדרך כלל, בשלב זה, אוספים את כל המידע שניתן למצוא, כולל שמות משתמש, סיסמאות אפשריות, שמות מארחים, כתובות IP, ספקים חיצוניים ושירותים פנימיים, כולל באנרים של גרסאות, בין הרבה פיסות מידע מעניינות אחרות. יש אלפי כלים לצורכי איסוף מידע, עם זאת, ל-Nmap Scripting Engine (NSE) יש יתרון בכך שהתוצאות הפנימיות מתקבלות מהסריקות, בנוסף למקורות נתונים חיצוניים המשלימים את הכלים הרבים שעוזרים להשלים את השלב הזה.
הערכת מיקום גאוגרפי של כתובת IP
[עריכת קוד מקור | עריכה]זיהוי המיקום של כתובת IP עשוי לעזור למנהלי מערכת או מנתחי מודיעין איומים לזהות את מקורו של חיבור לרשת. Nmap מגיע עם מספר סקריפטים של NSE שעוזרים לנו לבצע מיקום גאוגרפי של כתובת IP מרוחקת, למשל:
nmap -sn --script ip-geolocation-* <target>
ניתן לשמור את התוצאות בפורמט KML ולהוציא אותן ממפות Google או ב-Google Earth מאוחר יותר על ידי שימוש בארגומנט הסקריפט traceroute-geolocation.kmlfile כדלקמן:
nmap --traceroute --script traceroute-geolocation --script-args traceroute-geolocation.kmlfile=<output file> <target>
קבלת מידע מרשומות WHOIS
[עריכת קוד מקור | עריכה]רשומות WHOIS מכילות מידע שימושי, כגון שם הרשם/ארגון, תאריכי יצירה ותפוגה, מיקום גאוגרפי ופרטי יצירת קשר לרעה בין כמה שדות שעלולים להיות מעניינים. מנהלי מערכת, צוות IT ואנשי אבטחת מידע אחרים משתמשים ברשומות WHOIS, ולמרות שיש הרבה כלים ואתרים זמינים לשאילתות מידע זה, Nmap יכולה לעבד טווחי IP/רשימות יעדים בפורמטים רבים כדי לבצע משימה זו, למשל עם הסקריפט הבא:
nmap -sn --script whois-* <target>
שאילתה של Shodan כדי לקבל מידע על יעד
[עריכת קוד מקור | עריכה]Shodan הוא אחד ממנועי החיפוש למכשירים המחוברים לאינטרנט. זהו מקור מידע שימושי, הכולל אפילו מידע על פורטים ובאנרים של יעדים מרוחקים, בין שאר פיסות נתונים מעניינים. אחד היתרונות של סריקת פורטים פסיבית עם Shodan הוא שלא צריך לתקשר ישירות עם היעד כדי לקבל את רשימת הפורטים הפתוחים, הפרוטוקולים והבאנרים של השירות, הסקריפט הוא כדלקמן[6]:
nmap -sn -Pn -n --script shodan-api --script-args shodan-api.apikey=<ShodanAPI KEY> <target>
גילוי שמות מארחים על ידי Brute-Force רשומות DNS
[עריכת קוד מקור | עריכה]רשומות DNS מכילות כמות מפתיעה של מידע, ובאמצעות Brute-Force או ניחוש שלהן, ניתן לחשוף מטרות נוספות. שמות כניסות DNS לרוב מסגירים מידע; לדוגמה, רשומת DNS מסוג mail מציינת שמדובר בשרת דואר וכדומה, להלן הסקריפט:
nmap -sn --script dns-brute --script-args dns-brute.hostlist=wordlist.txt <target>
מציאת חולשות ידועות בשירותים שונים
[עריכת קוד מקור | עריכה]גילוי גרסאות חיוני לבודקי חדירה ולמנהלי מערכת מכיוון שהם יכולים להשתמש בבאנרים של גרסאות כדי למצוא פרצות אבטחה ציבוריות המשפיעות על שירות. Nmap מאפשר להתאים מסדי נתונים פופולריים של פגיעות עם גרסאות השירותים המתקבלות מהסריקה שלנו באופן אוטומטי, להלן סקריפט לדוגמה
nmap -sV --script vulners <target>
סריקת מערכות ICS/SCADA
[עריכת קוד מקור | עריכה]מערכות בקרה תעשייתיות (ICS)/בקרת פיקוח ורכישת נתונים (SCADA) הן חלק מהתשתית הקריטית שנמצאת בתחנות כוח, מפעלים כימיים, בתי זיקוק לנפט ומתחמים גדולים אחרים. ככל שטכנולוגיית הניטור הבשילה, יכולות הרשת שמטרתן לשפר את הקישוריות בין רכיבים הציגו סוג חדש של סיכון: התקפות רשת. כדי להחמיר את המצב, נמצאו מערכות שהאמינו שהן נמצאות ברשתות מבודדות מחוברות לאינטרנט ונגישות לחלוטין מרחוק. מספר המערכות הקריטיות שנמצאות באינטרנט גדל בהתמדה, ועד היום נפוץ מאוד למצוא ארגונים בעלי רשתות מחוברות המאפשרות גישה למקטעי רשת שבהם נמצאות מערכות ICS/SCADA. זה הוכח על ידי חוקרי אבטחה שפרוטוקולים ומוצרים רבים של ICS/SCADA הם פגיעים ביותר שכן רבים מהם נבנו ללא אבטחה. יש להשתמש בזהירות ב-Nmap בעת סריקת תשתית קריטית שכן שכבות רשת רבות הן שבריריות מאוד ורגישות להתקפת מניעת שירות, כאשר חלק מהמנות נוצרות על ידי טכניקות הסריקה השונות. לכן, מומלץ להשתמש תמיד ב-TCP connect scan (-sT) כדי לפתוח ולסגור כל חיבור בדיקה כראוי ולהגביל את רשימת בדיקת היציאות וקצב המנות.
מציאת פורטים נפוצים בשימוש במערכות ICS/SCADA
[עריכת קוד מקור | עריכה]יש לטפל בתשתית קריטית בזהירות יתרה שכן היו דיווחים על סריקות ואפילו סריקות פינג שניתקו מכשירים מהרשת. הדבר מסוכן במיוחד ברשתות ייצור שכן נזק או הפרעה לשירות עלולים לעלות לארגון מאות אלפי, אפילו מיליוני דולרים. מסיבה זו, לא נהוג להציף באגרסיביות את הרשת ב-TCP/IP של המכשיר; במקום זאת, משתמשים ברשימה שנבחרה בקפידה:
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>
כל יציאה הרשומה תואמת לפרוטוקול ICS/SCADA ידוע, זוהי רק סריקת הסיור הראשונית לזיהוי פרוטוקולי ICS/SCADA אפשריים ברשת. אם Nmap מחזיר שירות פתוח, סביר להניח שאכן מדובר בפרוטוקול ICS/SCADA.
מניית PLCs של סימנס SIMATIC S7
[עריכת קוד מקור | עריכה]התקני PLC של סימנס S7 ממשפחת S7 300/400 משתמשים בפרוטוקול S7comm עבור תכנות PLC, חילופי נתונים בין PLC ומערכות SCADA, ולמטרות אבחון. התקנים אלה בדרך כלל מאזינים בפורט 102 (iso-tsap) וניתן להשתמש בחלק מפונקציות האבחון כדי לקבל מידע מהמכשירים בעזרת הסקריפט:
nmap -Pn -sT -p102 --script s7-info <target>
מניית התקני BACnet
[עריכת קוד מקור | עריכה]התקני BACnet נפוצים מאוד לחיבור ובקרה של HVAC, מערכות חשמל ואוורור ורכיבים רבים במערכות אוטומציה של מבנים. אפשר לאסוף מהם מידע, כגון ספק, שם מכשיר, מספר סידורי, תיאור, מיקום ואפילו גרסת הקושחה באמצעות הסקריפט הבא:
nmap -Pn -sU -p47808 --script bacnet-info <target>
ראו גם
[עריכת קוד מקור | עריכה]קישורים חיצוניים
[עריכת קוד מקור | עריכה]אתר האינטרנט הרשמי של Nmap (באנגלית)
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ Nmap Scripting Engine
- ^ The History and Future of Nmap
- ^ פלטפורמות אחרות
- ^ התקנת Nmap בחלונות
- ^ הידוע גם בשם הפסידונים, פיודור ווסקוביץ' (Fyodor Vaskovich) "Matrix mixes life and hacking" באתר BBC.
- ^ הסקריפט shodan-api NSE צריך מפתח API לפני שניתן יהיה להשתמש בו. Shodan מציעה תוכניות API למפתחים בחינם שתוכל להשיג על ידי הרשמה בכתובת https://developer.shodan.io/.