آموزش Nmap از صفر تا حرفه‌ای؛ شناسایی پورت‌ها و سرویس‌ها در آزمایشگاه Kali و Metasploitable 2

Nmap training from zero to professional
0 دیدگاه
۱۴۰۵-۰۶-۰۷ ۱۸:۲۱:۳۴

اگر در مسیر یادگیری تست نفوذ و امنیت سایبری هستید، یکی از اولین ابزارهایی که باید به‌خوبی یاد بگیرید Nmap است.

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

در این آموزش، همه تمرین‌ها را روی آزمایشگاه قبلی Kali Linux + Metasploitable 2 انجام می‌دهیم تا بدون آسیب به سیستم‌های واقعی، با فرایند شناسایی در تست نفوذ آشنا شوید.

⚠️ هشدار: دستورات این آموزش را فقط روی سیستم شخصی، آزمایشگاه خودتان یا اهدافی که مجوز تست آن‌ها را دارید اجرا کنید. اسکن بدون مجوز می‌تواند نقض قوانین یا سیاست‌های شبکه باشد.


Nmap چیست؟

Nmap یا Network Mapper ابزاری متن‌باز برای کشف و بررسی شبکه است.

از Nmap می‌توان برای مواردی مانند:

  • شناسایی میزبان‌های فعال
  • پیدا کردن پورت‌های باز
  • تشخیص سرویس‌ها
  • تشخیص نسخه نرم‌افزارها
  • اجرای اسکریپت‌های NSE
  • بررسی وضعیت شبکه

استفاده کرد.

در یک تست نفوذ، Nmap معمولاً یکی از ابزارهای مرحله Reconnaissance و Enumeration است.


Nmap در فرایند تست نفوذ

یک سناریوی ساده را تصور کنید:

هدف
 ↓
کشف میزبان
 ↓
اسکن پورت‌ها
 ↓
تشخیص سرویس
 ↓
تشخیص نسخه
 ↓
بررسی آسیب‌پذیری
 ↓
اعتبارسنجی در محیط مجاز

بنابراین Nmap معمولاً قبل از ابزارهایی مانند Metasploit وارد فرایند می‌شود.


آزمایشگاه موردنیاز

برای این آموزش بهتر است همان آزمایشگاهی را که در آموزش قبلی ساختیم داشته باشید:

┌─────────────────────┐
│      Kali Linux     │
│   Testing Machine   │
│   192.168.56.10     │
└──────────┬──────────┘
           │
      Host-Only LAN
           │
┌──────────▼──────────┐
│   Metasploitable 2  │
│    Lab Target       │
│   192.168.56.20     │
└─────────────────────┘

IPهای بالا فقط نمونه هستند. IP واقعی ماشین‌های خودتان را استفاده کنید.


مرحله اول: بررسی IP ماشین Kali

ترمینال Kali را باز کنید:

ip addr

یا:

ip a

به Interface شبکه نگاه کنید و آدرس IP ماشین Kali را پیدا کنید.


مرحله دوم: پیدا کردن IP هدف

در Metasploitable 2:

ifconfig

یا:

ip addr

فرض می‌کنیم IP هدف این باشد:

192.168.56.20

مرحله سوم: بررسی ارتباط

از Kali:

ping 192.168.56.20

اگر پاسخ دریافت کردید، ارتباط بین دو ماشین برقرار است.

برای توقف:

Ctrl + C

مرحله چهارم: اولین اسکن Nmap

حالا ساده‌ترین اسکن را اجرا کنید:

nmap 192.168.56.20

Nmap پورت‌های رایج را بررسی می‌کند و نتیجه‌ای مشابه زیر ممکن است مشاهده کنید:

PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
3306/tcp open  mysql

پورت Open یعنی چه؟

در خروجی Nmap، وضعیت پورت اهمیت زیادی دارد.

Open

یعنی یک سرویس در حال Listen کردن روی آن پورت است.

