TOOLS

تست نفوذ با Nmap: نقش واقعی آن در ارزیابی برنامه‌های وب

امیر پیامنی
امیر پیامنی
کارشناس تست نفوذ شبکهبازبینی: ۲۵ مرداد ۱۴۰۵
۴ اردیبهشت ۱۴۰۵ ۷ دقیقه مطالعه

Nmap ابزار استاندارد کشف میزبان و پورت است و نسخه‌ی جاری آن 7.991 (منتشرشده در ۶ اوت ۲۰۲۶) است. اما در محتوای فارسی مرتب چیزی معرفی می‌شود که نیست: اسکنر آسیب‌پذیری برنامه‌های وب. Nmap به شما می‌گوید چه سرویسی روی چه پورتی گوش می‌دهد و احتمالاً چه نسخه‌ای است — و همین. در یک تست نفوذ برنامه‌ی وب، نقش آن دقیق و محدود است: پیدا کردن سرویس‌های HTTP روی پورت‌های غیراستاندارد و انگشت‌نگاری سرویس. این مقاله همان نقش محدود اما ضروری را توضیح می‌دهد.

در یک نگاه

  • Nmap ابزار کشف میزبان، پورت و سرویس است؛ اسکنر آسیب‌پذیری برنامه‌ی وب نیست و هرگز نبوده.
  • ارزش اصلی آن در تست وب: کشف پورت‌های HTTP غیراستاندارد مانند 8080، 8443، 8000 و 9000 که در فهرست دارایی تیم توسعه نیستند.
  • اسکریپت‌های http-* در NSE جایگزین ضعیفی برای یک اسکنر واقعی‌اند؛ اما اسکریپت‌های TLS آن کاربردی و دقیق‌اند.
  • اسکن بدون مجوز کتبی مالک سامانه، دسترسی غیرمجاز محسوب می‌شود؛ الگوهای زمان‌بندی تهاجمی هم می‌توانند سرویس شکننده را از کار بیندازند.

Nmap چیست و چه چیزی نیست؟

Nmap (Network Mapper) بسته‌های شبکه می‌سازد و از پاسخ‌ها نتیجه‌گیری می‌کند: کدام میزبان زنده است، کدام پورت باز، بسته یا فیلترشده است، و چه سرویسی روی آن پورت پاسخ می‌دهد. با موتور اسکریپت‌نویسی خود (NSE) می‌تواند بررسی‌های تکمیلی هم انجام دهد. مجوز آن استاندارد GPL نیست بلکه پروانه‌ی اختصاصی خود پروژه (NPSL) است — نکته‌ای که هنگام بازتوزیع ابزار اهمیت دارد.

باور غلط رایج

«با Nmap آسیب‌پذیری‌های سایت را پیدا می‌کنیم.» Nmap در لایه‌ی شبکه و سرویس کار می‌کند و از منطق برنامه هیچ درکی ندارد. مهم‌ترین دسته‌ی آسیب‌پذیری وب — کنترل دسترسی شکسته که در OWASP Top 10:2025 رتبه‌ی یک است — با درخواست‌های کاملاً معتبر HTTP رخ می‌دهد و از دید Nmap اصلاً وجود ندارد. همین برای IDOR، باگ‌های منطق کسب‌وکار و شرایط مسابقه صادق است.

پس جای درست Nmap در جریان کار این است: مرحله‌ی شناسایی و کشف دارایی، پیش از آغاز آزمون لایه‌ی برنامه.

مفاهیم پایه‌ی اسکن

پرکاربردترین سوئیچ‌ها و معنای دقیقشان:

سوئیچکارنکته
-sSاسکن نیمه‌باز TCPنیازمند دسترسی ریشه برای ساخت بسته‌ی خام
-sTاسکن با اتصال کامل TCPبدون دسترسی ریشه کار می‌کند؛ پرسروصداتر در لاگ سرویس
-sVتشخیص سرویس و نسخهمهم‌ترین سوئیچ برای کار وب
-p-همه‌ی ۶۵۵۳۵ پورتبدون این، پورت‌های غیرمتعارف دیده نمی‌شوند
-Pnصرف‌نظر از مرحله‌ی کشف میزبانبرای میزبان‌هایی که به ping پاسخ نمی‌دهند
-sCاجرای اسکریپت‌های پیش‌فرض NSEخروجی مفید اما سطحی
-oAذخیره‌ی خروجی در سه قالببرای مستندسازی و پردازش بعدی ضروری
-T0 تا -T5الگوی زمان‌بندیمقادیر بالا سریع‌اند اما هم پرسروصدا و هم خطرناک

