بررسی نرم­ افزار پویشگر پورت 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).

دیدگاه

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