Closed

یعنی سیستم قابل دسترسی است اما سرویس فعالی روی آن پورت وجود ندارد.

Filtered

یعنی Nmap نمی‌تواند با اطمینان مشخص کند پورت باز است یا بسته؛ معمولاً Firewall یا فیلتر شبکه در مسیر وجود دارد.


مرحله پنجم: تشخیص نسخه سرویس‌ها

اسکن ساده فقط اطلاعات محدودی ارائه می‌دهد.

برای تشخیص نسخه سرویس‌ها از:

nmap -sV 192.168.56.20

استفاده کنید.

مثلاً ممکن است نتیجه شامل اطلاعاتی مانند:

21/tcp open  ftp     vsftpd 2.3.4
22/tcp open  ssh     OpenSSH ...
80/tcp open  http    Apache ...

اکنون دیگر فقط نمی‌دانیم پورت 21 باز است؛ بلکه می‌دانیم چه سرویس و نسخه‌ای روی آن اجرا می‌شود.


چرا Version Detection مهم است؟

فرض کنید فقط این را بدانیم:

21/tcp open ftp

اطلاعات زیادی نداریم.

اما اگر بدانیم:

21/tcp open ftp vsftpd 2.3.4

می‌توانیم درباره همان نرم‌افزار و نسخه مشخص، تحقیقات امنیتی انجام دهیم.

این دقیقاً همان چیزی است که در مرحله Enumeration اهمیت دارد.


مرحله ششم: استفاده از Default Scripts

Nmap دارای مجموعه‌ای از اسکریپت‌ها با نام NSE — Nmap Scripting Engine است.

برای اجرای اسکریپت‌های پیش‌فرض:

nmap -sC 192.168.56.20

ترکیب -sC با تشخیص نسخه نیز بسیار کاربردی است:

nmap -sC -sV 192.168.56.20

این یکی از اسکن‌های مناسب برای شروع بررسی یک هدف آزمایشگاهی است.


مرحله هفتم: اسکن یک پورت خاص

لازم نیست همیشه تمام پورت‌ها را اسکن کنید.

مثلاً برای بررسی HTTP:

nmap -p 80 192.168.56.20

برای چند پورت:

nmap -p 21,22,80,443 192.168.56.20

مرحله هشتم: اسکن یک محدوده پورت

برای مثال:

nmap -p 1-1000 192.168.56.20

این دستور پورت‌های 1 تا 1000 را بررسی می‌کند.

برای تمام پورت‌های TCP:

nmap -p- 192.168.56.20

اسکن تمام پورت‌ها می‌تواند زمان بیشتری نسبت به اسکن پیش‌فرض نیاز داشته باشد.


مرحله نهم: تشخیص سیستم‌عامل

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

sudo nmap -O 192.168.56.20

در این روش Nmap از ویژگی‌های پاسخ شبکه برای OS Detection استفاده می‌کند.

نتیجه همیشه قطعی نیست و باید به‌عنوان تشخیص احتمالی در نظر گرفته شود.


مرحله دهم: اسکن جامع‌تر

برای آزمایشگاه خودمان می‌توانیم از:

sudo nmap -A 192.168.56.20

استفاده کنیم.

گزینه -A مجموعه‌ای از قابلیت‌های تشخیصی مانند:

  • OS Detection
  • Version Detection
  • Script Scanning
  • Traceroute

را فعال می‌کند.

به دلیل گسترده‌تر بودن بررسی‌ها، این اسکن نسبت به یک اسکن ساده اطلاعات بیشتری تولید می‌کند.


مرحله یازدهم: پیدا کردن میزبان‌های فعال

فرض کنید شبکه آزمایشگاهی شما:

192.168.56.0/24

است.

برای بررسی اینکه چه میزبان‌هایی در این شبکه پاسخ می‌دهند:

nmap -sn 192.168.56.0/24

