اگر وارد دنیای امنیت سایبری، تست نفوذ یا مدیریت شبکه شده باشید، احتمالاً نام Nmap را بارها شنیدهاید.
Nmap (Network Mapper) یکی از شناختهشدهترین ابزارهای متنباز برای کشف میزبانها، اسکن پورتها، شناسایی سرویسها و نسخه آنها، تشخیص سیستمعامل و انجام برخی بررسیهای امنیتی است. مستندات رسمی Nmap نیز این ابزار را برای network discovery، administration و security auditing معرفی میکند.
در این آموزش، ۲۱۰ دستور و ترکیب کاربردی Nmap در لینوکس را از سطح مقدماتی تا پیشرفته بررسی میکنیم.
⚠️ هشدار قانونی: اسکن سیستمها و شبکههایی که مالک آنها نیستید یا مجوز تست ندارید میتواند غیرقانونی یا موجب اختلال شود. دستورات این مقاله را روی سیستم شخصی، شبکه آزمایشگاهی یا محیطهایی که اجازه تست آنها را دارید اجرا کنید.
بخش اول: آشنایی با Nmap
1. بررسی نصب بودن Nmap
nmap --version
نسخه نصبشده Nmap را نمایش میدهد.
2. نمایش Help
nmap -h
فهرست کوتاهی از گزینههای اصلی را نمایش میدهد.
3. نمایش Manual
man nmap
راهنمای کامل Nmap را باز میکند.
4. اجرای Nmap بدون پارامتر
nmap
ساختار کلی استفاده از Nmap را نمایش میدهد.
بخش دوم: Target Specification
5. اسکن یک IP
nmap 192.168.1.10
پایهایترین نوع اسکن Nmap.
6. اسکن یک hostname
nmap server.local
7. اسکن چند IP
nmap 192.168.1.10 192.168.1.20
8. اسکن محدوده IP
nmap 192.168.1.10-20
IPهای 10 تا 20 را بررسی میکند.
9. اسکن یک Subnet
nmap 192.168.1.0/24
برای مثال، شبکه /24 را بررسی میکند.
10. اسکن چند Subnet
nmap 192.168.1.0/24 10.0.0.0/24
11. خواندن اهداف از فایل
nmap -iL targets.txt
Nmap اهداف را از فایل دریافت میکند.
12. اسکن تعداد مشخصی IP تصادفی
nmap -iR 10
۱۰ هدف تصادفی انتخاب میکند.
13. حذف یک IP از اسکن
nmap 192.168.1.0/24 --exclude 192.168.1.10
14. حذف چند IP
nmap 192.168.1.0/24 --exclude 192.168.1.10,192.168.1.20
15. حذف اهداف با فایل
nmap 192.168.1.0/24 --excludefile exclude.txt
بخش سوم: Host Discovery
Host Discovery برای پیدا کردن سیستمهای فعال در شبکه استفاده میشود. Nmap روشهای مختلفی برای این کار دارد و صرفاً به ICMP Ping محدود نیست.
16. Ping Scan
nmap -sn 192.168.1.0/24
سیستمهای فعال را پیدا میکند، بدون اینکه Port Scan معمول انجام دهد.
17. List Scan
nmap -sL 192.168.1.0/24
اهداف را فهرست میکند بدون اینکه اسکن معمول پورت انجام دهد.
18. غیرفعال کردن Host Discovery
nmap -Pn 192.168.1.10
Nmap فرض میکند هدف فعال است و مستقیماً اسکن را انجام میدهد.
19. ICMP Echo
sudo nmap -PE 192.168.1.10
20. ICMP Timestamp
sudo nmap -PP 192.168.1.10
21. ICMP Address Mask
sudo nmap -PM 192.168.1.10
22. TCP SYN Ping
sudo nmap -PS80 192.168.1.10
23. SYN Ping روی چند پورت
sudo nmap -PS22,80,443 192.168.1.10
24. TCP ACK Ping
sudo nmap -PA80 192.168.1.10
25. UDP Ping
sudo nmap -PU53 192.168.1.10
26. ARP Discovery
sudo nmap -PR 192.168.1.0/24
در شبکههای Ethernet محلی بسیار کاربردی است.
بخش چهارم: Port Scanning
پورت اسکن هسته اصلی Nmap محسوب میشود. Nmap انواع مختلف TCP و UDP scan را ارائه میکند.
27. TCP SYN Scan
sudo nmap -sS 192.168.1.10
یکی از رایجترین روشهای TCP scanning.
28. TCP Connect Scan
nmap -sT 192.168.1.10
زمانی کاربرد دارد که SYN Scan قابل استفاده نباشد.
29. UDP Scan
sudo nmap -sU 192.168.1.10
30. TCP ACK Scan
sudo nmap -sA 192.168.1.10
31. TCP Window Scan
sudo nmap -sW 192.168.1.10
32. TCP FIN Scan
sudo nmap -sF 192.168.1.10
33. TCP NULL Scan
sudo nmap -sN 192.168.1.10
34. Xmas Scan
sudo nmap -sX 192.168.1.10
35. IP Protocol Scan
sudo nmap -sO 192.168.1.10
بخش پنجم: انتخاب پورتها
36. اسکن یک پورت
nmap -p 80 192.168.1.10
37. چند پورت
nmap -p 22,80,443 192.168.1.10
38. محدوده پورت
nmap -p 1-1000 192.168.1.10
39. تمام پورتهای TCP
nmap -p- 192.168.1.10
40. پورتهای 1 تا 65535
nmap -p 1-65535 192.168.1.10
41. اسکن پورتهای رایج
nmap -F 192.168.1.10
-F حالت Fast را فعال میکند.
42. 10 پورت رایج
nmap --top-ports 10 192.168.1.10
43. 100 پورت رایج
nmap --top-ports 100 192.168.1.10
44. 1000 پورت رایج
nmap --top-ports 1000 192.168.1.10
45. ترتیب ترتیبی پورتها
nmap -r 192.168.1.10
بخش ششم: Service & Version Detection
شماره پورت همیشه نشاندهنده سرویس واقعی نیست؛ ممکن است سرویس روی پورت غیرمعمول اجرا شود. -sV با Probe کردن سرویس تلاش میکند پروتکل، نرمافزار و نسخه را شناسایی کند.
46. تشخیص نسخه سرویس
nmap -sV 192.168.1.10
47. تشخیص نسخه روی پورت مشخص
nmap -sV -p 80 192.168.1.10
48. Version Intensity
nmap -sV --version-intensity 9 192.168.1.10
شدت بالاتر میتواند شناسایی دقیقتری ایجاد کند اما معمولاً زمان بیشتری نیاز دارد.
49. Version Light
nmap -sV --version-light 192.168.1.10
50. Version All
nmap -sV --version-all 192.168.1.10
51. Version Trace
nmap -sV --version-trace 192.168.1.10
جزئیات فرآیند Version Detection را نمایش میدهد.
بخش هفتم: OS Detection
52. تشخیص سیستمعامل
sudo nmap -O 192.168.1.10
53. OS Detection همراه Version Detection
sudo nmap -O -sV 192.168.1.10
54. OS Guess
sudo nmap -O --osscan-guess 192.168.1.10
Nmap تلاش بیشتری برای حدس سیستمعامل انجام میدهد.
55. محدود کردن OS Detection
sudo nmap -O --osscan-limit 192.168.1.10
بخش هشتم: اسکن جامع
56. Aggressive Scan
sudo nmap -A 192.168.1.10
-A چند قابلیت مهم از جمله OS Detection، Version Detection، Script Scanning و Traceroute را فعال میکند.
57. Aggressive روی پورت مشخص
sudo nmap -A -p 80,443 192.168.1.10
58. Version + OS
sudo nmap -sV -O 192.168.1.10
59. Version + Default Scripts
nmap -sV -sC 192.168.1.10
بخش نهم: NSE
Nmap Scripting Engine یا NSE قابلیت مهمی برای انجام بررسیهای خودکار با اسکریپتهای Lua است. گزینه -sC معادل اجرای اسکریپتهای دسته default است.
60. اجرای Default Scripts
nmap -sC 192.168.1.10
61. اسکریپت مشخص
nmap --script http-title 192.168.1.10
62. چند Script
nmap --script http-title,http-headers 192.168.1.10
63. دسته Scripts
nmap --script discovery 192.168.1.10
64. Scripts مربوط به HTTP
nmap --script http-* 192.168.1.10
65. Scripts مربوط به SSH
nmap --script ssh-* 192.168.1.10
66. Scripts مربوط به DNS
nmap --script dns-* 192.168.1.10
67. دریافت راهنمای Script
nmap --script-help http-title
68. نمایش Scriptهای نصبشده
ls /usr/share/nmap/scripts/
69. جستجو در Scriptها
grep -R "http-title" /usr/share/nmap/scripts/
70. بهروزرسانی Script Database
sudo nmap --script-updatedb
بخش دهم: Web Scanning
71. بررسی HTTP
nmap -p 80 192.168.1.10
72. تشخیص عنوان صفحه
nmap -p 80 --script http-title 192.168.1.10
73. HTTP Headers
nmap -p 80 --script http-headers 192.168.1.10
74. HTTP Methods
nmap -p 80 --script http-methods 192.168.1.10
75. HTTP Enumeration
nmap -p 80 --script http-enum 192.168.1.10
76. بررسی HTTPS
nmap -p 443 --script ssl-cert 192.168.1.10
77. اطلاعات گواهی SSL
nmap -p 443 --script ssl-cert,ssl-enum-ciphers 192.168.1.10
بخش یازدهم: SSH
78. شناسایی SSH
nmap -p 22 -sV 192.168.1.10
79. الگوریتمهای SSH
nmap -p 22 --script ssh2-enum-algos 192.168.1.10
80. Host Key
nmap -p 22 --script ssh-hostkey 192.168.1.10
81. SSH Authentication Methods
nmap -p 22 --script ssh-auth-methods 192.168.1.10
بخش دوازدهم: SMB
82. شناسایی SMB
nmap -p 445 -sV 192.168.1.10
83. SMB Protocols
nmap -p 445 --script smb-protocols 192.168.1.10
84. SMB Security Mode
nmap -p 445 --script smb-security-mode 192.168.1.10
85. SMB OS Discovery
nmap -p 445 --script smb-os-discovery 192.168.1.10
بخش سیزدهم: DNS
86. شناسایی DNS
nmap -p 53 -sV 192.168.1.10
87. DNS Service Discovery
nmap -p 53 --script dns-service-discovery 192.168.1.10
88. DNS Version
nmap -sV -p 53 192.168.1.10
بخش چهاردهم: FTP
89. شناسایی FTP
nmap -p 21 -sV 192.168.1.10
90. FTP Anonymous Login Check
nmap -p 21 --script ftp-anon 192.168.1.10
91. FTP Banner
nmap -p 21 --script banner 192.168.1.10
بخش پانزدهم: Mail Services
92. SMTP
nmap -p 25 -sV 192.168.1.10
93. SMTP Commands
nmap -p 25 --script smtp-commands 192.168.1.10
94. SMTP Open Relay Check
nmap -p 25 --script smtp-open-relay 192.168.1.10
بخش شانزدهم: Database
95. MySQL
nmap -p 3306 -sV 192.168.1.10
96. MySQL Information
nmap -p 3306 --script mysql-info 192.168.1.10
97. PostgreSQL
nmap -p 5432 -sV 192.168.1.10
98. MSSQL
nmap -p 1433 -sV 192.168.1.10
99. Redis
nmap -p 6379 -sV 192.168.1.10
بخش هفدهم: Timing
Nmap برای کنترل سرعت اسکن Templateهای T0 تا T5 دارد؛ هرچه مقدار بالاتر باشد، اسکن معمولاً سریعتر و تهاجمیتر زمانبندی میشود.
100. Paranoid
nmap -T0 192.168.1.10
101. Sneaky
nmap -T1 192.168.1.10
102. Polite
nmap -T2 192.168.1.10
103. Normal
nmap -T3 192.168.1.10
104. Aggressive
nmap -T4 192.168.1.10
105. Insane
nmap -T5 192.168.1.10
برای شبکههای واقعی، استفاده از Timing بسیار بالا بدون بررسی شرایط شبکه میتواند باعث فشار غیرضروری شود.
بخش هجدهم: کنترل Performance
106. حداکثر Retry
nmap --max-retries 2 192.168.1.10
107. Host Timeout
nmap --host-timeout 30s 192.168.1.10
108. Scan Delay
nmap --scan-delay 100ms 192.168.1.10
109. Maximum Scan Delay
nmap --max-scan-delay 1s 192.168.1.10
110. Minimum Parallelism
nmap --min-parallelism 10 192.168.1.10
111. Maximum Parallelism
nmap --max-parallelism 50 192.168.1.10
بخش نوزدهم: خروجی گرفتن
یکی از قابلیتهای مهم Nmap ذخیره نتایج اسکن برای تحلیل بعدی است.
112. خروجی Normal
nmap 192.168.1.10 -oN scan.txt
113. خروجی XML
nmap 192.168.1.10 -oX scan.xml
114. خروجی Grepable
nmap 192.168.1.10 -oG scan.gnmap
115. همه فرمتهای اصلی
nmap 192.168.1.10 -oA scan
سه خروجی اصلی تولید میکند.
116. Append کردن خروجی
nmap 192.168.1.10 -oN scan.txt --append-output
بخش بیستم: Verbosity و Debugging
117. Verbose
nmap -v 192.168.1.10
118. Verbose بیشتر
nmap -vv 192.168.1.10
119. Debug
nmap -d 192.168.1.10
120. Debug بیشتر
nmap -dd 192.168.1.10
121. Packet Trace
sudo nmap --packet-trace 192.168.1.10
برای بررسی بستههای ارسالشده و دریافتشده مفید است.
بخش بیستویکم: DNS
122. غیرفعال کردن DNS Resolution
nmap -n 192.168.1.10
123. فعال کردن DNS Resolution
nmap -R 192.168.1.10
124. استفاده از DNS مشخص
nmap --dns-servers 1.1.1.1 192.168.1.10
بخش بیستودوم: IPv6
125. IPv6 Scan
nmap -6 2001:db8::10
این آدرس در مستندات/لابراتوار برای نمونه استفاده میشود؛ آن را با IPv6 واقعی محیط مجاز خود جایگزین کنید.
بخش بیستوسوم: Traceroute
126. Traceroute
nmap --traceroute 192.168.1.10
127. Traceroute همراه Version
nmap -sV --traceroute 192.168.1.10
بخش بیستوچهارم: ترکیبهای بسیار کاربردی
از این قسمت به بعد، چند گزینه را با هم ترکیب میکنیم.
128. TCP + Version
nmap -sS -sV 192.168.1.10
129. SYN + OS
sudo nmap -sS -O 192.168.1.10
130. SYN + Version + OS
sudo nmap -sS -sV -O 192.168.1.10
131. SYN + Scripts
sudo nmap -sS -sC 192.168.1.10
132. Version + Scripts
nmap -sV -sC 192.168.1.10
133. Aggressive + خروجی
sudo nmap -A 192.168.1.10 -oA fullscan
134. تمام TCP Ports + Version
nmap -p- -sV 192.168.1.10
135. تمام TCP Ports + SYN
sudo nmap -p- -sS 192.168.1.10
136. تمام TCP Ports + Version + Scripts
sudo nmap -p- -sV -sC 192.168.1.10
137. پورتهای وب
nmap -p 80,443,8080,8443 -sV 192.168.1.10
138. پورتهای Remote Access
nmap -p 22,23,3389,5900 -sV 192.168.1.10
139. پورتهای Database
nmap -p 1433,1521,3306,5432,6379,27017 -sV 192.168.1.10
140. سرویسهای رایج
nmap -sV --top-ports 100 192.168.1.10
بخش بیستوپنجم: اسکن UDP
141. UDP پورت DNS
sudo nmap -sU -p 53 192.168.1.10
142. UDP SNMP
sudo nmap -sU -p 161 192.168.1.10
143. UDP DHCP
sudo nmap -sU -p 67,68 192.168.1.10
144. چند UDP Port
sudo nmap -sU -p 53,67,68,123,161 192.168.1.10
145. UDP Top Ports
sudo nmap -sU --top-ports 20 192.168.1.10
بخش بیستوششم: بررسی سرویسهای خاص
146. HTTP
nmap -p 80 -sV 192.168.1.10
147. HTTPS
nmap -p 443 -sV 192.168.1.10
148. SSH
nmap -p 22 -sV 192.168.1.10
149. FTP
nmap -p 21 -sV 192.168.1.10
150. Telnet
nmap -p 23 -sV 192.168.1.10
151. SMTP
nmap -p 25 -sV 192.168.1.10
152. DNS
nmap -p 53 -sV 192.168.1.10
153. POP3
nmap -p 110 -sV 192.168.1.10
154. IMAP
nmap -p 143 -sV 192.168.1.10
155. LDAP
nmap -p 389 -sV 192.168.1.10
156. SMB
nmap -p 445 -sV 192.168.1.10
157. RDP
nmap -p 3389 -sV 192.168.1.10
158. VNC
nmap -p 5900 -sV 192.168.1.10
بخش بیستوهفتم: NSE Discovery
159. Discovery Scripts
nmap --script discovery 192.168.1.10
160. Safe Scripts
nmap --script safe 192.168.1.10
161. Default Scripts
nmap --script default 192.168.1.10
162. Banner
nmap --script banner 192.168.1.10
163. Service Discovery
nmap --script service* 192.168.1.10
بخش بیستوهشتم: اطلاعات SSL/TLS
164. SSL Certificate
nmap -p 443 --script ssl-cert 192.168.1.10
165. Cipher Enumeration
nmap -p 443 --script ssl-enum-ciphers 192.168.1.10
166. SSL Scripts
nmap -p 443 --script ssl-* 192.168.1.10
بخش بیستونهم: اطلاعات شبکه و سرویس
167. Banner Detection
nmap --script banner -sV 192.168.1.10
168. Service Info
nmap -sV --version-all 192.168.1.10
169. Service + Default Scripts
nmap -sV -sC 192.168.1.10
170. Service + Traceroute
nmap -sV --traceroute 192.168.1.10
بخش سیام: اسکن شبکه داخلی
171. پیدا کردن Hostهای فعال
sudo nmap -sn 192.168.1.0/24
172. Host Discovery با ARP
sudo nmap -PR 192.168.1.0/24
173. پورت 22 در شبکه
nmap -p 22 192.168.1.0/24
174. پورت 80 در شبکه
nmap -p 80 192.168.1.0/24
175. پورت 443 در شبکه
nmap -p 443 192.168.1.0/24
176. HTTP + HTTPS
nmap -p 80,443 192.168.1.0/24
177. SSH + HTTP + HTTPS
nmap -p 22,80,443 192.168.1.0/24
178. سرویسها در کل شبکه
nmap -sV 192.168.1.0/24
179. سیستمعامل شبکه
sudo nmap -O 192.168.1.0/24
180. اسکن جامع شبکه
sudo nmap -A 192.168.1.0/24
بخش سیویکم: سناریوهای لابراتواری
فرض کنیم یک ماشین آزمایشگاهی با IP زیر داریم:
192.168.1.10
181. اولین Recon
nmap -sn 192.168.1.10
182. اسکن اولیه
nmap 192.168.1.10
183. تمام پورتها
nmap -p- 192.168.1.10
184. شناسایی سرویسها
nmap -sV -p- 192.168.1.10
185. OS Detection
sudo nmap -O 192.168.1.10
186. اسکن جامع
sudo nmap -A 192.168.1.10
187. خروجی کامل
sudo nmap -A 192.168.1.10 -oA lab-scan
188. فقط Web
nmap -p 80,443,8080,8443 -sV 192.168.1.10
189. Web Enumeration
nmap -p 80,443 --script http-title,http-headers 192.168.1.10
190. SSH Enumeration
nmap -p 22 --script ssh2-enum-algos,ssh-hostkey 192.168.1.10
بخش سیودوم: دستورات حرفهایتر
191. اسکن با ورودی فایل
nmap -iL targets.txt -oA network-audit
192. حذف اهداف خاص
nmap -iL targets.txt --exclude 192.168.1.10
193. اسکن سریع
nmap -T4 -F 192.168.1.10
194. سریع + Version
nmap -T4 -F -sV 192.168.1.10
195. سریع + خروجی
nmap -T4 -F -oA quickscan 192.168.1.10
196. اسکن دقیقتر
nmap -sS -sV -O -sC 192.168.1.10
197. تمام TCP + اطلاعات سرویس
nmap -p- -sV 192.168.1.10
198. تمام TCP + OS
sudo nmap -p- -O 192.168.1.10
199. تمام TCP + OS + Version
sudo nmap -p- -sV -O 192.168.1.10
200. Full Assessment در لابراتوار
sudo nmap -p- -sS -sV -O -sC 192.168.1.10 -oA assessment
بخش سیوسوم: ۱۰ دستور نهایی برای جمعبندی
201. بررسی سریع Host
nmap -sn 192.168.1.10
202. بررسی پورتهای رایج
nmap -F 192.168.1.10
203. بررسی تمام TCP Ports
nmap -p- 192.168.1.10
204. Service Detection
nmap -sV 192.168.1.10
205. OS Detection
sudo nmap -O 192.168.1.10
206. Default NSE
nmap -sC 192.168.1.10
207. Aggressive Scan
sudo nmap -A 192.168.1.10
208. UDP Scan
sudo nmap -sU 192.168.1.10
209. ذخیره گزارش
nmap -sV 192.168.1.10 -oA report
210. اسکن جامع لابراتوار
sudo nmap -p- -sS -sV -O -sC --traceroute 192.168.1.10 -oA final-report
جمعبندی
Nmap فقط یک ابزار برای پیدا کردن پورتهای باز نیست. این ابزار میتواند در فرآیند Network Discovery، Inventory، Security Auditing و تست نفوذ مجاز برای شناسایی میزبانها، پورتها، سرویسها، نسخه نرمافزارها و برخی ویژگیهای سیستمعامل استفاده شود. ساختار رسمی مستندات Nmap نیز قابلیتها را در همین حوزهها، از Host Discovery و Port Scanning تا Version Detection، OS Detection، NSE، Timing و Output دستهبندی میکند.
مسیر پیشنهادی یادگیری Nmap
اگر تازه شروع کردهای، این ترتیب را پیشنهاد میکنم:
nmap IP
↓
nmap -sn
↓
nmap -p-
↓
nmap -sV
↓
nmap -O
↓
nmap -sC
↓
nmap -A
↓
NSE
↓
Network Auditing
نکته مهم: در یک لابراتوار آموزشی، بهتر است ابتدا یک شبکه جداگانه با Kali Linux و یک ماشین هدف مانند Metasploitable ایجاد کنی و تمام این دستورات را مرحلهبهمرحله روی همان محیط اجرا کنی. این کار هم یادگیری را واقعیتر میکند و هم ریسک اسکن ناخواسته سیستمهای دیگر را از بین میبرد.

دیدگاه شما