Nmap چیست؟
Nmap (Network Mapper) ابزار متنباز کشف شبکه و پویش پورت است که استاندارد عملی این حوزه به شمار میرود. کار اصلی آن پاسخ به این پرسشهاست: کدام میزبانها زندهاند، کدام پورتها باز است، و پشت هر پورت باز چه سرویسی با چه نسخهای اجرا میشود.
در زمان نگارش این مطلب نسخهی جاری 7.991 (منتشرشده در ۶ اوت ۲۰۲۶) است. نکتهای که هنگام بازتوزیع اهمیت دارد: Nmap از سال ۲۰۲۰ از GPLv2 خارج شده و اکنون تحت مجوز NPSL (یک مجوز اختصاصی Nmap، نه GPL استاندارد OSI) منتشر میشود؛ این تفاوت گاهی هنگام بستهبندی مجدد مشکلساز میشود.
«Nmap یک ابزار اسکن آسیبپذیری برنامهی وب است.» — نادرست. Nmap ابزار شبکه و میزبان است. دربارهی منطق برنامه هیچ چیزی به شما نمیگوید. اسکریپتهای http-* آن جایگزین ضعیفی برای یک اسکنر واقعی وب مثل Burp یا Nuclei هستند. جای Nmap در engagement وب، مرحلهی نگاشت زیرساخت است، نه آزمون خود برنامه.
جایگاه Nmap در یک engagement وب
برای یک شرکت تست نفوذ برنامهی وب، صداقت دربارهی نقش Nmap مهم است: نقش آن واقعی اما محدود و مرزبندیشده است. Nmap در این کارها ارزش میآورد:
- یافتن سرویسهای وب روی پورتهای غیرمتعارف. برنامهی اصلی روی ۴۴۳ است، اما پنل مدیریت روی ۸۰۸۰، داشبورد مانیتورینگ روی ۹۰۰۰ و یک API قدیمی روی ۸۴۴۳ ممکن است پنهان مانده باشد. اینجا دقیقاً همان نقطهای است که Nmap به کشف سطح حمله کمک میکند و مکمل subfinder است.
- انگشتنگاری سرویس و نسخه با
-sV، که ورودی مرحلهی بعدی (تشخیص CVEهای شناختهشده) است. - بازرسی TLS از طریق اسکریپتهای NSE مثل
ssl-enum-ciphersوssl-certبرای ارزیابی پیکربندی TLS. - راستیآزمایی سطح حمله: مقایسهی آنچه واقعاً در معرض است با آنچه مشتری فکر میکند در معرض است — این شکاف اغلب بزرگ است.
خروجی Nmap، فهرست هدف را میسازد که سپس به ابزارهای وب تحویل میشود. Nmap شروع را مرزبندی میکند؛ کار عمقی روی برنامه با ابزارهای دیگر انجام میشود.
کشف میزبان و انواع پویش
کشف میزبان (Host Discovery) نخستین گام است: تعیین اینکه کدام آدرسها زندهاند. با -sn فقط کشف میزبان بدون پویش پورت انجام میشود:
nmap -sn 203.0.113.0/24انواع پویش پورت:
-sS— پویش SYN (نیمهباز)؛ سریع و پیشفرض با دسترسی مدیر.-sT— پویش TCP connect کامل؛ وقتی دسترسی خام سوکت ندارید.-sU— پویش UDP؛ کندتر اما برای سرویسهایی مثل DNS و SNMP لازم.
محدودهی پورت را با -p تعیین میکنید (-p- برای همهی ۶۵۵۳۵ پورت، -p 80,443,8080,8443 برای پورتهای وب رایج).
انگشتنگاری سرویس و نسخه با -sV مهمترین بخش برای engagement وب است، چون نسخهی دقیق سرور و میانافزار را میدهد که مبنای تشخیص آسیبپذیریهای شناختهشده است:
nmap -sV -p 80,443,8080,8443 target.example.com
NSE، زمانبندی و خروجی
موتور اسکریپت Nmap (NSE) قابلیتهای فراتر از پویش ساده اضافه میکند. اسکریپتهای مرتبط با وب که واقعاً مفیدند:
http-title— عنوان صفحهی هر سرویس وب.http-methods— متدهای HTTP مجاز (کشف PUT/DELETE فعال).http-security-headers— بررسی هدرهای امنیتی.ssl-enum-ciphers— ردهبندی مجموعهرمزهای TLS.
nmap -sV --script http-title,http-security-headers \
-p 443,8443 target.example.comقالبهای زمانبندی از -T0 (بسیار کند و پنهان) تا -T5 (بسیار سریع و پرسروصدا) هستند. هشدار مهم: قالبهای تهاجمی -T4 و -T5 میتوانند سامانههای شکننده را ناپایدار کنند و بهروشنی سامانههای تشخیص نفوذ را فعال میکنند. روی محیط عملیاتی محافظهکار باشید.
قالبهای خروجی برای مستندسازی و زنجیرهسازی: -oN (متن معمولی)، -oX (XML برای ابزارهای دیگر) و -oG (قابل grep). -oA هر سه را همزمان میسازد:
nmap -sV -p- -oA scan-results target.example.com
محدودیتها و نکتهی قانونی
محدودیتهای Nmap را باید در گزارش و انتظارات مشتری روشن کرد:
- Nmap دربارهی منطق برنامه هیچ نمیگوید — نه IDOR پیدا میکند، نه نقص کنترل دسترسی، نه تزریق.
- اسکریپتهای
http-*جایگزین ضعیفی برای یک اسکنر واقعی وباند و نباید بهعنوان پوشش آزمون وب ارائه شوند. - پویش نسخه گاهی نتیجهی نادرست میدهد؛ همیشه دستی تأیید کنید.
- قالبهای زمانبندی تهاجمی روی زیرساخت شکننده ریسک قطعی دارند.
پویش پورت سامانههایی که مالک آنها نیستید یا مجوز کتبی ندارید، در بسیاری از حوزههای قضایی مسئلهساز و بالقوه غیرقانونی است. Nmap ابزاری است که بهروشنی در لاگها دیده میشود و قابل ردیابی است. در هر engagement، محدودهی آدرسهای مجاز باید در قرارداد مشخص باشد و پویش نباید از آن فراتر رود.
جمعبندی صادقانه: Nmap ابزار پایه و ضروری فاز نگاشت زیرساخت است، اما در یک تست نفوذ وب نقشی مکمل و مرزبندیشده دارد. کار اصلیِ یافتن آسیبپذیریهای برنامه با Burp، ffuf و آزمون دستی انجام میشود.
پرسشهای متداول
آیا Nmap یک اسکنر آسیبپذیری وب است؟
خیر. Nmap ابزار کشف شبکه و پویش پورت است. اسکریپتهای http-* آن یک نگاه اولیه به سرویسهای وب میدهند، اما جایگزین اسکنر واقعی برنامهی وب مثل Burp یا Nuclei نیستند و منطق برنامه را نمیفهمند.
نقش Nmap در تست نفوذ وب چیست؟
نقشی مکمل و محدود: یافتن سرویسهای وب روی پورتهای غیرمتعارف، انگشتنگاری نسخهی سرویس با -sV، بازرسی TLS، و راستیآزمایی سطح حمله. خروجی آن فهرست هدف را میسازد که سپس به ابزارهای آزمون وب تحویل میشود.
تفاوت -sS و -sT چیست؟
-sS پویش SYN یا نیمهباز است که اتصال TCP را کامل نمیکند؛ سریعتر است اما به دسترسی مدیر نیاز دارد. -sT پویش TCP connect کامل است که وقتی دسترسی سوکت خام ندارید به کار میآید اما پرسروصداتر و کندتر است.
آیا پویش با Nmap قانونی است؟
فقط روی سامانههایی که مالک آنها هستید یا مجوز کتبی دارید. پویش پورت سامانهی دیگران بدون اجازه در بسیاری از حوزههای قضایی مسئلهساز است. Nmap در لاگها بهروشنی دیده میشود؛ در engagement، محدودهی مجاز باید در قرارداد مشخص باشد.
