بررسی نرم­ افزار پویشگر پورت Nmap

Nmap مخفف Network Mapper می‌باشد و یک نرم­ افزار کاربردی برای جست‌وجوی شبکه یا ممیزی امنیتی شبکه به شمار می‌آید. این نرم­افزار به گونه­ای طراحی شده که بتواند شبکه‌های بزرگ را پویش کند. Nmap از ip packet‌های خام به صورت منحصربه ­فرد استفاده می­کند تا تعیین کند چه سیستم‌هایی (hosts) بر روی شبکه در دسترس می­باشند، چه سرویس‌هایی ports ارائه می­کنند، چه سیستم عامل‌هایی (به همراه نسخه سیستم عامل) بر روی آنها در حال اجرا می‌باشد، چه نوع packet filter‌ها یا فایروال‌هایی مورد استفاده قرار گرفته­اند. Nmap بر روی اکثر رایانه‌ها، هم گرافیکی و هم کنسول‌ها قابل استفاده است. Nmap یک نرم­افزار مجانی است که به همراه کدهای آن تحت مجوز زیبای GNU GPL در دسترس می­باشد.

شاید nmap بهترین و در عین حال پرکاربردترین نرم­افزار پویشگر پورت باشد. در صورتی که یک مدیر شبکه یا یک ممیز امنیت می‌باشید، بدون شک با این نرم­افزار آشنا هستید و از آن استفاده می‌کنید. این نرم­افزار هر چیز که شما از یک پویشگر پورت می‌خواهید را با خود به همراه دارد. در صورت استفاده درست و رعایت نکات ظریف، می‌توان نتایج بسیار بهتری گرفت. در اینجا به معرفی نکات و برخی از اشتباهات در به کار گیری Nmap اشاره می‌کنم که دانستن آن فرآیند پویش را بهبود می‌بخشد.

1 – سیستم عامل مناسب
Nmap قابلیت شناسایی و پویش اکثر سیستم‌ها را داراست. این پویشگر بر روی انواع سیستم عامل‌ها نصب می‌شود، اما در برخی شرایط ایجاد شده از سوی سیستم عامل، فرآیند پویش کند یا با خطای بالا انجام می‌شود. این نکته در برخی موارد منجر به مختل شدن پاره­ای از قابلیت‌های این پویشگر می‌گردد. در این حال استفاده از محیط ویندوز به علت محدودیت‌های موجود در سطح درایورها و ساختار تولید پکت‌ها توصیه نمی‌شود. این مشکل علی­رغم تولید وصله‌های متعدد بر روی ویندوز همچنان وجود دارد و این پویشگر تحت ویندوز هرگز به خوبی و دقت نسخه‌های لینوکسی آن کار نکرده است.

2 – لینک ارتباطی مناسب
Nmapبا ارتباطات مبتنی بر PPPoE و در برخی موارد Dial up مشکل دارد و این مشکل در سیستم عامل ویندوز جدی‌تر می­باشد. در این نوع از ارتباطات، انواع قابلیت­ها مانند انواع Ping Scan و تولید بسته‌های سفارشی شده ICMP,IGMP,TCP,..) تحت ویندوز) مختل می‌شود. راهکاری که می‌توان برای جلوگیری از این مشکل پیشنهاد داد، استفاده از پارامترهای “–sT –P0  “می‌باشد. عدم تولید مناسب بسته‌ها توسط Nmap ادامه فرآیند پویش در کشف سیستم‌های جدید را با مشکل روبرو می‌کند.

3 – فایروال
در خیلی از موارد شما با شبکه‌هایی مواجه می‌شوید که توسط یک فایروال محافظت می‌شود. در این صورت POLICY فایروال‌ها نتایج پویش شما را کاهش و یا در خیلی از موارد پویش را غیر ممکن می‌سازند. در این صورت رعایت نکات زیر در برخی از موارد به شما کمک خواهد کرد. · استفاده از پارامتر “sW-“؛ این اسکن مانند ACK است با این تفاوت که از TCP window size برای تشخیص پورت‌های باز، فیلتر شده یا نشده، استفاده می‌کند. البته لینوکس و اکثر فایروال‌های جدید در مقابل این نوع اسکن‌ مشکلی ندارند ولی در برخی از موارد در مواجه با فایروال­های قدیمی کارگشا می‌باشد.
· استفاده از یک Source-port پورت مورد اعتماد فایروال، استفاده از پارامتر–source-port  با مقدار  53در بسیاری از موارد مؤثر می‌باشد.
· عدم استفاده از پورت اسکن به صورت سریال. ( استفاده نکردن از پارامتر –r )
· استفاده از روش قابل اطمینان­تر TCP Connect با استفاده از پارامتر –sT  به جای روش پیش فرض اسکن -sS یا همان  .(Syn Scan)
· استفاده از سرعت پایین (or 2  -T 1) در انجام اسکن می‌تواند باعث عدم شناسایی توسط فایروال شود.