یک اسکن کشف متعارف روی دارایی‌هایی که مجوز آن‌ها را دارید:

nmap -sV -p- --open -oA discovery 203.0.113.10

خروجی این دستور پایه‌ی همه‌ی کارهای بعدی است، چون تعیین می‌کند اصلاً چند سرویس HTTP در دامنه وجود دارد.

نقش Nmap در یک تست نفوذ وب

سه کاربرد مشخص و ارزشمند وجود دارد و بیرون از این سه، انتظار بیشتری از Nmap نداشته باشید.

۱. کشف برنامه‌های وبِ فراموش‌شده

پرتکرارترین یافته‌ی این مرحله، پنل‌های مدیریتی، محیط‌های آزمایشی و داشبوردهای پایشی هستند که روی پورت‌هایی مثل 8080، 8443، 8000، 9000 یا 3000 منتشر شده‌اند و در فهرست دارایی هیچ‌کس نیستند. این‌ها معمولاً وصله‌نشده‌اند و اعتبارنامه‌ی پیش‌فرض دارند. سرویسی که هیچ‌کس نمی‌داند وجود دارد، هیچ‌وقت تست هم نشده است.

۲. انگشت‌نگاری سرویس و نسخه

دانستن این‌که وب‌سرور، موتور برنامه یا میان‌افزار چه نسخه‌ای است، دو کار را ممکن می‌کند: جست‌وجوی CVEهای شناخته‌شده‌ی همان نسخه، و انتخاب هوشمندانه‌تر مسیر آزمون. توجه کنید که این خروجی گاهی گمراه‌کننده است — پروکسی معکوس و CDN می‌توانند نسخه‌ی واقعی پشت‌صحنه را پنهان کنند.

۳. بررسی پیکربندی TLS

اسکریپت‌های ssl-enum-ciphers و ssl-cert از بهترین بخش‌های NSE هستند و به‌سرعت وضعیت نسخه‌های پروتکل، مجموعه‌رمزهای مجاز و اطلاعات گواهی را می‌دهند:

nmap -p 443 --script ssl-enum-ciphers,ssl-cert app.example.com

ملاک ارزیابی خروجی این دستور در دانشنامه زیر TLS شرح داده شده است — به‌ویژه این‌که در وضعیت جاری استانداردها، مجموعه‌رمزهای RSA ایستا و خانواده‌ی FFDHE در TLS 1.2 کنار گذاشته شده‌اند.

محدودیت‌های NSE و مرز اتوماسیون

موتور NSE چند صد اسکریپت دارد و بخشی از آن‌ها با پیشوند http- سراغ برنامه‌های وب می‌روند: http-title، http-methods، http-enum، http-security-headers و مانند آن. این‌ها برای یک نگاه سریع مفیدند، اما باید انتظار درستی از آن‌ها داشت:

  • عمق آن‌ها با یک اسکنر واقعی قابل مقایسه نیست. برای پوشش خودکار، Nuclei یا اسکنر Burp انتخاب درست‌تری است.
  • هیچ‌کدام احراز هویت را مدیریت نمی‌کنند، یعنی بخش پشت لاگین — که مهم‌ترین بخش هر برنامه است — بررسی نمی‌شود.
  • هیچ درکی از برنامه‌های تک‌صفحه‌ای و رندر سمت کلاینت ندارند.
  • نرخ مثبت کاذب در برخی اسکریپت‌های شمارش، بالاست.

جریان کار درست این است: Nmap برای کشف، ابزارهای مبتنی بر قالب برای بررسی موارد شناخته‌شده، subfinder و httpx برای گسترش سطح دید در زیردامنه‌ها، و سپس Burp Suite برای کار دستی که یافته‌های جدی از آن بیرون می‌آید. مقایسه‌ی این ابزارها در ابزارهای تست نفوذ آمده است.

هشدار مجوز و ملاحظات عملیاتی

پیش از هر اسکن

اسکن پورت روی سامانه‌ای که مالک آن نیستید و مجوز کتبی آن را ندارید، در قانون جرائم رایانه‌ای ایران و در بیشتر نظام‌های حقوقی مصداق دسترسی و دستکاری غیرمجاز است. حتی اسکن «بی‌آزار» هم مصداق آزمون بدون اجازه است. مجوز باید مکتوب، دارای دامنه‌ی مشخص، بازه‌ی زمانی و شخص تماس اضطراری باشد — همان چیزی که در قرارداد تست نفوذ تعریف می‌شود.

