ارسالی مروه
از Nmap جهت اسکن کردن شبکه های بسیار بزرگ به معنی واقعی کلمه، یعنی صدها هزار از ماشین، استفاده شده است.
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 می باشد و چند مشخصهٔ دیگر.