maniei.ir

maniei.ir

یاد من باشد فردا حتما باور این را بکنم، که دگر فرصت نیست و بدانم که اگر دیر کنم ،مهلتی نیست مرا و بدانم که شبی خواهم رفت و شبی هست، که نیست، پس از آن فردایی
maniei.ir

maniei.ir

یاد من باشد فردا حتما باور این را بکنم، که دگر فرصت نیست و بدانم که اگر دیر کنم ،مهلتی نیست مرا و بدانم که شبی خواهم رفت و شبی هست، که نیست، پس از آن فردایی

Nmap


Nmap (سرنام Network Mapper) یک ابزار بازمتن برای نظارت‌بر فعالیت‌های شبکه و مقاصد امنیتی است. Nmap طراحی شده است تا با نصب روی یک سیستم، به‌سرعت یک شبکه بزرگ را مورد بررسی قرار دهد. ماهیت باز متن مجوز (GPL) و همچنین نگارش Nmap با ++C، C، پایتون و لوا اجازه اجرای راحت و روان برنامه را روی سیستم‌عامل‌های مختلف از ویندوز گرفته تا لینوکس و BSD و مک می‌دهد. اگرچه Nmap برنامه کم حجمی است اما قابلیت‌ها و ویژگی‌های بسیار زیادی دارد که در این گفتار به‌صورت مختصر به برخی از آن‌ها اشاره شده و مثال‌هایی نیز ارائه می‌شود. نخستین نسخه این برنامه در سپتامبر ۱۹۹۷ توسط گوردون لیون به‌عنوان یک پایشگر پورت محض برای لینوکس و بدون شماره نسخه منتشر شد. با گسترش محبوبیت و افزایش کاربران، Nmap تبدیل به یک محصول شد و یک رابط گرافیکی به نام zeNmap نیز برای آن ساخته شد. ZeNmap از umit که در سال‌های ۲۰۰۵ و ۲۰۰۶ در Summer of Code به پشتیبانی گوگل ساخته شد، منشعب شد. جدیدترین نسخه Nmap در ۲۹ نوامبر ۲۰۱۲ منتشر شده که نسخه پایدار 25.6است. Nmap می‌تواند اجزای شبکه را لیست کند، فهرستی از سرویس‌های در حال اجرای شبکه را به ما بدهد، فایروال مورد استفاده در شبکه را شناسایی کند، زمان uptime سیستم را محاسبه کرده و سیستم‌عامل را به‌درستی آشکار کند.

Nmap و اثرانگشت سیستم‌عامل


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

Nmap و پورت‌های باز


Nmap با استفاده از قابلیت پویش پورت می‌تواند کشف کند چه پورت‌هایی (در هر دو پروتکل TCP و UDP) در سیستم‌های هدف باز هستند. بسته به سوئیچ‌هایی (آپشن‌ها) که با Nmap استفاده می‌کنید، می‌توان یک جست‌وجو به روش brute force را برای پیدا کردن نقطه ضعف شبکه انجام داد. پس از پویش می‌توان پورت‌هایی که مورد نیاز نیستند را بست و از این طریق سازماندهی کرد که قربانی بعدی یک هکر باشید یا خیر!
به کمک موتور اسکریپت کاملاً انعطاف‌پذیر (Nmap (NSE می‌توان اسکریپت‌های خود را برای سفارشی‌سازی پویش نوشت و از این طریق نقاط آسیب‌پذیر سیستم هدف را شناسایی کرد که واقعاً کمک مفیدی است. به کمک Nmap می‌توان هر دستگاه متصل به شبکه را پیدا کرد و شناسایی کرد؛ تنها چیزی که لازم است این است که آن دستگاه فقط یک آی‌پی متعلق به آن شبکه داشته باشد. Nmap به‌عنوان یک ابزار امنیتی تا‌کنون چندین جایزه از طرف نشریه‌ها و ‌سایت‌های مختلف را برنده شده است.

به‌طور خلاصه می‌توان تعدادی از ویژگی‌های Nmap را به این صورت لیست کرد:


 انعطاف‌پذیری:
برنامه پویش‌گر شبکه Nmap از یک دوجین روش برای بررسی سیستم‌های شبکه، فایروال‌ها، روترها و دیگر اجزای شبکه استفاده می‌کند. این روش‌ها شامل مکانیزم‌های زیادی برای اسکن پورت‌های TCP و UDP، شناسایی سیستم‌عامل، تشخیص نسخه مورد استفاده و رفت و برگشت پینگ است و برای بررسی تمامی این موارد باید مستندات را در سایت این پروژه مطالعه کرد.


 قدرت:
Nmap می‌تواند با استفاده از صدها هزار تکنیک اسکن و بررسی شبکه در شبکه‌های بزرگ برای آشکار‌کردن حفره‌های امنیتی و راه‌های ورود مورد استفاده قرار گیرد.


 پرتابل:
سیستم‌عامل‌های زیادی نظر لینوکس، ویندوز، فری بی.اس.دی، اپن بی‌اس‌دی، سولاریس، IRIX، مک، HP-UX، Net BSD، Sun OS، آمیگا و بسیاری سیستم‌عامل‌های دیگر از این برنامه پشتیبانی می‌کنند.


 سهولت استفاده:
اگرچه Nmap مجموعه‌ای از ویژگی‌های پیشرفته برای کاربران و مدیران سیستم با تجربه و حرفه‌ای دارد اما دیگر علاقه‌مندان نیز می‌توانند با استفاده از رابط‌های گرافیکی که برای این برنامه نوشته شده است با محیط و دستورهای آن آشنا شوند تا در‌صورت نیاز به گزینه‌ها و سوئیچ‌های بیشتر از نسخه اصلی Nmap که خط فرمانی است استفاده کنند. Nmap با توجه به کاربران زیاد خود نسخه‌های باینری برای هر سیستم‌عاملی دارد اما خوره‌های Nmap می‌توانند سورس کد این برنامه را دانلود کرده و خود اقدام به کامپایل آن کنند تا باز هم امکان سفارشی‌سازی بیشتری برای آن‌ها وجود داشته باشد و دستشان بیشتر باز باشد.


 رایگان:
به‌عنوان اهداف اولیه پروژه Nmap که کمک کوچکی به امن‌تر شدن اینترنت از طریق ایجاد یک ابزار حرفه‌ای برای مدیران سیستم و هکرها است، این برنامه به‌صورت آزاد و رایگان منتشر می‌شود.


 مستندات کامل:
Nmap با توجه به اهمیت و هدف خود در امن‌تر شدن شبکه دارای مستندات به‌روز و حتی کتاب‌های کاملی به زبان‌های مختلف است که با مطالعه آن‌ها می‌توان به دانش خود در زمینه امن‌تر کردن شبکه افزود.


 پشتیبانی:
Nmap در حالی بدون پشتیبانی مالی خاص و بدون گارانتی منتشر می‌شود که می‌توان لیست‌های پستی این برنامه، کانال Nmap در freenode و بسیاری از انجمن‌های اینترنتی دیگر استفاده کرد.


 محبوبیت:
روزانه هزاران نفر Nmap را برای سیستم‌عامل‌های مختلف دانلود می‌کنند. Nmap بین ۱۰ نرم‌افزار برتر بین ۳۰ هزار برنامه در freshmeat.net است. این میزان محبوبیت با توجه به Nmap که توسط توسعه‌دهندگان داوطلب توسعه داده شده و پشتیبانی می‌شود قابل توجه است.

چند مثال
سوئیچ‌ها و گزینه‌های Nmap بسیار زیاد و گسترده هستند و به هیچ وجه نمی‌توان در یک یا دو مقاله این سوئیچ‌ها را بررسی کرد اما برای آشنایی با پویش‌های عمومی شبکه چند سوئیچ متداول که با Nmap استفاده می‌شوند بیان می‌شوند.

نکته!
برخی سوئیچ‌های این برنامه نیازمند سطح دسترسی root هستند و برخی دیگر را می‌توان با سطح دسترسی کاربر عادی سیستم اجرا کرد.



1- ساده‌ترین دستور
پس از تایپ Nmap در ترمینال می‌توان از آدرس آی‌پی یا نام کامل دامنه سیستم استفاده کرد:

#Nmap     127.0.0.1
#Nmap     localhost
#Namp     google.com

اجرای این دستور با پویش ۱۰۰۰پورت متداول برای هر کدام از پروتکل‌های TCP و UDP باعث نمایش پورت‌های باز، نوع پروتکل انتقال و سرویس‌هایی که به این پورت‌ها گوش می‌دهند می‌شود.

 

۲-خروجی مشروح و نمایش سیستم‌عامل و نسخه مورد استفاده:


#Nmap       -A       -v     4.2.2.4
#Nmap       -A       -v     redhat.com

اگرچه بیشتر اوقات با اسکن‌کردن پورت‌های باز و از طریق شناسایی سرویس‌های اختصاصی سیستم‌عامل‌های مختلف هم می‌توان به‌صورت تقریبی سیستم‌عامل سیستم هدف را معین کرد اما با سوئیچ A- به‌صورت کامل و دقیق‌تر و از طریق اثرانگشت سیستم‌عامل، Nmap سیستم‌عامل هدف را مشخص می‌کند. همچنین به کمک سوئیچ v- می‌توان اطلاعات مشروح‌تری نظیر نسخه برنامه‌های مورد استفاده که به پورت‌های باز گوش می‌دهند را نیز مشخص کرد.
سوئیچ‌های فوق به اندازه‌ای خروجی مشروح دارند که پیدا‌کردن نام و نسخه سیستم‌عامل در این آن همه خروجی خود یک کار زمان‌بر دیگر است! اما اگر می‌خواهید Nmap نام سیستم‌عامل هدف را به شما بگوید به‌طور خلاصه می‌توانید از Nmap به همراه این سوئیچ استفاده کنید:


#Nmap   -O    --osscan-guess   192.168.0.105

 

نمونه خروجی با اجرای دستور فوق به این صورت است:

3- پویش یک محدوده آی‌پی آدرس و پورت‌های معین

جهت پویش چندین آی‌پی آدرس می‌توان آن‌ها را با یک فاصله از همدیگر جدا کرد:


#Nmap  192.168.0.3 192.168.0.5 yahoo.com server1.localdomain

اسکن سیستم‌های موجود در شبکه با Host IDهای مختلف:


#Nmap 192.168.0.5,10,100.254

برای پویش یک محدوده آی‌پی آدرس در شبکه می‌توان از دستور زیر به صورت نمونه استفاده کرد:


#Nmap      192.168.0.10-50

برای اسکن کردن کل سیستم‌های موجود در زیر شبکه باید از آرگومانی مانند آن‌چه در دستور زیر استفاده شده است کمک گرفت:


#Nmap       192.168.0.0/24

همچنین برای اسکن کل سیستم‌های موجود در شبکه می‌توان از شیوه wildcard نیز استفاده کرد:


#Nmap       192.168.0.*

اگرچه سرعت اسکن‌کردن Nmap برای تمامی ۱۰۰۰ پورت متداول بسیار بالا است اما ممکن است در اثر وجود فایروال در شبکه سرعت اسکن این تعداد پورت پایین بیاید یا ممکن است مدیر سیستم نیازی به پویش تمامی پورت‌ها نداشته و مایل باشد تا وضعیت پورت‌های خاصی را بداند. برای این منظور می‌توان از سوئیچ p- استفاده کرد و پورت‌های مورد نظر برای اسکن را با کاما از یکدیگر جدا کرد:


#Nmap       -p     25,80,110, 443,8080       192.168.0.1

برای جست‌وجوی یک محدوده پورت نیز همچنان می‌توان از – استفاده کرد:


#Nmap      -p        21-25,80,110, 443,8080    192.168.0.1
 

می‌توان پویش پورت‌ها را باز هم تخصصی کرد و برای هر کدام از پروتکل‌های TCP و UDP پورت‌های معینی را اسکن کرد:


#Nmap     -p        U:53,111,137, T:21-25,80,990    192.168.0.1

با استفاده از سوئیچ‌های sU- پورت‌های باز برای پروتکل UDP و یکی از سوئیچ‌های sS- یا sF- یا sT- برای پورت‌های باز TCP استفاده کرد و در پایان اگر می‌خواهید تمامی پورت‌های موجود روی یک سیستم را اسکن کنید می‌توان از سوئیچ p- به کمک * کمک گرفت:


#Nmap     -p     “*”  192.168.0.1

 

۴- اسکن پورت‌های متداول
ممکن است نیاز نباشد تا تمامی پورت‌ها یا حتی ۱۰۰۰ پورت متداول سیستم‌های موجود در شبکه را پویش کرد. این کار باعث اتلاف زمان زیادی می‌شود و به احتمال مدیر شبکه یا مدیر سیستم‌ها می‌خواهد تعداد پورت‌های متداول و پر استفاده کمتری در هر سیستم را پویش کند. برای این منظور می‌توان از سوئیچ‌ top-ports-- که یک عدد را به عنوان آرگومان می‌پذیرد استفاده کرد:


#Nmap      --top-ports      5     10.0.0.10

دستور فوق ۵ پورت پر‌استفاده‌تر را در سیستم هدف اسکن می‌کند.


5- خواندن لیستی از آی‌پی آدرس‌ها و میزبان‌های شبکه از یک فایل:


#Nmap    -iL    ~ali/list.txt

می‌توان در یک فایل متنی آی‌پی‌ها یا نام‌های سیستم هدف را به‌صورت هر نام در یک سطر وارد کرد تا نیازی به وارد کردن هر دفعه این آی‌پی‌ها یا نام‌ها نباشد.
برخی اوقات نیاز است تا سیستم‌های شبکه را به‌صورت اتفاقی از نظر بسته بودن پورت‌هایی که مورد استفاده نیستند مورد پویش و بررسی قرار داد. سوئیچ‌ iR- سیستم‌های موجود در شبکه را به‌صورت اتفاقی اسکن می‌کند. Exclude-- هم سیستم‌های مشخصی را از اسکن‌کردن معاف می‌کند:


#Nmap     -iR    10

دستور بالا ۱۰ هاست از شبکه را به‌صورت اتفاقی پویش می‌کند. می‌توان هاست‌هایی را که نیاز به پویش ندارند از لیست پویش استثنا کرد:


#Nmap     -iR    10    --exclude    192.168.0.4, 192.168.0.50, 192.168.0.65

یا حتی لیستی از سیستم‌های استثنا را در فایل استثنا وارد کرد:


#Nmap   -iR    5    --excludefile    /home/ali/exclude.txt


۶- پویش فایروال
تقریباً تمامی شبکه‌های به وسیله فایروال محافظت می‌شوند بنابراین به‌راحتی نمی‌توان سیستم‌های موجود در آن شبکه را اسکن کرد. پس بهتر است ابتدا فایروال شبکه را اسکن کرد:


#Nmap    -sA    192.168.0.10

این اسکن متفاوت از سایر اسکن های شبکه توسط Nmap است. این سوئیچ‌ پورت‌های باز یا بسته یک هاست را اسکن نمی‌کند به کمک سوئیچ‌ sA- در Nmap می‌توان قواعد تعریف شده برای یک فایروال، وضعیت آن و پورت‌هایی را که فیلتر می‌کند مشخص کرد.

۷- پویش سیستم‌های با آی‌پی نسخه ۶
اگرچه هنوز آی‌پی‌های نسخه۴ به‌طور گسترده مورد استفاده قرار می‌گیرند و از آی‌پی‌های نسخه ۶ استفاده نمی‌شود اما برای موارد تحقیقاتی و آزمایشی می‌توان سیستم‌های با آی‌پی نسخه ۶ را نیز اسکن کرد:


#Nmap    -6   server1.lab.localdomain
#Nmap    -6    2607:f0d0:1002:51::4
#Nmap    -6    -v  -A   2607:f0d0:1002:51::4


۸- پویش سریع
اگرچه nmap به اندازه کافی سریع و خوب است اما با سوئیچ‌ F- می‌توان سرعت اسکن را باز هم افزایش داد:


#Nmap    -F   localhost


۹- مشاهده تمامی بسته‌های ارسال و دریافت شده
برای یک اسکن بسته‌های بسیار زیادی ارسال و دریافت می‌شوند اما فقط نتیجه آن توسط Nmap نمایش داده می‌شود. اگر مایل هستید تا بسته‌های ارسال شده و دریافت‌شده را نیز مشاهده کنید می‌توان از گزینه packet-trace-- استفاده کرد:



#Nmap   --packet-trace  localhost.localdomain


10- ذخیره خروجی
Nmap همان‌گونه که می‌تواند لیستی از سیستم‌های هدف را از ورودی بخواند به همان راحتی می‌تواند خروجی را در یک فایل متنی ذخیره کند:


#Nmap     linux-server     >    /root/server-open-ports.txt
#Nmap   -oN     /root/server-open-ports   192.168.0.1


۱۱- مشتاق استفاده از خط فرمان نیستید؟
اگر اشتیاق زیادی به استفاده از خط فرمان برای کار با Nmap ندارید می‌توانید از رابط‌گرافیکی آن یعنی zeNmap استفاده کنید.اگر‌چه zeNmap برای توزیع‌های لینوکسی فراوان و همچنین مایکروسافت ویندوز و خانواده BSD وجود دارد اما اگر از فدورا استفاده می‌کنید می‌توانید umit را نیز امتحان کنید.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد