صفر تا صد آموزش هک  با مستر کلاس کداکر 

73% تخفیف

آموزش اسکن شبکه با Nmap 2025

خواندن این مطلب

9 دقیقه

زمان میبرد!

مقدمه (خلاصه): Nmap — مخفف “Network Mapper” — ابزار شماره یک برای شناسایی میزبان‌ها و سرویس‌ها در شبکه است. این مقاله به‌صورت محاوره‌ای ولی تخصصی نوشته شده و شامل دستورها، توضیحات، خروجی نمونه و بهترین شیوه‌ها برای انجام اسکن‌های ایمن و مؤثر می‌باشد. هدف: ارائه راهنمای کاملاً عملی برای تست نفوذگران، مهندسان امنیت و تیم‌های ردگیری حادثه.

فهرست سریع

نصب و آماده‌سازی
اصول و مفاهیم پایه
اسکن TCP: SYN, Connect
اسکن UDP
شناسایی نسخه و OS
Timing، performance و stealth
NSE — اسکریپت‌های Nmap
خروجی و گزارش‌دهی (XML، grepable، HTML)
سناریوهای واقعی و مثال‌ها
نکات امنیتی، خطاهای رایج و ترفندها

توضیح: همیشه از نسخه جدید استفاده کنید چون دیتابیس fingerprint ها و اسکریپت‌های NSE مرتباً به‌روزرسانی می‌شوند.

1) نصب و آماده‌سازی

اگر از توزیع‌های لیوناکس/کالی استفاده می‌کنید تقریباً همیشه Nmap از قبل نصب است. برای نصب در توزیع‌های مبتنی بر Debian/Ubuntu:
sudo apt update
sudo apt install nmap -y

برای macOS با Homebrew:

brew install nmap

بررسی نسخه:

nmap –version

توضیح: همیشه از نسخه جدید استفاده کنید چون دیتابیس fingerprint ها و اسکریپت‌های NSE مرتباً به‌روزرسانی می‌شوند.

2) اصول و مفاهیم پایه

  • Host discovery (ping sweep): مشخص می‌کند که کدام آدرس‌ها در شبکه زنده‌اند.

  • Port scan: بررسی باز/بسته/filtered بودن پورت‌ها.

  • Service/version detection: شناسایی سرویس و نسخه آن.

  • OS detection: تلاش برای تعیین سیستم‌عامل با استفاده از TCP/IP fingerprinting.

  • NSE (Nmap Scripting Engine): اجرای اسکریپت‌های آماده برای کشف آسیب‌پذیری‌ها، brute-force، و موارد دیگر.

اصلی‌ترین الگوهای اسکن:

  • -sS : TCP SYN scan (نیمه باز — stealth)

  • -sT : TCP connect scan (وقتی دسترسی raw socket نداریم)

  • -sU : UDP scan

  • -sV : version detection

  • -O : OS detection

  • -A : ترکیبی از -sV -O --script=default (در کاربرد عملی مراقب باشید — سرویس‌ها را برمی‌انگیزد)


3) اسکن TCP: SYN و Connect

SYN scan (-sS) — سریع و نسبتاً مخفی. نیاز به دسترسی raw socket (معمولاً root) مثال:
sudo nmap -sS -p 1-1000 10.10.10.5

خروجی نمونه (برش خورده):

Starting Nmap 7.93 ( https://nmap.org ) at 2025-10-15 12:00 UTC
Nmap scan report for 10.10.10.5
Host is up (0.12s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https

Connect scan (-sT) — وقتی دسترسی root ندارید. کندتر و «صریح‌تر» دیده می‌شود.

nmap -sT -p22,80 10.10.10.5

نکات:

  • از -Pn وقتی می‌دانید هاست‌ها فایروال دارند و ping را drop می‌کنند استفاده کنید تا Nmap فرض نکند هاست down است.

  • برای اسکن پورت‌های خاص از -p استفاده کنید، مثلاً -p- برای همه پورت‌های TCP (۱ تا ۶۵۵۳۵).

4) اسکن UDP

UDP قابل اطمینان نیست چون بسیاری از سرویس‌ها پاسخ نمی‌دهند و ممکن است false positive زیاد داشته باشد.

sudo nmap -sU -p 53,67,68,161 10.10.10.5

خروجی نمونه (نمونه‌سازی):

PORT STATE SERVICE
53/udp open|filtered domain
161/udp open snmp

توضیح: Nmap برای UDP، زمانی که هیچ پاسخی دریافت نکند، پورت را open|filtered گزارش می‌کند. افزایش --host-timeout و --max-retries در شبکه‌های شلوغ مفید است.

5) شناسایی نسخه و OS