nmap5-samplescan-706x964[1]4 – انتخاب روش مناسب
Nmapبه تمام روش‌های ممکن می‌تواند سیستم‌های زنده (Alive) را شناسایی کند. شما سه راه برای شناسایی سیستم‌ها دارید ICMP Scan , Protocol Scan  Syn/Ack Scan) ).  انتخاب روش درست در اکثر موارد دقت و سرعت اسکن را تا حد زیادی افزایش می‌دهد. بسته به شبکه­ای که می‌خواهید شناسایی کنید، هر یک از این روش‌ها می‌توانند به شما کمک کنند. در صورتی که شبکه شما به برخی از بسته‌های ICMP پاسخ می‌دهد، استفاده از روش ICMP Discovery در ابتدا به شما توصیه می‌شود. همچنین با پارامتر‌های “–PE –PP –PM ” می‌توان هر سه حالت  Echo , Time Stamp و NetMask Request  برای درخواست‌های ICMP  را بررسی نمود.
روش دوم یا Syn/Ack Scan؛ در صورتی که شبکه هدف توسط یک فایروال Stateful  حفاظت می‌شود، استفاده از پارامتر”-PS”   و اگر نوع فایروال Stateless  می‌باشد، استفاده از پارامتر “-PA” انتخاب مناسبی می‌باشد. این دو پارامتر نیاز به یک شماره پورت برای ارسال بسته Syn/Ack دارند. رایج­ترین پورت‌ها برای این منظور 21,25,53,80,443,3389 هستند. همچنین می‌توان یک یا چند پورت مختلف همراه با چند مدل مختلف اسکن را در یک پویش استفاده کرد.
“nmap –sP –PE –PE –PM –PS 80,22,23,53 –PA 80,22,25,3389 {hosts}”
به صورت پیش فرض و در صورت امکان، استفاده از ARP Scanning  بهترین گزینه است. نکته­ای دیگر در این مبحث، استفاده از پارامتر “-P0″می‌باشد. در صورت اطمینان از زنده بودن سیستم مورد نظر بهتر است اصلاً وارد فاز شناسایی نشوید و  همین جا به این فرآیند پایان داده و نرم­افزار را با فرض زنده بودن سیستم روانه پویش پورت‌ها کنید!

5 – سرعت اسکن
سرعت nmap موردی است که در خیلی از موارد بد تعبیر شده و جدی گرفته نمی‌شود. این موضوع اگر جدی گرفته نشود موجب از دست دادن سیستم‌ها و پورت‌های زیادی می‌گردد. همچنین در صورت وجود مکانیزم‌های امنیتی حساس، بالا بردن سرعت اسکن می‌تواند موجب سلب دسترسی آدرس شما به شبکه هدف گردد.
سرعت در کندترین حالت “-T 1” و در تندترین حالت “-T 5” می‌باشد. مسلماً سرعت بالای اسکن زمان کمتری برای انتظار دریافت پاسخ از سیستم‌های کند یا شبکه‌های پر ترافیک صرف می‌کند و شما برخی از سیستم‌ها و پورت‌های باز را از دست خواهید داد.
اگر قصد پویش شبکه‌های بزرگ در زمان نسبتاً کمی ‌را دارید به جای افزایش سرعت و کم کردن دقت نرم­افزار، بهتر است از اسکن موازی سیستم‌ها استفاده کنید. این کار با افزایش تعداد پویش‌های موازی (–min-parallelism و –max-parallelism ) می‌تواند نتیجه­ای بهتر و شاید سریع­تر از اسکن با سرعت‌های بالا  (-T 5) را برای شما داشته باشد!

6 – پورت‌های مورد نظر
بر خلاف تصور nmap به صورت پیش فرض در حدود 1400 پورت  مهم را بررسی می‌کند! در صورتی که قصد شناسایی سرویس‌های معمول را دارید، لیست اولیه مناسب می‌باشد. در غیر این صورت بررسی تمامی پورت‌های یک سیستم با پارامتر –p برای اسکن 65535 پورت امکان­پذیر می‌باشد که البته زمان­گیر و در خیلی از موارد بی‌ثمر خواهد بود.

7 – استفاده از قابلیت‌های OS Detection و Version Detection
قابلیت‌های جانبی nmap آن را به یکی از قوی­ترین اسکنر‌ها تبدیل کرده است؛ با این حال فعال­سازی بدون نیاز به این قابلیت‌ها، تأثیر چشمگیری در سرعت کار این نرم­افزار و ایجاد شبهاتی در مورد سرعت کند این نرم­افزار دارد. اگر نیازی به شناسایی این بخش­ها ندارید توصیه می­کنم از به کارگیری این قابلیت­ها در جهت افزایش سرعت و ساکت ماندن پویش خودداری کنید.
به منظور شناسایی نوع سیستم عامل از پارامتر”-O”  و به منظور شناسایی نسخه سرویس‌ها در اسکن از پارامتر “-sV” استفاده کنید. در صورتی که قصد دارید از تمام قابلیت‌های nmap استفاده کنید، پارامتر “-A” را به کار ببرید (فعال‌سازی Service Detection , Script-based Detection , OS Detection و Traceroute ).

8 – سطح دسترسی کاربر استفاده کننده
تلاش‌های زیادی انجام شده تا کارایی Nmap برای تمام کاربران سیستم یکسان باشد و بسته به سطح دسترسی کاربر به سیستم، قابلیت‌های آن کاهش نیابد. متأسفانه بسیاری از واسطه­های kernel‌های حساس (مثل سوکت­های خام [raw sockets]) نیاز به مجوز root دارند. لذا توصیه می­کنم هر زمان که ممکن است، Nmap را تحت مجوز root راه­اندازی کنید (البته نه به عنوان setuid root).

دیدگاه

آدرس ایمیل شما منتشر نخواهد شد.