nmap
الأداة المرجعية لمسح المنافذ وتحديد الخدمات، وتتضمن محرك سكربتات NSE القوي لاكتشاف الثغرات وتوصيف الأنظمة.
nmap — الدليل الشامل لمسح الشبكات ورسم خرائطها
تُعد أداة nmap الأداة المرجعية والأكثر شهرة في مجال مسح المنافذ (Port Scanning) ورسم خرائط الشبكة (Network Mapping). بفضل محرك النصوص البرمجية الخاص بها (NSE)، لا تقتصر وظيفتها على اكتشاف المنافذ المفتوحة فحسب، بل تمتد لتشمل تحديد بصمات الخدمات، واكتشاف الثغرات الأمنية (CVEs)، وتنفيذ هجمات استغلال محددة الأهداف. إتقان nmap ضروري جداً لكل من الفرق الحمراء (Red Teams) والفرق الزرقاء (Blue Teams).
التثبيت (Install)
خيارات أنماط المسح (Scan-type flags)
| الخيار | النمط | ملاحظات |
|---|---|---|
-sS | مسح TCP SYN | النمط الافتراضي لصلاحيات root، سريع، يعتمد على الاتصال شبه المفتوح (Half-open) |
-sT | مسح TCP connect | يُستخدم عند عدم توفر صلاحيات الوصول للمقابس الخام (Raw Sockets) |
-sU | مسح UDP | بطيء؛ يفضل استخدامه مع قوائم منافذ قصيرة |
-sN / -sF / -sX | مسح Null / FIN / Xmas | تقنيات متقدمة لاكتشاف بصمة نظام التشغيل |
-sA | مسح ACK | لاكتشاف قواعد الجدار الناري (تحديد ما إذا كان المنفذ مفلتراً أم لا) |
-sW | مسح Window | تنويع لمسح ACK |
-sM | مسح Maimon | يعتمد على أخطاء في معايير RFC للتخفي |
-sY / -sZ | مسح SCTP INIT/COOKIE | مخصص لقطاع الاتصالات |
-sO | مسح بروتوكول IP | يحدد البروتوكولات التي يدعمها المضيف (TCP, UDP, ICMP, ESP) |
-sL | مسح القائمة (List scan) | تحليل العناوين فقط دون إرسال حزم فحص |
-sP / -sn | فحص Ping / بدون منافذ | لاكتشاف المضيفين النشطين فقط (Host Discovery) |
تحديد المنافذ (Port specification)
| الخيار | المعنى |
|---|---|
-p 22 | منفذ واحد فقط |
-p 22,80,443 | منافذ متعددة |
-p 1-65535 / -p- | النطاق الكامل (بطيء لكنه شامل جداً) |
-p T:80,U:53 | دمج بروتوكولات مختلفة |
--top-ports 1000 | أشهر 1000 منفذ (الخيار الافتراضي إذا لم يتم تحديد -p) |
-F | أشهر 100 منفذ (المسح السريع) |
-r | مسح متسلسل (بدون عشوائية) |
السرعة والتوقيت (Speed / timing)
| الخيار | السرعة | متى يُستخدم |
|---|---|---|
-T0 | Paranoid | لتجاوز أنظمة اكتشاف الاختراق (IDS)، يستغرق أياماً للمضيف الواحد |
-T1 | Sneaky | للتخفي (Stealth) |
-T2 | Polite | لتقليل الضغط على الشبكة |
-T3 | Normal | النمط الافتراضي (مناسب للشبكات المحلية) |
-T4 | Aggressive | يُستخدم في معظم المهام الرسمية لسرعته |
-T5 | Insane | للمختبرات (Lab) وتحديات CTF فقط |
إعدادات مخصصة: --min-rate 5000 (أقل معدل للحزم), --max-retries 2, --host-timeout 5m.
اكتشاف الخدمات ونظام التشغيل (Service / OS detection)
| الخيار | الغرض منه |
|---|---|
-sV | فحص لافتات الخدمة (Banners) ← تحديد المنتج والإصدار |
--version-intensity 0..9 | كثافة الفحص: زيادة الدقة تتطلب وقتاً أطول |
-O | اكتشاف بصمة نظام التشغيل (يتطلب root ومنفذ مفتوح وآخر مغلق) |
-A | اختصار يجمع بين: -sV -O --traceroute -sC |
محرك النصوص البرمجية (NSE)
| الخيار | الغرض منه |
|---|---|
-sC | تشغيل النصوص البرمجية الافتراضية الآمنة |
--script <name> | تشغيل نصوص محددة (يدعم استخدام النماذج/Globs) |
--script-args | تمرير وسطاء (Arguments) للنصوص |
--script-help <name> | عرض المساعدة الخاصة بنص معين |
فئات النصوص المفيدة: default, safe, discovery, auth, vuln, exploit, intrusive, dos, brute.
تنسيقات المخرجات (Output)
| الخيار | التنسيق |
|---|---|
-oN | نص عادي (Normal) |
-oG | قابل للبحث (Grepable) - سطر واحد لكل مضيف |
-oX | XML (يسهل تحليله بواسطة أدوات أخرى) |
-oA <basename> | إنتاج الثلاثة تنسيقات معاً |
--reason | عرض سبب تصنيف حالة المنفذ |
--open | عرض المنافذ المفتوحة فقط |
--packet-trace | سجل كامل لكل حزمة (لأغراض استكشاف الأخطاء فقط) |
خيارات التخفي وتجاوز الجدران النارية (Stealth / firewall flags)
| الخيار | الوظيفة |
|---|---|
-Pn | تخطي اكتشاف المضيف (الافتراض أنه نشط). مفيد للجدران النارية التي تمنع حزم ICMP |
-n | عدم إجراء بحث عكسي لأسماء النطاقات (No DNS lookup) |
-D <decoys> | استخدام عناوين IP وهمية (Decoys) للتمويه |
-S <ip> | انتحال عنوان IP المصدر (يعمل فقط إذا كان مسار العودة متاحاً) |
-e <iface> | تحديد واجهة الشبكة |
-g <port> / --source-port | تحديد منفذ المصدر (استخدام 53 أو 88 قد يتجاوز بعض قواعد ACLs) |
--data-length 50 | إضافة بيانات حشو للحزم |
--badsum | إرسال حزم بـ Checksum خاطئ (لاكتشاف أنظمة الفلترة) |
-f / --mtu | تجزئة الحزم (Fragmentation) |
--proxies <list> | استخدام سلاسل وكيل (Proxies) - للمسح بنمط TCP فقط |
--ttl <n> | تحديد عمر الحزمة (TTL) بشكل مخصص |
--randomize-hosts | عشوائية ترتيب المضيفين المستهدفين |
--spoof-mac <addr> | انتحال عنوان MAC (للشبكات المحلية فقط) |
سير العمل (Workflows)
الاستطلاع الخارجي القياسي (Standard external recon)
يتم تحليل النتائج لاحقاً باستخدام: searchsploit -nmap أو nuclei -l.
مسح الشبكة الداخلية لنطاق /24
اكتشاف الثغرات المستهدفة
فحص UDP — البطيء ولكن المهم
تجاوز أنظمة كشف التسلل (IDS evasion)
تفسير المخرجات (Output Classification)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.21.6
443/tcp open ssl/http nginx 1.21.6
3389/tcp open ms-wbt-server Microsoft Terminal Services
open: الخدمة استجابت.closed: المضيف استجاب بـ RST (المنفذ مغلق).filtered: لا يوجد استجابة (غالباً بسبب جدار ناري).open|filtered: حالة غامضة (شائعة في مسح UDP).
الأخطاء الشائعة وحلولها (Bad output / fixes)
| العرض | السبب المحتمل | الحل |
|---|---|---|
جميع المنافذ filtered | جدار ناري يمنع الحزم | استخدم -Pn؛ تأكد من عنوان IP؛ جرب -sA لفهم قواعد ACL |
Host seems down | منع حزم ICMP | استخدم -Pn |
اكتشاف الخدمة كـ tcpwrapped | تم التعرف على بصمة الخدمة لكنها ترفض الاتصال | حاول بزيادة الكثافة --version-intensity 9 |
Service Info: OS: Linux فقط | لافتة الخدمة غير كافية | أضف -A أو نصوص NSE مخصصة |
| المسح بطيء جداً | مسح UDP، نطاق كامل، أو توقيت منخفض | قلل UDP، استخدم --min-rate أو -T4 |
| إصدار مضلل (مثلاً nginx يظهر كـ Apache) | تمويه اللافتة أو وجود WAF | تحقق باستخدام أدوات أخرى مثل httpx أو whatweb |
Failed to resolve | مشكلة في مزود DNS | حدد مزوداً آخر عبر --dns-servers 1.1.1.1 |
منظور المدافع الأمني (Defender's Perspective)
يمكن للمدافعين ملاحظة: دفعات كبيرة من حزم SYN من عنوان واحد عبر منافذ متعددة، حزم فحص ICMP، وخيارات TCP الخاصة ببصمات الخدمات. أفكار للاكتشاف:
- قواعد IDS: استخدام Suricata لاكتشاف أنماط مسح Xmas أو Null.
- عتبات مسح المنافذ (Thresholds): برمجة الجدران النارية لحظر المصدر بعد تجاوز عدد معين من المنافذ في الثانية.
- منافذ الأفخاخ (Honeypots): مثل Canary أو T-Pot، حيث يعتبر أي اتصال بها مشبوهاً.
أمن العمليات (OPSEC)
- الإعداد الافتراضي لـ
nmapصاخب جداً. استخدام-T4 -sSسيكتشف في ثوانٍ بواسطة أنظمة IDS الحديثة. - في العمليات الحقيقية، قم بتقسيم المسح: مضيف للاكتشاف، وآخر لتحديد الخدمات، وثالث لتشغيل النصوص البرمجية.
- استخدام Tor مع proxychains لا يدعم مسح المقابس الخام (
-sS). استخدم-sTفي هذه الحالة.
الأدوات ذات الصلة (Related tools)
| الأداة | الاستخدام |
|---|---|
masscan | أسرع بمئات الأضعاف، لكن بدون اكتشاف للخدمات |
naabu | بديل مكتوب بلغة Go، سريع ومخرجاته منظمة |
rustscan | ماسح TCP سريع جداً يمرر النتائج لـ nmap |
nuclei | فحص الثغرات بناءً على القوالب بعد اكتشاف المنافذ |
nmap-formatter | تحويل مخرجات XML إلى HTML أو Markdown |
vulscan / vulners | ربط إصدارات الخدمات بالثغرات المعروفة (CVEs) |