این روش بیشتر برای Host Discovery استفاده می‌شود و هدف اصلی آن شناسایی میزبان‌های موجود است.


مرحله دوازدهم: بررسی سرویس HTTP

اگر پورت 80 باز باشد:

nmap -sV -p 80 192.168.56.20

ممکن است اطلاعاتی درباره Web Server دریافت کنید.

بعد می‌توانید در مرورگر Kali آزمایش کنید:

http://192.168.56.20

در Metasploitable 2 معمولاً چند سرویس و برنامه آموزشی آسیب‌پذیر برای تمرین وجود دارد.


مرحله سیزدهم: NSE چیست؟

یکی از ویژگی‌های قدرتمند Nmap، Nmap Scripting Engine است.

برای مشاهده دسته‌بندی اسکریپت‌ها:

ls /usr/share/nmap/scripts/

برای مثال دسته‌هایی مانند:

auth
broadcast
brute
default
discovery
dos
exploit
external
fuzzer
intrusive
malware
safe
version
vuln

وجود دارند.

اما نکته مهم:

همه اسکریپت‌ها رفتار یکسانی ندارند و برخی می‌توانند تهاجمی یا مخرب باشند. در آزمایشگاه خودتان قبل از اجرای آن‌ها توضیحات اسکریپت را بررسی کنید.


مرحله چهاردهم: مشاهده اطلاعات یک Script

برای بررسی یک اسکریپت:

nmap --script-help <script-name>

مثلاً:

nmap --script-help http-title

قبل از اجرای اسکریپت، توضیحات آن را مطالعه کنید.


مرحله پانزدهم: اسکریپت‌های آسیب‌پذیری

Nmap مجموعه‌ای از اسکریپت‌های مربوط به شناسایی آسیب‌پذیری‌ها نیز دارد.

در آزمایشگاه می‌توانید اسکریپت‌های مربوط به دسته vuln را بررسی کنید.

مثلاً:

nmap --script vuln 192.168.56.20

این نوع اسکن ممکن است حجم زیادی از اطلاعات تولید کند.

بنابراین برای یادگیری بهتر، خروجی را سرویس‌به‌سرویس تحلیل کنید و هر یافته را با مستندات مربوط به همان نرم‌افزار تطبیق دهید.


مرحله شانزدهم: ذخیره نتایج

در تست نفوذ حرفه‌ای، نگهداری نتایج اهمیت زیادی دارد.

برای ذخیره خروجی معمولی:

nmap -sV 192.168.56.20 -oN scan.txt

برای فرمت XML:

nmap -sV 192.168.56.20 -oX scan.xml

و برای ذخیره چند فرمت خروجی:

nmap -sV 192.168.56.20 -oA metasploitable-scan

این کار برای مستندسازی و تهیه گزارش بسیار مفید است.


چند دستور مهم Nmap

دستور کاربرد
nmap IP اسکن پایه
nmap -sV IP تشخیص نسخه سرویس
nmap -sC IP اجرای اسکریپت‌های پیش‌فرض
nmap -sC -sV IP اسکن اسکریپتی + تشخیص نسخه
nmap -p 80 IP اسکن پورت مشخص
nmap -p 1-1000 IP اسکن محدوده پورت
nmap -p- IP اسکن تمام پورت‌های TCP
nmap -sn NETWORK کشف میزبان‌ها
sudo nmap -O IP تشخیص احتمالی سیستم‌عامل
sudo nmap -A IP بررسی جامع
nmap --script-help NAME مشاهده راهنمای Script
-oN file.txt ذخیره خروجی متنی
-oX file.xml ذخیره خروجی XML
-oA name ذخیره خروجی در چند فرمت

یک سناریوی واقعی در آزمایشگاه

حالا بیایید تمام مطالب را کنار هم قرار دهیم.

فرض کنید Metasploitable 2 این IP را دارد:

192.168.56.20

۱. اسکن اولیه

