PDA

مشاهده نسخه کامل : Nmap چيست؟



Security
21-06-07, 09:06
Nmap مخفف Network Mapper ميباشد و يک نرم افزار کاربردي براي جستجوي شبکه يا مميزي امنيتي شبکه به شمار ميايد. اين نرم افزار طوري طراحي شده که شبکه هاي بزرگ را به سرعت اسکن کند، اگر چه مي تواند بر روي سيستم هاي تنها نيز بخوبي کار کند. Nmap از ip packet هاي خام بصورت منحصر بفرد استفاده مي کند تا تعيين کند چه رايانه هايي (hosts) بر روي شبکه در دسترس مي باشند، چه سرويسهايي (ports) ارائه مي کنند، چه سيستم عاملهايي (بهمراه نسخة سيستم عامل) بر روي آنها در حال اجرا مي باشد، چه نوع packet filter ها / فايروالهايي مورد استفاده قرار گرفته و چندين پارامتر ديگر. Nmap بر روي اکثر رايانه ها، هم گرافيکي و هم کنسول ها قابل استفاده است. Nmap يک نرم افزار مجاني است که به همراه کدهاي آن تحت واژة GNU GPL در دسترس مي باشد.


ويژگيهای Nmap

انعطاف پذيري
از چندين تکنيک پيشرفته براي استخراج نقشة شبکه استفاده مي کند که اين نقشه از IP filter ها، فايروالها، مسيريابها و ديگر موانع تشکيل شده است. اين نقشه همچنين شامل بسياري از پورتهاي اسکن شده ( هم TCP و هم UDP)، تشخيص سيستم عامل، ping sweep ها و عوامل ديگر مي باشد.


قدرتمندي
از Nmap جهت اسکن کردن شبکه هاي بسيار بزرگ به معني واقعي کلمه، يعني صدها هزار از ماشين، استفاده شده است.


قابليت حمل
بر روي اکثر سيستم عاملها استفاده مي شود و از آن پشتيباني مي کنند. اين سيستم عاملها شامل Linux ، Open/Free/Net BSD ، Solaris ، IRIX ، Mac OS ، HP-UX ، Sun OS و غيره مي باشد.


سادگي
در ضمن اينکه Nmap يک مجموعه از خصوصيات پيشرفته را براي کاربران توانمند ارئه مي دهد، شما مي توانيد استفاده از آن را با دستور “nmap –O –sS targethost” آغاز نماييد. هم نسخه هاي command line و هم نسخه هاي گرافيکي (GUI) بر اساس نياز شما در دسترس مي باشد. نسخة باينري نيز براي براي کساني که مايل به کامپايل کردن کدهاي Nmap نيستند موجود مي باشد.


رايگان
هدف اوليه از پروژة Nmap جهت کمک به امن کردن بيشتر اينترنت و تجهيز مديران شبکه / مميزين شبکه (auditors) / هکرها به يک ابزار پيشرفته جهت جستجوي شبکة تحت کنترلشان بوده است. Nmap براي download رايگان به همراه کدهاي کامل آن که شما مي توانيد آنها را تغيير دهيد و تحت GNU General Public License (GPL) در اختيار ديگران قرار دهيد، در دسترس مي باشد.


خوب مستند سازي شده
بيشترين تلاش صورت گرفته تا مستندات و manual page ها به روز و قابل فهم باشد. همچنين اين مستندات و manual page ها به چندين زبان موجود مي باشند.
- تحت پشتيباني: اگرچه اين نرم افزار هيچ ضمانتي ندارد، شما مي توانيد اگر با مشکلي مواجه شديد به آدرس fyodor@insecure.org ايميل بزنيد.


تائيد شده
Nmap جوايز بسياري برده است، مثل “Information Security Product of the Year” از طرف World and Codetalker Digest.


مشهور
همه روزه هزاران نفر از مردم Nmap را download مي کنند و اين نرم افزار با بسياري از سيستم عاملها کار ميکند.


روش عملکرد Nmap

در اين قسمت به توضيح عملکرد نرم افزار Nmap تحت سيستم عامل Linux مي پردازيم و سپس به توضيح سوئيچ هاي Nmap که بصورت command line مي باشند مي پردازيم:
همانطور که گفته شد Nmap يک نرم افزار امنيتي مي باشد که تعداد زيادي از تکنيکهاي اسکن را پشتيباني مي کند:
UDP ، TCP connect() ، TCP SYN (half open) ، FTP proxy (bounce attack) ، Reverse-ident ، ICMP (ping sweep) ، FIN ، ACK sweep ، Xmas Tree ، SIN sweep ، IP Protocol و Null scan .
همچنين Nmap داراي بسياري از قابليتهاي پيشرفته نظير شناسايي OS با استفاده از TCP/IP ، اسکن نامحسوس (stealth scanning) ، محاسبات تاخير ديناميکي و انتقال مجدد (retarnsmission) ، اسکن موازي، شناسايي سيستم هاي خاموش (down hosts) از طريق ping هاي موازي، decoy scanning ، شناسايي پورتهاي فيلتر شده ، direct (non-portmapper) RPC scanning ، fragmentation scanning و همچنين تعيين پورت و هدف منعطف مي باشد.
حداکثر تلاشها صورت گرفته تا کارايي Nmap براي کاربراني که از امتياز root برخودار نيستند، کاهش نيابد. متاسفانه بسياري از واسطهاي kernel هاي حساس (مثل سوکتهاي خام [raw sockets]) نياز به مجوز root دارند. هر زمان که ممکن است Nmap بايد تحت مجوز root راه اندازي شود (البته نه بعنوان setuid root).
نتيجة اجراي Nmap معمولاً يک ليست از پورتهاي جالب (در صورت وجود) از ماشين يا ماشينهايي که اسکن شده اند، مي باشد. هميشه Nmap در مورد پورت شناخته شده (“well known”port) نام سرويس (در صورت وجود)، نام، وضعيت و پروتکل را مي دهد. وضعيت (state) مي تواند ‘open’ ، ‘filtered’ يا ‘unfiltered’ باشد. ‘open’ يعني ماشين مورد نظر ارتباطات روي آن پورت را connect() خواهد کرد. ‘filtered’ يعني يک فايروال / فيلتر يا ديگر موانع موجود بر روي شبکه، پورت را پوشش مي دهد و مانع آن مي شود که Nmap تعيين کند که پورت باز است يا بسته. ‘unfiltered’ يعني آن پورتي که توسط Nmap شناسايي شده، بسته شده و بنظر مي رسد هيچ فايروالي / فيلتري به تلاش Nmap براي تعيين وضعيت آن پورت توجه ندارد. مواجه شدن با پورتهاي ‘unfiltered’ متداول مي باشند و زماني اين وضعيتها نشان داده مي شوند که اکثر پورتهاي اسکن شده در وضعيت ‘filtered’ باشند.
بسته به سوئيچهاي استفاده شده، Nmap مي تواند مشخصات زير را در remote host معين کند: سيستم عامل مورد استفاده، TCP sequencability ، نام کاربراني که برنامه هاي منحصر به هر پورت را اجرا مي کنند، نام DNS ، تعيين اينکه آيا ميزبان يک smurf address مي باشد و چند مشخصة ديگر.

- همچنين Nmap داراي بسياري از قابليتهاي پيشرفته نظير موارد زیر میباشد:
- شناسايي OS با استفاده از TCP/IP
- اسکن نامحسوس (stealth scanning)
- محاسبات تاخير ديناميکي و انتقال مجدد (retarnsmission)
- اسکن موازي
- شناسايي سيستم هاي خاموش (down hosts) از طريق ping هاي موازي
- decoy scanning
- شناسايي پورتهاي فيلتر شده
- direct (non-portmapper) RPC scanning
- fragmentation scanning

حداکثر تلاشها صورت گرفته تا کارايي Nmap براي کاربراني که از امتياز root برخودار نيستند، کاهش نيابد. متاسفانه بسياري از واسطهاي kernel هاي حساس (مثل سوکتهاي خام [raw sockets]) نياز به مجوز root دارند. هر زمان که ممکن است Nmap بايد تحت مجوز root راه اندازي شود (البته نه بعنوان setuid root).
نتيجة اجراي Nmap معمولاً يک ليست از پورتهاي جالب (در صورت وجود) از ماشين يا ماشينهايي که اسکن شده اند، مي باشد. هميشه Nmap در مورد پورت شناخته شده
(“well known”port) نام سرويس (در صورت وجود)، نام، وضعيت و پروتکل را مي دهد. وضعيت (state) مي تواند ‘open’ ، ‘filtered’ يا ‘unfiltered’ باشد. ‘open’ يعني ماشين مورد نظر ارتباطات روي آن پورت را connect() خواهد کرد. ‘filtered’ يعني يک فايروال / فيلتر يا ديگر موانع موجود بر روي شبکه، پورت را پوشش مي دهد و مانع آن مي شود که Nmap تعيين کند که پورت باز است يا بسته. ‘unfiltered’ يعني آن پورتي که توسط Nmap شناسايي شده، بسته شده و بنظر مي رسد هيچ فايروالي / فيلتري به تلاش Nmap براي تعيين وضعيت آن پورت توجه ندارد. مواجه شدن با پورتهاي ‘unfiltered’ متداول مي باشند و زماني اين وضعيتها نشان داده مي شوند که اکثر پورتهاي اسکن شده در وضعيت ‘filtered’ باشند.
بسته به سوئيچهاي استفاده شده، Nmap مي تواند مشخصات زير را در remote host معين کند: سيستم عامل مورد استفاده، TCP sequencability ، نام کاربراني که برنامه هاي منحصر به هر پورت را اجرا مي کنند، نام DNS ، تعيين اينکه آيا ميزبان يک smurf address مي باشد و چند مشخصة ديگر.