سه ملاحظه‌ی عملیاتی که تازه‌کارها نادیده می‌گیرند:

  • خطر پایداری: اسکن کامل پورت با الگوی زمان‌بندی تهاجمی می‌تواند تجهیزات قدیمی، چاپگرهای شبکه و سرویس‌های شکننده را از کار بیندازد. در محیط عملیاتی، محافظه‌کارانه شروع کنید.
  • قابل شناسایی بودن: اسکن پورت یکی از واضح‌ترین الگوها برای سامانه‌های تشخیص نفوذ است. اگر هدف ارزیابی، سنجش توان تشخیص تیم امنیت است، این خودش بخشی از سنجه محسوب می‌شود — موضوعی که در IDS و IPS بحث شده.
  • ثبت کامل: خروجی هر اسکن با زمان دقیق ذخیره شود. اگر در بازه‌ی تست اختلالی رخ دهد، این سوابق تنها راه اثبات این است که چه چیزی کار شما بوده و چه چیزی نبوده.

پس از پایان کشف، کار واقعی روی برنامه‌ها آغاز می‌شود: مسیر ادامه در راهنمای تست نفوذ وب و برای ارزیابی زیرساخت در تست نفوذ شبکه توضیح داده شده. سرویس تخصصی ما هم تست نفوذ برنامه‌های وب است.

پرسش‌های متداول

آیا Nmap می‌تواند آسیب‌پذیری سایت را پیدا کند؟

خیر، نه به معنای واقعی. Nmap سرویس و نسخه را کشف می‌کند و با اسکریپت‌های NSE برخی موارد سطحی مثل هدرهای امنیتی یا متدهای HTTP را بررسی می‌کند. آسیب‌پذیری‌های منطقی و کنترل دسترسی — که مهم‌ترین دسته‌ها هستند — کاملاً بیرون از توان آن‌اند.

اسکن کامل پورت با Nmap چقدر طول می‌کشد؟

به تعداد میزبان‌ها، شرایط شبکه و الگوی زمان‌بندی بستگی دارد و می‌تواند از چند دقیقه برای یک میزبان تا چند ساعت برای یک محدوده‌ی بزرگ متغیر باشد. رویه‌ی حرفه‌ای این است که ابتدا پورت‌های رایج اسکن شوند تا کار موازی آغاز شود، و اسکن کامل در پس‌زمینه ادامه پیدا کند.

آیا اسکن با Nmap قابل تشخیص است؟

بله، به‌راحتی. اسکن پورت الگوی ترافیکی واضحی دارد و در لاگ فایروال و سامانه‌های تشخیص نفوذ ثبت می‌شود. تلاش برای مخفی‌سازی آن در یک ارزیابی مجاز معمولاً بی‌مورد است، مگر آن‌که سنجش توان تشخیص، خودش بخشی از هدف تست باشد.

تفاوت اسکن پورت با تست نفوذ چیست؟

اسکن پورت یک مرحله‌ی کشف است که می‌گوید چه چیزی در معرض دید است. تست نفوذ شامل تحلیل، حذف مثبت کاذب، اثبات عملی، سنجش اثر و ارائه‌ی راهکار رفع می‌شود. تفکیک کامل این دو در ارزیابی امنیتی توضیح داده شده است.

چرا Nmap پورت‌هایی را «filtered» گزارش می‌کند؟

یعنی پاسخ روشنی نرسیده و احتمالاً یک فایروال یا فهرست کنترل دسترسی بسته‌ها را دور می‌ریزد. این وضعیت با «بسته» متفاوت است: در حالت بسته، سیستم صریحاً رد اتصال اعلام می‌کند. تفسیر درست این تفاوت، بخشی از خواندن حرفه‌ای خروجی اسکن است.

امیر پیامنی
WRITTEN BY

امیر پیامنی

کارشناس تست نفوذ شبکه

شکارچی ضعف‌های زیرساخت؛ از نقشه‌برداری سطح حمله تا بهره‌برداری از سرویس‌های شبکه و حرکت جانبی داخل دامنه.

PENTEST

ابزارهای تست نفوذ: معرفی و راهنمای انتخاب

ادامه مطلب ←
PENTEST

تست نفوذ شبکه چیست؟ راهنمای کامل

ادامه مطلب ←
PENTEST

آموزش تست نفوذ با کالی لینوکس

ادامه مطلب ←