Nmap در Kali Linux
راهنمای کامل Nmap: اسکن پورت، تشخیص سرویس، اسکریپت NSE و بهینهسازی برای تست نفوذ.
Nmap (Network Mapper) قدرتمندترین ابزار اسکن شبکه و کشف میزبان است که در Kali Linux بهصورت پیشفرض نصب میشود. در این آموزش، با انواع اسکن، گزینههای پیشرفته و اسکریپت NSE آشنا میشوید.
Nmap چیست؟
Nmap یک ابزار متنباز برای کشف شبکه و ممیزی امنیتی است که توسط Gordon Lyon (Fyodor) توسعه مییابد. این ابزار میتواند میزبانها، پورتها، سرویسها و سیستمعاملهای فعال روی شبکه را شناسایی کند.
# بررسی نسخهٔ Nmap
nmap --version
# خروجی:
# Nmap version 7.94 ( https://nmap.org )
# Platform: x86_64-pc-linux-gnu
# Compiled with: liblua-5.3.6 openssl-3.0.10 libssh2-1.11.0 libz-1.2.13
# Compiled without: nmap-libpcre nmap-libdnet
# Available nsock engines: epoll poll selectاسکنهای پایه
۱. اسکن یک میزبان
# اسکن ساده یک میزبان
nmap 192.168.1.10
# خروجی:
# Starting Nmap 7.94 ( https://nmap.org ) at 2026-06-30 10:00:00 UTC
# Nmap scan report for 192.168.1.10
# Host is up (0.00045s latency).
# Not shown: 995 closed tcp ports (reset)
# PORT STATE SERVICE
# 22/tcp open ssh
# 80/tcp open http
# 443/tcp open https
# 3306/tcp open mysql
# 8080/tcp open http-proxy۲. اسکن چند میزبان
# اسکن چند IP
nmap 192.168.1.10 192.168.1.20 192.168.1.30
# اسکن یک بازه IP
nmap 192.168.1.10-50
# اسکن کل subnet
nmap 192.168.1.0/24۳. اسکن از فایل
# ساخت فایل لیست میزبان
cat > targets.txt <<EOF
192.168.1.10
192.168.1.20
example.com
EOF
# اسکن با فایل
nmap -iL targets.txtانواع اسکن پورت
| نوع اسکن | پرچم | توضیح | قابل تشخیص |
|---|---|---|---|
| TCP SYN | -sS | نیمهباز (پیشفرض) | کم |
| TCP Connect | -sT | اتصال کامل | زیاد |
| UDP | -sU | اسکن UDP | کم |
| TCP ACK | -sA | تشخیص فایروال | کم |
| TCP NULL | -sN | بدون فلگ | کم |
| TCP FIN | -sF | فلگ FIN | کم |
| TCP Xmas | -sX | فلگ FIN+PSH+URG | کم |
# اسکن SYN (محبوبترین)
sudo nmap -sS 192.168.1.10
# اسکن UDP (کندتر)
sudo nmap -sU 192.168.1.10
# اسکن ترکیبی TCP و UDP
sudo nmap -sS -sU 192.168.1.10نیاز به root برای اسکن SYN
اسکن SYN (-sS) نیاز به دسترسی raw socket دارد و در نتیجه باید با sudo اجرا شود. اگر بدون sudo اجرا کنید، Nmap بهصورت خودکار از -sT استفاده میکند.
تشخیص سرویس و نسخه
# تشخیص سرویس و نسخه
nmap -sV 192.168.1.10
# خروجی:
# PORT STATE SERVICE VERSION
# 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
# 80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
# 443/tcp open ssl/http Apache httpd 2.4.52 ((Ubuntu))
# 3306/tcp open mysql MySQL 8.0.31تشخیص سیستمعامل
# تشخیص سیستمعامل
sudo nmap -O 192.168.1.10
# خروجی:
# Device type: general purpose
# Running: Linux 5.X
# OS CPE: cpe:/o:linux:linux_kernel:5
# OS details: Linux 5.0 - 5.14
# Network Distance: 1 hopاسکن ترکیبی کامل
# اسکن کامل با تشخیص سرویس، نسخه، OS و اسکریپت
sudo nmap -A 192.168.1.10
# این معادل است با:
sudo nmap -sS -sV -O -sC --traceroute 192.168.1.10گزینههای بهینهسازی
| گزینه | توضیح | مثال |
|---|---|---|
-T0 تا -T5 | تنظیم سرعت و noise | -T4 (توصیهشده) |
--min-rate | حداقل نرخ پکت | --min-rate 1000 |
--max-rate | حداکثر نرخ پکت | --max-rate 5000 |
-p | پورتهای خاص | -p 80,443,8080 |
-p- | تمام ۶۵۵۳۵ پورت | -p- |
--top-ports | N پورت پراستفاده | --top-ports 100 |
-F | اسکن سریع (۱۰۰ پورت) | -F |
--open | فقط پورتهای باز | --open |
# اسکن سریع ۱۰۰ پورت پراستفاده
nmap -F 192.168.1.10
# اسکن تمام ۶۵۵۳۵ پورت با سرعت بالا
sudo nmap -p- --min-rate 5000 -T4 192.168.1.10
# اسکن فقط پورتهای باز
nmap -p 1-1000 --open 192.168.1.10بهینهسازی سرعت
برای اسکن سریع یک شبکهٔ بزرگ، از -T4 --min-rate 1000 استفاده کنید. این تنظیم نرخ پکت را بالا نگه میدارد و در عین حال اسکن را پایدار میکند.
Nmap Scripting Engine (NSE)
NSE موتور اسکریپتنویسی Nmap است که شامل بیش از ۶۰۰ اسکریپت ازپیشساختهشده برای تشخیص آسیبپذیری، brute-force و جمعآوری اطلاعات است.
دستههای اسکریپت NSE
| دسته | توضیح |
|---|---|
auth | احراز هویت |
brute | brute-force |
default | اسکریپتهای پیشفرض |
discovery | کشف اطلاعات |
dos | حمله DoS (محتاط باشید) |
exploit | اکسپلویت |
fuzzer | fuzz |
intrusive | تهاجمی |
malware | تشخیص بدافزار |
safe | امن (غیرتهاجمی) |
version | تشخیص نسخه |
vuln | تشخیص آسیبپذیری |
مثالهای NSE
# اجرای اسکریپتهای پیشفرض
nmap -sC 192.168.1.10
# تشخیص آسیبپذیری SMB
nmap --script smb-vuln* 192.168.1.10
# تشخیص آسیبپذیری HTTP
nmap --script http-enum,http-headers,http-methods 192.168.1.10
# brute-force FTP
nmap --script ftp-brute --script-args userdb=users.txt,passdb=passwords.txt 192.168.1.10
# خروجی نمونه برای smb-vuln:
# PORT STATE SERVICE
# 445/tcp open microsoft-ds
#
# Host script results:
# | smb-vuln-ms17-010:
# | VULNERABLE:
# | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
# | State: VULNERABLE
# | IDs: CVE:CVE-2017-0143
# | Risk factor: HIGH
# | A critical remote code execution vulnerability exists in Microsoft
# | SMBv1 servers (ms17-010).
# |_ Check results: Insight: Possible EternalBlue attack vectorخروجی به فایل
# ذخیرهٔ خروجی به فرمتهای مختلف
nmap -oN scan.txt 192.168.1.10 # متنی
nmap -oX scan.xml 192.168.1.10 # XML
nmap -oG scan.grep 192.168.1.10 # grep-able
nmap -oA scan 192.168.1.10 # هر سه فرمتکشف میزبان
# فقط کشف میزبان (بدون اسکن پورت)
nmap -sn 192.168.1.0/24
# خروجی:
# Nmap scan report for 192.168.1.1
# Host is up (0.0020s latency).
# Nmap scan report for 192.168.1.10
# Host is up (0.0010s latency).
# Nmap scan report for 192.168.1.20
# Host is up (0.0015s latency).
# Nmap done: 256 IP addresses (3 hosts up) scanned in 3.5 secondsخطاهای رایج
اسکن بسیار کند است
مشکل: اسکن یک شبکهٔ بزرگ ساعتها طول میکشد.
راهحل:
# افزایش سرعت
sudo nmap -T4 --min-rate 1000 192.168.1.0/24
# اسکن فقط پورتهای پراستفاده
nmap --top-ports 100 192.168.1.0/24"Host seems down"
مشکل: Nmap میزبان را down گزارش میدهد.
راهحل:
# اسکن با ارسال پکت ICMP
sudo nmap -PE 192.168.1.10
# یا اسکن با فرض روشن بودن میزبان
nmap -Pn 192.168.1.10اسکن بدون امتیازات root
مشکل: اسکن SYN اجرا نمیشود.
راهحل:
# استفاده از sudo
sudo nmap -sS 192.168.1.10
# یا اسکن connect (بدون نیاز به root)
nmap -sT 192.168.1.10فایروال همهٔ پورتها را فیلتر میکند
مشکل: همهٔ پورتها filtered نمایش داده میشوند.
راهحل:
# اسکن با پروتکلهای مختلف
sudo nmap -sS -sU -PE -PP 192.168.1.10
# اسکن ACK برای تشخیص فایروال
sudo nmap -sA 192.168.1.10اسکن محیطهای تولیدی
اسکن پورت روی سیستمهای تولیدی ممکن است باعث هشدار در سیستمهای IDS/IPS شود یا حتی سرویسها را دچار اختلال کند. همیشه پیش از اسکن، مجوز کتبی بگیرید و از گزینههای --max-rate و -T برای کاهش فشار استفاده کنید.
خلاصه و مرحلهٔ بعد
Nmap پایهٔ هر آزمون تست نفوذ است. با ترکیب گزینههای مختلف و اسکریپتهای NSE، میتوانید اطلاعات جامعی از هدف جمعآوری کنید و سپس از ابزارهایی مانند Metasploit برای اکسپلویت استفاده کنید.
بهعنوان گام بعدی:
- آموزش Metasploit Framework را برای اکسپلویت اهداف شناساییشده بخوانید
- آموزش معرفی ابزارها را برای نمای کلی ببینید
- آموزش Burp Suite را برای تست وب مرور کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.