شناسایی سرویس/نسخه (-sV)

sudo nmap -sV -p22,80,443 10.10.10.5

نمونه خروجی:

22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp open http nginx 1.14.0

OS detection (-O) — به root نیاز دارد و ممکن است با firewall ناکام بماند:

sudo nmap -O 10.10.10.5

خروجی نمونه:

OS details: Linux 4.X – 5.X (kernel 4.4 – 5.4)
Network Distance: 1 hop

نکته: برای دقت بیشتر -A را تنها در محیط کنترل‌شده استفاده کنید چون باعث تولید ترافیک اضافی و ممکن است سرویس‌ها را روشن کند:

sudo nmap -A 10.10.10.5

6) Timing، عملکرد و stealth

Nmap مقادیر timing از -T0 تا -T5 دارد:

  • -T0 : paranoid — خیلی آهسته، برای اجتناب از IDS

  • -T1 : sneaky

  • -T2 : polite

  • -T3 : normal

  • -T4 : aggressive — برای شبکه‌های محلی

  • -T5 : insane — فقط اگر خیلی مطمئنید

مثال برای اسکن آهسته به‌خاطر IDS:

sudo nmap -sS -T1 -p1-65535 10.10.10.5

Rate limiting و نقل و انتقال بسته‌ها: می‌توانید از --scan-delay و --max-rate استفاده کنید تا سرعت پکت‌ها را محدود کنید و از شناسایی جلوگیری کنید.

sudo nmap -sS –max-rate 1000 10.10.10.5

Fragmentation / decoys / source port spoofing:

  • -f : fragment packets (ممکن است برخی IPSها را فریب دهد اما کمتر مؤثر شده)

  • --spoof-mac : تغییر MAC

  • --data-length : اضافه کردن padding به بسته‌ها

  • -D decoy1,decoy2,ME : استفاده از آدرس‌های فریب‌دهنده

هشدار: این تکنیک‌ها قانونی پیچیده‌ای دارند و در محیط‌های تولیدی می‌توانند عواقب داشته باشند.


 

7) NSE — Nmap Scripting Engine

NSE قابلیت Nmap را به‌شدت گسترش می‌دهد. اسکریپت‌ها در پوشه scripts/ قرار دارند و بر اساس دسته‌بندی اجرا می‌شوند: auth, vuln, exploit, brute, default, discovery و …

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

sudo nmap –script=default 10.10.10.5

اجرای یک اسکریپت خاص:

sudo nmap –script=http-vuln-cve2017-5638 -p80 10.10.10.5

مثال: اجرای تعدادی اسکریپت مرتبط با SMB

sudo nmap –script=smb-enum-shares,smb-os-discovery -p445 10.10.10.5

نمونه خروجی (برش):

Host script results:
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.3.11)
| smb-enum-shares:
| \share1
| \public

نکته مهم: برخی اسکریپت‌ها می‌توانند عملیات مخرب انجام دهند یا موجب کرش سرویس شوند — همیشه در محیط تست اجرا کنید.

8) خروجی و گزارش‌دهی

Nmap چند فرمت خروجی مفید دارد:

  • -oN : خروجی عادی

  • -oG : grepable (مناسب برای اسکریپت‌ها)

  • -oX : XML (برای ابزارهای دیگر)

  • -oA : همه فرمت‌ها (prefix)

مثال:

sudo nmap -sS -p1-1000 -oA scans/office_scan 10.10.10.0/24

این دستور فایل‌های scans/office_scan.nmap, scans/office_scan.gnmap, scans/office_scan.xml می‌سازد.

برای تبدیل XML به گزارش انسانی:

xsltproc /usr/share/nmap/nmap.xsl scans/office_scan.xml -o report.html

ابزارها: ndiff برای مقایسه دو اسکن، nmap-converter برای تبدیل خروجی و metasploit برای وارد کردن نتایج — همه می‌توانند به گردش کار pentest کمک کنند.

9) سناریوها و مثال‌های واقعی (با خروجی نمونه)

سناریو A — اسکن شبکه محلی جهت شناسایی سرویس‌های HTTP و SSH

sudo nmap -sS -sV -p22,80,443 192.168.1.0/24 -oA local_http_ssh

خروجی sample (خلاصه):

Nmap scan report for 192.168.1.10
Host is up (0.0010s latency).
22/tcp open ssh OpenSSH 7.2p2 Ubuntu
80/tcp open http Apache httpd 2.4.18

سناریو B — کشف‌ آسیب‌پذیری‌ها با NSE

sudo nmap -sV –script=vuln 10.10.20.5 -oN vuln_report.txt

خروجی sample (برش):

| ssl-heartbleed:
| VULNERABLE:
| The remote OpenSSL library is affected by the Heartbleed issue.

سناریو C — اسکن stealth با decoys و فشرده‌سازی ترافیک

sudo nmap -sS -T2 -D 192.168.1.99,ME,10.0.0.50 -p 1-1000 10.10.10.5

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

10) نکات امنیتی، خطاهای رایج و ترفندها

  • همیشه قبل از اسکن، مجوز قانونی بگیرید؛ اسکن بدون مجوز می‌تواند غیرقانونی باشد.

  • اگر اسکن کند اجرا می‌شود، از --reason و -v برای دید بهتر از دلایل تشخیص استفاده کنید.

  • اگر هدف فایروال دارد از -Pn و سپس -sT/-sS با تأخیر مناسب استفاده کنید.

  • برای شبکه‌های بزرگ از --min-parallelism و --max-parallelism استفاده کنید تا بار شبکه را کنترل کنید.

  • از --script-args برای پارامتر دادن به اسکریپت‌ها استفاده کنید، مثلاً:

sudo nmap –script http-brute –script-args userdb=users.txt,passdb=passes.txt -p80 10.10.10.5
  • برای ترکیب با Masscan (برای اسکن پورت‌های بسیار گسترده):

    1. Masscan برای شناسایی پورت‌های باز سریع است. خروجی آن را به فایل تبدیل کنید.

    2. پورت‌های یافته را به Nmap پاس دهید تا شناسایی سرویس/نسخه و اسکریپت اجرا شود.

مثال انتقال خروجی masscan به nmap (خط‌فرمان سریع):

masscan -p1-65535 10.0.0.0/8 –rate=10000 -oL masscan.txt
cat masscan.txt | awk ‘/open/ {print $4″:”$3}’ | sed ‘s//tcp//g’ > targets.txt
# سپس با nmap روی targets.txt اسکن دقیق‌تر انجام دهید
nmap -sV -iL targets.txt -oA masscan_nmap

خاتمه و جمع‌بندی

  • Nmap یک ابزار همه‌کاره است؛ از کشف ابتدایی میزبان تا اجرای اسکریپت‌های پیچیده برای کشف آسیب‌پذیری‌ها. برای متخصصان امنیت، مهم است که:

    • با گزینه‌های اساسی (-sS, -sU, -sV, -O) مسلط شوید.

    • از NSE برای خودکارسازی کشف استفاده کنید اما محتاط باشید.

    • خروجی‌ها را ذخیره، نسخه‌بندی و مقایسه کنید.

    • همیشه قوانین محیط تست/قانونی را رعایت کنید.

درباره نویسنــده
نویسنده
codacker support
نظرات کاربـــران
فاقد دیدگاه
دیدگاهی برای این مطلب ثبت نشده است. اولین دیدگاه را شما بنویسید.
ثبت دیدگاه

جستجو کنید ...

55%
مستر کلاس هک و امنیت (6دوره)
تومان
4,970,000
11,000,000