nmap 192.168.56.20

۲. تشخیص نسخه‌ها

nmap -sV 192.168.56.20

۳. بررسی دقیق‌تر

nmap -sC -sV 192.168.56.20

۴. بررسی سیستم‌عامل

sudo nmap -O 192.168.56.20

۵. بررسی جامع در آزمایشگاه

sudo nmap -A 192.168.56.20

۶. ذخیره نتیجه

nmap -sC -sV 192.168.56.20 -oA metasploitable-recon

حالا یک مجموعه اطلاعات برای تحلیل در اختیار دارید.


🧠 تمرین حرفه‌ای کاربران صفر و یک سایبر

حالا بدون اینکه مستقیماً سراغ Metasploit بروید، نتیجه اسکن را بررسی کنید.

یک جدول مانند زیر ایجاد کنید:

Port Service Version وضعیت مرحله بعد
21 FTP Open بررسی نسخه
22 SSH Open بررسی تنظیمات
80 HTTP Open بررسی Web Server
3306 MySQL Open بررسی سرویس

سپس برای هر سرویس پاسخ دهید:

۱. این سرویس چه کاری انجام می‌دهد؟

۲. آیا نسخه آن قدیمی است؟

۳. آیا آسیب‌پذیری شناخته‌شده‌ای برای آن وجود دارد؟

۴. آیا می‌توان آن آسیب‌پذیری را در محیط آزمایشگاهی اعتبارسنجی کرد؟

این تمرین شما را از «اجرای دستور» به سمت تحلیل واقعی امنیتی می‌برد.


🔥 Nmap و Metasploit چه ارتباطی دارند؟

در آموزش قبلی Metasploit را بررسی کردیم.

حالا ارتباط این دو ابزار را بهتر می‌توانیم ببینیم:

                 Nmap
                   │
                   ▼
            شناسایی هدف
                   │
                   ▼
             پورت‌های باز
                   │
                   ▼
             سرویس و نسخه
                   │
                   ▼
       تحلیل آسیب‌پذیری احتمالی
                   │
                   ▼
              Metasploit
                   │
                   ▼
       اعتبارسنجی در آزمایشگاه

یعنی Nmap جای Metasploit را نمی‌گیرد؛ بلکه اطلاعات مرحله شناسایی می‌تواند به تصمیم‌گیری در مراحل بعدی تست نفوذ کمک کند.


⚠️ اشتباهات رایج در یادگیری Nmap

❌ اسکن اینترنت بدون مجوز

برای تمرین، آزمایشگاه خودتان را بسازید.

❌ تصور اینکه Port Open یعنی سیستم هک شده

باز بودن پورت فقط نشان می‌دهد سرویسی روی آن در دسترس است.

❌ اعتماد کامل به تشخیص نسخه

Version Detection همیشه صددرصد دقیق نیست و باید با منابع دیگر بررسی شود.

❌ اجرای تمام Scriptها بدون شناخت

ابتدا مستندات Script را بخوانید.

❌ فقط حفظ کردن دستورات

هدف اصلی یادگیری Nmap، تحلیل خروجی است؛ نه حفظ کردن تعداد زیادی Flag.


جمع‌بندی

Nmap یکی از پایه‌ای‌ترین ابزارهایی است که یک متخصص امنیت سایبری باید با آن آشنا باشد.

با Nmap یاد می‌گیریم:

چه چیزی در شبکه وجود دارد → چه پورتی باز است → چه سرویسی اجرا می‌شود → چه نسخه‌ای دارد → چه چیزی ارزش بررسی بیشتر دارد.

اگر این مراحل را روی Kali Linux و Metasploitable 2 تمرین کنید، بعد از مدتی می‌توانید خروجی Nmap را مثل یک نقشه اولیه از سطح حمله سیستم تحلیل کنید.

دسته بندی‌ها:

آنچه در این مقاله میخوانید

دیدگاه شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *