Nmap در Parrot OS
راهنمای جامع Nmap: اسکن پورت، شناسایی سرویس، تشخیص سیستمعامل و اسکریپت NSE.
Nmap (Network Mapper) استاندارد طلایی اسکن شبکه در دنیای امنیت است. این ابزار برای کشف میزبان، اسکن پورت، تشخیص سرویس و شناسایی سیستمعامل استفاده میشود. در این آموزش، با تمام قابلیتهای Nmap در Parrot OS آشنا میشویم.
اسکن مجاز
Nmap را فقط روی شبکههایی که مالک آن هستید یا مجوز کتبی برای اسکن دارید، استفاده کنید. اسکن غیرمجاز در بسیاری از کشورها جرم محسوب میشود.
Nmap چیست؟
Nmap یک ابزار متنباز است که در سال ۱۹۹۷ توسط Gordon Lyon (معروف به Fyodor) ایجاد شد. این ابزار با ارسال پکتهای خاص و تحلیل پاسخها، اطلاعات دقیقی از شبکهها و میزبانها ارائه میدهد. Nmap بهصورت پیشفرض روی Parrot Security نصب است.
# بررسی نصب
nmap --version
# Nmap version 7.94 ( https://nmap.org )
# Platform: x86_64-pc-linux-gnuانواع اسکن پایه
۱. اسکن سادهٔ یک میزبان
# اسکن ۱۰۰۰ پورت رایج یک میزبان
nmap 192.168.1.10
# خروجی:
# Starting Nmap 7.94 ( https://nmap.org )
# Nmap scan report for 192.168.1.10
# Host is up (0.00045s latency).
# Not shown: 996 closed tcp ports (conn-refused)
# PORT STATE SERVICE
# 22/tcp open ssh
# 80/tcp open http
# 139/tcp open netbios-ssn
# 445/tcp open microsoft-ds
# Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds۲. اسکن چندین میزبان
# اسکن سه میزبان جدا شده با کاما
nmap 192.168.1.10 192.168.1.20 192.168.1.30
# اسکن یک محدوده
nmap 192.168.1.1-50
# اسکن کل زیرشبکه
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انواع اسکن پورت
Nmap انواع مختلفی از اسکن را پشتیبانی میکند که هر کدام مزایا و معایبی دارند:
| پرچم | نوع | توضیح |
|---|---|---|
-sS | SYN scan | پیشفرض (نیاز به root)، نیمهباز، ناشناس |
-sT | TCP connect | بدون نیاز به root، شناختهشده در لاگ |
-sU | UDP scan | اسکن UDP (کندتر) |
-sA | ACK scan | تشخیص فایروال |
-sN/-sF/-sX | Null/FIN/Xmas | دور زدن فایروال قدیمی |
# اسکن SYN (نیاز به root)
sudo nmap -sS 192.168.1.10
# اسکن TCP connect (بدون root)
nmap -sT 192.168.1.10
# اسکن UDP
sudo nmap -sU 192.168.1.10تشخیص سرویس و نسخه
پرچم -sV برای تشخیص نسخهٔ سرویس استفاده میشود:
# تشخیص نسخه سرویس
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 nginx 1.18.0 (Ubuntu)
# 3306/tcp open mysql MySQL 8.0.32-0ubuntu0.22.04.1
# 8080/tcp open http Apache Tomcat 9.0.71تشخیص سیستمعامل
پرچم -O برای تشخیص سیستمعامل هدف استفاده میشود:
# تشخیص سیستمعامل (نیاز به root)
sudo nmap -O 192.168.1.10
# خروجی:
# Running: Linux 5.X
# OS CPE: cpe:/o:linux:linux_kernel:5
# OS details: Linux 5.0 - 5.14
# Network Distance: 1 hopاسکریپت NSE (Nmap Scripting Engine)
NSE موتور اسکریپتنویسی Nmap است که بیش از ۶۰۰ اسکریپت برای کارهای مختلف دارد:
لیست اسکریپتها
# نمایش تمام اسکریپتها
ls /usr/share/nmap/scripts/ | head
# جستجوی اسکریپت
nmap --script-help "*smb*"اسکن با اسکریپت پیشفرض
# اجرای اسکریپتهای پیشفرض
nmap -sC 192.168.1.10
# خروجی (نمونه):
# PORT STATE SERVICE
# 22/tcp open ssh
# | ssh-hostkey:
# | 2048 aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99 (RSA)
# |_ 256 ab:cd:ef:01:23:45:67:89:ab:cd:ef:01:23:45:67:89 (ECDSA)
# 80/tcp open http
# |_http-title: Welcome to nginx!اسکریپتهای خاص
# استخراج اطلاعات SMB
nmap --script smb-os-discovery 192.168.1.10
# تشخیص آسیبپذیری SMB
nmap --script smb-vuln* 192.168.1.10
# خروجی:
# 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
# برسی http-headers
nmap --script http-headers 192.168.1.10
# کشف دایرکتوریهای وب
nmap --script http-enum 192.168.1.10بهینهسازی سرعت اسکن
زمانبندی (Timing)
Nmap شش سطح زمانبندی دارد:
| پرچم | نام | توضیح |
|---|---|---|
-T0 | Paranoid | بسیار کند، ناشناس |
-T1 | Sneaky | کند، ناشناس |
-T2 | Polite | متعادل، با احتیاط |
-T3 | Normal | پیشفرض |
-T4 | Aggressive | سریع، روی شبکهٔ قابل اعتماد |
-T5 | Insane | بسیار سریع، ممکن است نادرست باشد |
# اسکن سریع برای شبکه محلی
nmap -T4 192.168.1.10
# اسکن ناشناس برای شبکه عمومی
nmap -T1 example.comاسکن پورتهای خاص
# اسکن یک پورت خاص
nmap -p 80 192.168.1.10
# اسکن چند پورت
nmap -p 80,443,8080 192.168.1.10
# اسکن محدوده
nmap -p 1-1000 192.168.1.10
# اسکن تمام ۶۵۵۳۵ پورت
nmap -p- 192.168.1.10
# اسکن سریع ۱۰۰ پورت پرکاربرد
nmap -F 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.0015s latency).ذخیرهٔ خروجی
# ذخیره به فرمت متنی
nmap -oN scan.txt 192.168.1.10
# ذخیره به فرمت XML (برای پردازش برنامهای)
nmap -oX scan.xml 192.168.1.10
# ذخیره به فرمت grep-able
nmap -oG scan.gnmap 192.168.1.10
# ذخیره به هر سه فرمت
nmap -oA scan 192.168.1.10اسکن کامل پیشنهادی
یک اسکن کامل و جامع برای تست نفوذ:
# اسکن کامل با تشخیص سرویس، نسخه، OS و اسکریپتهای پیشفرض
sudo nmap -sS -sV -sC -O -p- -T4 -oA full_scan 192.168.1.10
# توضیح پرچمها:
# -sS اسکن SYN
# -sV تشخیص نسخه
# -sC اسکریپتهای پیشفرض
# -O تشخیص OS
# -p- تمام پورتها
# -T4 سرعت سریع
# -oA ذخیره در هر سه فرمتاسکن مرحلهای
برای شروع، با -F (۱۰۰ پورت پرکاربرد) اسکن سریع بگیرید تا میزبانهای فعال را شناسایی کنید. سپس روی هر کدام اسکن کامل با -p- انجام دهید. این کار زمان را بهطور قابل توجهی کاهش میدهد.
جدول گزینههای رایج
| گزینه | توضیح |
|---|---|
-sS | اسکن SYN (پیشفرض با root) |
-sV | تشخیص نسخه سرویس |
-sC | اسکریپتهای پیشفرض NSE |
-O | تشخیص سیستمعامل |
-A | فعالسازی تمام قابلیتها (معادل -sV -sC -O --traceroute) |
-p- | تمام ۶۵۵۳۵ پورت |
-F | ۱۰۰ پورت پرکاربرد |
-T4 | سرعت سریع |
-sn | فقط کشف میزبان |
-Pn | نادیده گرفتن ping (در صورت بلاک بودن) |
-v | خروجی verbose |
-oA | ذخیره در هر سه فرمت |
-iL | ورودی از فایل |
--top-ports N | N پورت پرکاربرد |
خطاهای رایج
"Host seems down"
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pnدلیل: میزبان ping را بلاک کرده است. راهحل:
# نادیده گرفتن ping و ادامهٔ اسکن
nmap -Pn 192.168.1.10اسکن بسیار کند
راهحلها:
# استفاده از T4 یا T5
nmap -T4 192.168.1.10
# فقط پورتهای رایج
nmap -F 192.168.1.10
# بهجای -p-، از --top-ports استفاده کنید
nmap --top-ports 100 192.168.1.10خطای "requires root"
TCP SYN port scans can only be used by root.راهحل:
# استفاده از sudo
sudo nmap -sS 192.168.1.10
# یا استفاده از اسکن TCP connect (نیاز به root ندارد)
nmap -sT 192.168.1.10نتایج نادرست در شبکههای پرمصرف
راهحل: سرعت را کاهش دهید:
nmap -T2 192.168.1.10ترکیب Nmap با ابزارهای دیگر
خروجی Nmap به Metasploit
# ذخیره خروجی به XML
nmap -sV -oX scan.xml 192.168.1.10
# وارد کردن در Metasploit
msf6 > db_import scan.xml
msf6 > servicesخروجی Nmap به SearchSploit
# استفاده از اسکریپت searchsploit
nmap -sV --script=vulners 192.168.1.10خلاصه و مرحلهٔ بعد
Nmap ابزار اصلی کشف و اسکن شبکه در دنیای امنیت است. با تسلط بر انواع اسکن، تشخیص نسخه، اسکریپت NSE و بهینهسازی سرعت، میتوانید اطلاعات دقیقی از هدف جمعآوری کنید که برای مراحل بعدی تست نفوذ حیاتی است.
بهعنوان گام بعدی:
- آموزش Metasploit را برای مرحلهٔ اکسپلویت پس از اسکن بخوانید
- آموزش ابزارهای تست نفوذ را برای نمای کلی ببینید
- آموزش معرفی ابزارها را برای آشنایی با سایر ابزارها مرور کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.