U3F1ZWV6ZTMzMTkwMjE4MjEyNjg2X0ZyZWUyMDkzOTI1OTYzNTI4NA==

شرح ضخم عن أداة nmap

📖 كل شيء عن أداة Nmap: من المبتدئ إلى الاحتراف – بقلم محمد المختار الحسن البكاي

بسم الله الرحمن الرحيم، والصلاة والسلام على رسول الله. في هذا الدليل الضخم، سنكشف الستار عن واحدة من أقوى أدوات الأمن السيبراني واختبار الاختراق على الإطلاق: Nmap. هذه الأداة ليست مجرد ماسح منافذ، بل تعتبر سكينًا متعدد الوظائف في يد أي خبير سيبراني، تتيح لك استكشاف الشبكات، فحص الأنظمة، تحليل الخدمات، واكتشاف الثغرات ببراعة.

🔍 مقدمة تعريفية شاملة عن أداة Nmap

Nmap، اختصار لـ Network Mapper، هي أداة مفتوحة المصدر تُستخدم لاكتشاف الأجهزة والخدمات على الشبكة. بدأت كمشروع صغير لفحص المنافذ، وتطورت لتصبح أداة كاملة للتحليل الشبكي، تشمل دعمًا لمحرك سكربتات قوي (NSE)، واكتشاف أنظمة التشغيل، والتحايل على الجدران النارية، وتوليد تقارير متعددة التنسيقات.

👤 من هو مطورها ولماذا هي مهمة؟

تم تطوير Nmap على يد Gordon Lyon المعروف بالاسم المستعار Fyodor، وهو من أوائل الباحثين في أمن الشبكات. تتميز الأداة بأهميتها لأنها تُستخدم من قبل الآلاف من مسؤولي الشبكات والباحثين الأمنيين، وتُعد جزءًا لا يتجزأ من توزيعات لينكس الأمنية مثل Kali وParrot، كما تُستخدم في اختبارات الأمن على الأنظمة الحقيقية في الشركات الكبرى.

🧠 حالات استخدام Nmap

  • 🎯 فحص الأجهزة النشطة داخل شبكة.
  • 🔐 اكتشاف الثغرات والخدمات المعرضة للهجوم.
  • 🛰️ التحقق من البنية التحتية للشبكات.
  • 📡 اكتشاف أنظمة التشغيل والخدمات.
  • 📊 تحليل التغيرات بين نتائج الفحص عبر الزمن (مع أداة Ndiff).
  • 📂 استخدام سكربتات الأمن لاكتشاف ثغرات معروفة.
  • 🔁 فحص أوتوماتيكي للشبكات ضمن جدران الحماية أو NAT.

💾 كيفية تثبيت Nmap

🔧 على Linux (Debian/Ubuntu)

sudo apt update && sudo apt install nmap

🖥️ على Windows

1. قم بتحميل الأداة من الموقع الرسمي: nmap.org/download
2. ثبّت ملف الـ EXE واتبع التعليمات. غالبًا ما تتوفر الأداة أيضًا مع Zenmap (واجهة رسومية).

🍏 على macOS

brew install nmap

🚀 الفهم الكامل لطرق الفحص (Scan Types)

فيما يلي أهم أنواع الفحص التي يدعمها Nmap، وكل نوع له وظيفة محددة:

نوع الفحص الأمر الوظيفة
TCP SYN Scan -sS يُرسل حزم SYN ويقرأ الرد لتحديد حالة المنفذ دون إكمال الاتصال.
TCP Connect -sT ينفذ اتصال TCP كامل. يستخدم في حال عدم توفر صلاحيات root.
UDP Scan -sU يفحص منافذ UDP المفتوحة. بطيء ولكنه مفيد لاكتشاف خدمات مثل DNS وSNMP.
Ping Scan -sn يُستخدم لاكتشاف الأجهزة النشطة دون فحص المنافذ.
Null, FIN, Xmas Scans -sN / -sF / -sX تفحص النظام دون حزم TCP المعتادة، لمحاولة تجاوز الجدران النارية.
SCTP Scans -sY / -sZ مخصصة لبروتوكول SCTP. نادرة الاستخدام.
ACK Scan -sA يُستخدم لاكتشاف الجدران النارية وتحديد القواعد المسموح بها.
IP Protocol Scan -sO يُظهر البروتوكولات المستخدمة، مثل ICMP, TCP, UDP...
ARP Scan -PR يُستخدم على الشبكات المحلية لاكتشاف الأجهزة بسرعة.

👉 في الأجزاء التالية، سنشرح كل أمر على حدة مع أمثلة واقعية، وننتقل بعدها إلى أوامر تحديد المنافذ، البروتوكولات، خيارات التخفي، والـ NSE بالكامل.

📌 التعامل مع المنافذ – خيارات الفحص باستخدام -p و -F و --top-ports

من أهم الأمور التي يجب فهمها عند استخدام Nmap هي تحديد المنافذ التي تريد فحصها. بشكل افتراضي، Nmap يفحص أول 1000 منفذ شائع، لكن يمكنك تخصيص ذلك يدويًا باستخدام عدة خيارات قوية.

الخيار الوصف مثال
-p تحديد مجموعة منافذ معينة يدويًا.
nmap -p 21,22,80 192.168.1.1
-p- فحص جميع المنافذ من 1 إلى 65535.
nmap -p- 192.168.1.1
-F فحص سريع باستخدام قائمة مختصرة لأكثر المنافذ شيوعًا.
nmap -F 192.168.1.1
--top-ports فحص أعلى عدد محدد من المنافذ الأكثر استخدامًا.
nmap --top-ports 100 192.168.1.1
--port-ratio فحص المنافذ التي تظهر على نسبة معينة من الأجهزة.
nmap --port-ratio 0.01 192.168.1.1

📦 تحديد البروتوكولات يدويًا

بشكل افتراضي، Nmap يفترض أن الفحص يتم على TCP. لتحديد بروتوكولات أخرى مثل UDP أو SCTP، استخدم الخيارات التالية:

  • -sT: لفحص TCP الكامل.
  • -sU: لفحص منافذ UDP.
  • -sY: لفحص بروتوكول SCTP.
  • -sO: لفحص البروتوكولات على مستوى IP.

📘 مثال لفحص TCP + UDP:

nmap -sS -sU -p T:80,443,U:53,161 192.168.1.1

⏱️ خيارات التوقيت Timing – Stealth – سرعة الفحص

Nmap يسمح لك بضبط توقيت وسرعة الفحص عبر خيارات Time Templates من T0 إلى T5:

الخيار الاسم الوصف
-T0 Paranoid بطيء جدًا، لتجنب كشف IDS.
-T1 Sneaky بطيء لكن أكثر عملية من T0.
-T2 Polite يُبطئ الفحص لحفظ عرض النطاق.
-T3 Normal الخيار الافتراضي.
-T4 Aggressive سريع. مناسب للاتصالات الجيدة.
-T5 Insane سريع جدًا. غير موصى به إلا في ظروف خاصة.

📘 مثال لفحص TCP سريع:

nmap -sS -T4 192.168.1.1

في الأجزاء القادمة: سنتناول خيارات التخفي والتحايل على الجدران النارية (Bypass Firewalls)، ثم ننتقل إلى اكتشاف أنظمة التشغيل، كشف إصدارات الخدمات، والسكربتات الأمنية NSE بالتفصيل.

🛡️ التحايل على الجدران النارية وأنظمة كشف التسلل (IDS)

من التحديات التي تواجه الفاحص الأمني أن يتم اكتشافه من قبل IDS أو أن يُمنع من الوصول بسبب الجدران النارية (Firewalls). Nmap يوفر مجموعة من الخيارات لتجاوز هذه الحواجز أو تضليلها:

الخيار الوصف مثال
--source-port تحديد منفذ المصدر يدويًا لتجاوز الفلاتر.
nmap --source-port 53 192.168.1.1
--data-length إضافة بيانات وهمية لحزم الفحص.
nmap --data-length 25 192.168.1.1
--spoof-mac انتحال عنوان MAC لجهاز آخر.
nmap --spoof-mac Apple 192.168.1.1
--badsum إرسال حزم TCP خاطئة لاختبار IDS.
nmap --badsum 192.168.1.1
--ttl تحديد قيمة TTL لتجاوز التصفية.
nmap --ttl 65 192.168.1.1

🧬 اكتشاف نظام التشغيل (OS Detection)

تحديد نظام تشغيل الهدف أمر ضروري لتخصيص الهجمات وتحليل البيئة بدقة. Nmap يوفر ذلك باستخدام الخيار -O، والذي يعتمد على تحليل ردود TCP/IP الخاصة بالجهاز.

nmap -O 192.168.1.1

لمزيد من الدقة، يُفضل استخدامه مع -sS و -Pn و -T4 كما يلي:

nmap -sS -Pn -T4 -O 192.168.1.1

🎯 تحسين دقة الكشف:

  • استخدم نطاقات IP معروفة.
  • استخدم مع الأمر --osscan-guess للمساعدة بالتخمين.
  • نتائج OS قد تكون تقريبية، حسب الحماية أو إصدار النظام.

🧪 اكتشاف إصدارات الخدمات (Version Detection)

يساعدك الخيار -sV في معرفة الإصدارات الدقيقة للخدمات التي تعمل على المنافذ مثل HTTP وSSH وFTP وغيرها.

nmap -sV 192.168.1.1

لتحسين النتائج:

  • استخدمه مع -p لتحديد المنافذ المستهدفة.
  • استخدم --version-intensity (من 0 إلى 9) للتحكم بعمق الفحص.
  • استخدم --version-trace لرؤية خطوات التحليل.
nmap -sV --version-intensity 9 192.168.1.1

🧠 تُستخدم هذه النتائج في ربط الخدمات المعروفة مع الثغرات المحتملة (مثل CVEs)، كما تُستخدم في تقارير الفحص النهائي للمؤسسات.

⬅️ في الجزء القادم: سنتناول الفحص بالسكربتات -sC و --script، ونبدأ بالغوص في محرك السكربتات NSE وأمثلة عملية لكل نوع.

🧠 الفحص بالسكربتات - Nmap Scripting Engine (NSE)

من أقوى ميزات Nmap هي محرك السكربتات NSE، الذي يسمح بفحصات ذكية ومعمقة مثل اكتشاف الثغرات، فحص كلمات المرور الافتراضية، التحقق من الإعدادات الأمنية، والمزيد.

🔹 الفرق بين -sC و --script

الخيار الوظيفة
-sC يشغّل السكربتات الافتراضية الموصى بها، غالبًا ما تكون آمنة وسريعة.
--script يسمح لك بتحديد سكربتات معينة أو فئات منها مثل vuln أو brute أو discovery.
nmap -sV -sC 192.168.1.1
nmap --script vuln 192.168.1.1

📂 أنواع سكربتات Nmap حسب التصنيف

  • auth: للتحقق من إعدادات المصادقة (مثل SSH، SNMP).
  • brute: لتجريب كلمات المرور القوية (Brute-force).
  • vuln: لكشف الثغرات الأمنية.
  • default: مجموعة سكربتات آمنة تُستخدم مع -sC.
  • discovery: لاكتشاف الخدمات والمضيفين.
  • safe: سكربتات لا تؤثر على الهدف.
  • intrusive: سكربتات عدوانية يجب استخدامها بحذر.
  • malware: تبحث عن مؤشرات إصابة بالبرمجيات الخبيثة.

🔍 أمثلة عملية حسب الفئة

📛 اكتشاف ثغرات - فئة vuln

nmap -p 80 --script vuln 192.168.1.1

يفحص المنافذ بحثًا عن ثغرات مثل SQL Injection أو Heartbleed.

🔑 تجربة كلمات المرور - فئة brute

nmap -p 22 --script ssh-brute 192.168.1.1

يحاول تسجيل الدخول إلى SSH باستخدام قاعدة بيانات كلمات مرور.

🕵️ اكتشاف الخدمات - فئة discovery

nmap --script broadcast-dhcp-discover

يكتشف خوادم DHCP النشطة على الشبكة.

📜 التحقق من المستخدمين - فئة auth

nmap --script snmp-brute -p 161 192.168.1.1

📂 تشغيل سكربتات متعددة أو معينة

nmap --script "vuln,default,ssh-brute,http-title" 192.168.1.1

🔍 عرض تفاصيل أي سكربت قبل استخدامه

nmap --script-help http-title

📁 موقع السكربتات الافتراضية في النظام

/usr/share/nmap/scripts/

يمكنك فتح أي سكربت بامتداد .nse لتعديله أو دراسة بنيته.

✍️ كيف تكتب سكربت Nmap خاص بك؟

تُكتب السكربتات بلغة Lua، وتتكون من الأقسام التالية:

  • description: شرح ما يقوم به السكربت.
  • portrule: متى يُشغّل السكربت (على أي منفذ).
  • action: الوظيفة الأساسية التي ينفذها السكربت.
-- مثال سكربت بسيط
description = [[
  يفحص وجود صفحة index.html
]]

portrule = function(host, port)
  return port.protocol == "tcp" and port.port == 80
end

action = function(host, port)
  return "تم فحص الصفحة بنجاح"
end

🎓 ستجد الآلاف من السكربتات الجاهزة لاستخدامها أو تعديلها حسب الهدف. سنفهرس أهمها في الأجزاء القادمة.

📥 الجزء التالي: سنغطي تنسيقات الإخراج المختلفة (normal, grepable, XML, JSON) ثم ننتقل لدمج Nmap مع أدوات مثل Metasploit وZenmap وغيرها.

🧾 تنسيقات إخراج Nmap – Output Formats

من الضروري معرفة كيف تُخزّن نتائج Nmap بصيغ مختلفة لتسهيل التحليل، مشاركة النتائج، أو دمجها مع أدوات أخرى مثل Metasploit، Excel، أو ELK.

📄 الإخراج العادي – Normal Output

الصيغة النصية الافتراضية والتي يمكنك حفظها باستخدام -oN

nmap -oN scan.txt 192.168.1.1

🔍 إخراج قابل للبحث – Grepable Output

يُستخدم مع أدوات البحث أو البرمجة (مثل awk, grep).

nmap -oG scan.grep 192.168.1.1

📊 إخراج XML – لـ Metasploit أو برامج التحليل

يسهل استيراده في أدوات مثل Zenmap وMetasploit وNmap Parser.

nmap -oX scan.xml 192.168.1.1

🔧 إخراج JSON – للأدوات الحديثة وأنظمة الـ API

يتطلب دعمًا مدمجًا أو تحويل XML إلى JSON باستخدام أدوات وسيطة.

nmap -oX - 192.168.1.1 | xml2json > scan.json

🛠️ دمج Nmap مع أدوات أخرى

1. 🧨 Metasploit Framework

يمكن استيراد نتائج Nmap بسهولة:

db_import /path/to/scan.xml

ثم استخدام النتائج في الهجمات أو التحليل داخل Metasploit مباشرة.

2. 🧭 Zenmap – الواجهة الرسومية لـ Nmap

تُستخدم لتبسيط الفحص وتحليل النتائج عبر الرسوم البيانية.

  • تسمح بحفظ ملفات XML واستعراضها لاحقًا.
  • تسهل استخدام الأوامر المتقدمة دون كتابتها يدويًا.

3. 🔄 Ndiff – مقارنة نتائج الفحص

تُستخدم لمقارنة ملفي Nmap واكتشاف التغييرات بين فحصين.

ndiff scan1.xml scan2.xml

مفيد جدًا في البيئات التي تتغير فيها الخدمات باستمرار.

4. 📋 Excel أو Google Sheets

يمكن تصدير إخراج grepable أو CSV لتحليل النتائج يدويًا.

cat scan.grep | grep open | awk '{print $2,$3,$4}' > ports.csv

5. ⚙️ أدوات Python لتحليل النتائج

باستخدام مكتبات مثل python-libnmap أو nmap-parser:

pip install python-libnmap

ثم استخدام السكربت لتحليل ملفات XML وتوليد تقارير.

🔎 تنسيقات إخراج متعددة معًا

يمكنك إنتاج أكثر من تنسيق إخراج في نفس الأمر باستخدام:

nmap -oA results 192.168.1.1

سينتج: results.nmap وresults.gnmap وresults.xml

📌 في الجزء التالي: سننتقل إلى شرح أمثلة عملية للفحص في سيناريوهات واقعية، ثم نغوص في الأوامر المتقدمة مثل --reason و--max-rate و--spoof-mac وغيرها.

⚙️ أوامر Nmap المتقدمة – استخدامات احترافية

تُعد هذه الأوامر من أقوى وظائف Nmap وأكثرها تخصيصًا، وتُستخدم لتحسين النتائج، التحكم في الأداء، أو إضافة معلومات تحليلية مفصلة.

📌 --reason – عرض سبب تحديد حالة المنفذ

يعرض السبب وراء وصف المنفذ بأنه مفتوح أو مغلق (مثل الرد بـ SYN/ACK أو ICMP unreachable).

nmap --reason 192.168.1.1

📍 --traceroute – اكتشاف المسار بينك وبين الهدف

يُظهر عدد القفزات والـ hops للوصول إلى الجهاز المستهدف.

nmap --traceroute 192.168.1.1

🔁 --max-retries – الحد الأقصى لمحاولات الإعادة

يقلل عدد المحاولات في حال كانت الشبكة بطيئة أو مقيدة:

nmap --max-retries 2 192.168.1.1

⏱️ --host-timeout – تحديد مهلة لكل مضيف

يتوقف Nmap عن فحص أي جهاز يتجاوز الزمن المحدد.

nmap --host-timeout 60s 192.168.1.1

🚀 --min-parallelism / --max-parallelism

تحديد عدد العمليات المتوازية (Threads) لتحسين الأداء:

nmap --min-parallelism 10 192.168.1.1

🚧 --max-rate – تحديد الحد الأقصى لحزم الفحص بالثانية

يساعد على تجنب الاكتشاف أو التشبع:

nmap --max-rate 100 192.168.1.1

🧢 --spoof-mac – انتحال عنوان MAC

يسمح بانتحال جهاز آخر (مثل Apple أو Cisco أو عنوان مخصص):

nmap --spoof-mac 0A:1B:2C:3D:4E:5F 192.168.1.1

🎯 --data-length – إضافة بيانات وهمية للحزم

يُستخدم للتحايل على أنظمة كشف التسلل:

nmap --data-length 100 192.168.1.1

🧠 --dns-servers – استخدام خوادم DNS مخصصة

nmap --dns-servers 8.8.8.8,1.1.1.1 scanme.nmap.org

💡 --randomize-hosts – عشوائية الترتيب

يمنع الفحص التسلسلي ليبدو عشوائيًا، فيصعب كشفه:

nmap --randomize-hosts -iL targets.txt

🎛️ -iL و -iR – إدخال قائمة أهداف أو عناوين عشوائية

nmap -iL targets.txt
nmap -iR 100

🧪 هذه الأوامر مجتمعة تمنحك قدرة خارقة على تخصيص الفحص والتحكم الكامل في أدق تفاصيله. في الجزء التالي، سنبدأ بأمثلة حقيقية متقدمة لفحص المواقع، السيرفرات، أجهزة IoT، وتحليل النتائج بالتفصيل.

🧪 أمثلة عملية واقعية لفحص الأنظمة باستخدام Nmap

سنستعرض الآن كيفية تنفيذ فحوصات احترافية في بيئات مختلفة مثل المواقع الإلكترونية، الخوادم، وأجهزة إنترنت الأشياء (IoT)، مع تحليل نتائج الفحص.

🌐 فحص موقع إلكتروني: example.com

هدف الفحص: اكتشاف الخدمات والثغرات المحتملة على الموقع.

nmap -sS -sV -O --script vuln example.com

📌 التحليل:

  • عرض المنافذ المفتوحة (80, 443, 21...)
  • تحديد نوع السيرفر (Apache, Nginx...)
  • كشف نظام التشغيل (Linux/Ubuntu...)
  • تشخيص الثغرات المكتشفة عبر سكربتات vuln

🖥️ فحص سيرفر داخل الشبكة: 192.168.1.10

هدف الفحص: تحليل الشبكة الداخلية وفهم التهيئة الأمنية.

nmap -sU -sT -p U:161,T:22,80,443 -sC -sV -O 192.168.1.10

📌 ملاحظات:

  • فحص TCP وUDP في نفس الوقت
  • سكربتات افتراضية للحصول على بيانات سريعة وآمنة
  • كشف إعدادات SNMP أو SSH أو Web

📡 فحص جهاز IoT – كاميرا IP على الشبكة

nmap -sV -O --script default,vuln -p- 192.168.1.20

🎯 الهدف: التأكد من عدم وجود إعدادات خطيرة مثل منافذ Telnet مفتوحة أو واجهات إدارة غير مؤمنة.

🔄 فحص دوري وتحليل التغييرات

nmap -oX scan_01.xml 192.168.1.0/24
nmap -oX scan_02.xml 192.168.1.0/24
ndiff scan_01.xml scan_02.xml

📌 هذا يُظهر التغيرات في الخدمات والمنافذ بين الفحصين، مثل جهاز جديد، منفذ تم فتحه، أو خدمة تم حذفها.

🔍 فحص شامل لمنظمة أو شركة

لشبكة مكونة من عدة نطاقات وأجهزة:

nmap -iL targets.txt -sS -sU -O -sV --script "auth,brute,vuln,discovery" -T4 -oA full-org-scan

📊 هذا الفحص ينتج عنه ثلاث ملفات كاملة: نصي وXML وGrepable لتحليلها لاحقًا أو إدخالها في تقارير احترافية.

🧠 توصيات بعد الفحص:

  • تحليل كل منفذ مفتوح: لماذا هو موجود؟ هل هو ضروري؟
  • تحديث الخدمات التي تم اكتشافها بإصدارات قديمة
  • تغيير كلمات المرور الافتراضية عند كشفها
  • إغلاق المنافذ غير المستخدمة
  • تطبيق جدار ناري وتحسين الحماية على مستوى Layer 3/4

📌 في الجزء التالي: نبدأ إنشاء جدول ضخم يضم كل أوامر Nmap الشائعة والنادرة مرتبة ومنظمة مع وصف مختصر لكل أمر واستخدامه وأمثلة فورية.

📘 جدول شامل لجميع أوامر Nmap – من A إلى Z

هذا الجدول يغطي أكثر من 150 أمر وخيار، بترتيب أبجدي عربي، ويشمل الوصف، الاستخدام، والمثال العملي. سيتم تحديث الجدول تدريجيًا حتى يصل إلى جميع الأوامر المتاحة في `nmap --help` وملحقات المحرك والخيارات المتقدمة.

الأمر الوصف مثال عملي
-A يُفعّل اكتشاف النظام والخدمات والسكربتات وتتبع المسار
nmap -A scanme.nmap.org
-O يكتشف نظام التشغيل للجهاز المستهدف
nmap -O 192.168.1.1
-sS TCP SYN Scan (الفحص الشبح)
nmap -sS 192.168.1.1
-sT TCP Connect Scan (عادي يستخدم مكتبة النظام)
nmap -sT 192.168.1.1
-sU UDP Scan – فحص البروتوكولات غير المتصلة
nmap -sU -p 161 192.168.1.1
-sV اكتشاف إصدار الخدمات
nmap -sV 192.168.1.1
-p تحديد المنافذ يدويًا
nmap -p 22,80,443 192.168.1.1
-p- فحص كل المنافذ (من 1 إلى 65535)
nmap -p- 192.168.1.1
--top-ports فحص أكثر المنافذ شيوعًا
nmap --top-ports 100 192.168.1.1
-F فحص سريع باستخدام قائمة منافذ مختصرة
nmap -F 192.168.1.1
--script تشغيل سكربتات محددة من محرك NSE
nmap --script http-title 192.168.1.1
-sC تشغيل السكربتات الافتراضية
nmap -sC 192.168.1.1
-T0 إلى -T5 ضبط سرعة الفحص (0 = بطيء جدًا، 5 = عدواني)
nmap -T4 192.168.1.1
--reason عرض سبب تحديد كل منفذ
nmap --reason 192.168.1.1
--open إظهار المنافذ المفتوحة فقط
nmap --open 192.168.1.1
--traceroute إظهار مسار الشبكة إلى الهدف
nmap --traceroute 192.168.1.1
--badsum إرسال حزم خاطئة لاختبار IDS
nmap --badsum 192.168.1.1
--spoof-mac تغيير عنوان MAC أثناء الفحص
nmap --spoof-mac Cisco 192.168.1.1

📌 في الجزء القادم: نكمل الجدول الضخم ليشمل كل الأوامر المتبقية، بما فيها `--min-rate`, `--max-retries`, `--ttl`, `--defeat-rst-ratelimit`, `--host-timeout`، وأوامر الشبكات الداخلية والتحكم الكامل في الـ TCP/IP.

📘 جدول أوامر Nmap المتقدمة والنادرة – تكملة

الأمر الوصف مثال عملي
--min-rate أدنى معدل إرسال حزم في الثانية، يسرّع الفحص إذا كانت الشبكة مستقرة.
nmap --min-rate 1000 192.168.1.1
--max-retries أقصى عدد محاولات إعادة إرسال الحزم قبل التخلي.
nmap --max-retries 2 192.168.1.1
--ttl تحديد قيمة Time To Live (TTL) للحزم المرسلة.
nmap --ttl 64 192.168.1.1
--defeat-rst-ratelimit تجاوز قيود إعادة الإرسال (RST) على بعض الأنظمة.
nmap --defeat-rst-ratelimit 192.168.1.1
--host-timeout تحديد مهلة زمنية لفحص كل مضيف.
nmap --host-timeout 30s 192.168.1.1
--source-port تعيين منفذ المصدر للحزم المرسلة (لتجاوز جدران الحماية).
nmap --source-port 53 192.168.1.1
--exclude استبعاد مضيفين أو نطاقات من الفحص.
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.10
--excludefile استبعاد قائمة مضيفين من ملف نصي.
nmap -iL targets.txt --excludefile exclude.txt
--send-eth إرسال الحزم مباشرة عبر Ethernet بدلاً من IP (لشخصيات متقدمة).
nmap --send-eth 192.168.1.1
--data-length إضافة بيانات زائدة للحزم لتجاوز أنظمة كشف التسلل.
nmap --data-length 50 192.168.1.1
--dns-servers تعيين خوادم DNS مخصصة للفحص.
nmap --dns-servers 8.8.8.8,1.1.1.1 scanme.nmap.org
--randomize-hosts عشوائية ترتيب المضيفين في الفحص لتفادي الاكتشاف.
nmap --randomize-hosts -iL targets.txt
-iL قراءة قائمة أهداف من ملف نصي.
nmap -iL targets.txt
-iR فحص عناوين IP عشوائية بعدد محدد.
nmap -iR 100
--bpf-filter تطبيق فلاتر Berkeley Packet Filter على الحزم المرسلة والمستقبلة.
nmap --bpf-filter "tcp and port 80" 192.168.1.1
--reason عرض سبب تغيير حالة المنفذ (مفتوح، مغلق...)
nmap --reason 192.168.1.1
--version-intensity تحديد شدة فحص إصدارات الخدمات من 0 (أقل) إلى 9 (أكثر دقة).
nmap -sV --version-intensity 5 192.168.1.1
--script-trace تتبع تشغيل السكربتات لعرض التفاصيل أثناء تنفيذها.
nmap --script http-title --script-trace 192.168.1.1

📌 في الجزء القادم: نشرح بالتفصيل فهرسة السكربتات (`--script-help=default`)، كيفية فهمها، والربط بينها وبين فئاتها وكيفية تخصيص الفحص حسب السكربتات.

📂 فهرسة سكربتات Nmap Scripting Engine (NSE) وكيفية التحكم بها

محرك سكربتات Nmap (NSE) يوفر عشرات بل مئات السكربتات التي تغطي مجالات متعددة مثل: التحقق من المصادقة، الهجمات بالقوة الغاشمة، اكتشاف الثغرات، والكشف عن الخدمات.

1. استعراض فهرس السكربتات المتوفر باستخدام الأمر --script-help

يمكنك الحصول على شرح شامل لكل سكربت متوفر في النظام، أو لفئة معينة من السكربتات.

nmap --script-help=default

سيعرض وصف السكربتات الافتراضية التي تُستخدم مع -sC.

nmap --script-help=auth

لعرض السكربتات الخاصة بالمصادقة.

2. فئات السكربتات في NSE

  • auth: التحقق من آليات المصادقة.
  • brute: هجمات القوة الغاشمة.
  • discovery: اكتشاف معلومات حول الهدف.
  • dos: سكربتات هجوم الحرمان من الخدمة.
  • exploit: سكربتات استغلال ثغرات.
  • external: سكربتات تعتمد على خدمات خارجية.
  • fuzzer: فحص الإدخال العشوائي.
  • intrusive: سكربتات قد تؤدي لتغيير النظام أو إيقافه.
  • malware: اكتشاف البرمجيات الخبيثة.
  • safe: سكربتات آمنة وغير مدمرة.
  • version: تحديد نسخ الخدمات.
  • vuln: البحث عن الثغرات الأمنية.

3. كيفية تشغيل سكربتات محددة أو فئات كاملة

لتشغيل سكربت معين:

nmap --script=http-vuln-cve2017-5638 192.168.1.1

لتشغيل مجموعة سكربتات من فئة معينة:

nmap --script=auth,brute 192.168.1.1

4. استثناء سكربت معين أثناء استخدام فئة

إذا أردت تشغيل كل السكربتات ما عدا سكربت معين:

nmap --script="default and not http-vuln-cve2017-5638" 192.168.1.1

5. تشغيل السكربتات الافتراضية -sC

يُستخدم لتشغيل سكربتات آمنة ومفيدة لمعظم الفحوصات، دون إحداث تأثيرات جانبية.

nmap -sC 192.168.1.1

6. عرض سكربت معين مع تفاصيل عن الخيارات

nmap --script-help=http-vuln-cve2017-5638

يُظهر كيفية إعداد السكربت وخياراته الخاصة.

7. تحديث قاعدة بيانات السكربتات

للحصول على أحدث سكربتات وأدوات Nmap، قم بتحديث الحزمة عبر مدير الحزم الخاص بنظام التشغيل أو من المصدر الرسمي.

خلاصة

فهم وإدارة السكربتات يمكن أن يُحسّن بشكل كبير من دقة الفحص، وتوفير معلومات أكثر ثراءً عن الهدف مع التحكم الكامل في التأثيرات الجانبية.

📌 في الجزء التالي: شرح تفصيلي لكل سكربت موجود في مجلد /usr/share/nmap/scripts/، مع أمثلة عملية لكل سكربت.

📜 شرح تفصيلي لأهم سكربتات Nmap في /usr/share/nmap/scripts/ مع أمثلة

مجلد السكربتات يحتوي على مئات السكربتات التي تغطي جميع مجالات الفحص الأمني. سنبدأ بأشهرها واستخداماتها مع الأمثلة.

1. http-title.nse

يستخرج عنوان الصفحة الرئيسية لموقع ويب عن طريق HTTP.

nmap --script=http-title -p80,443 example.com

2. ssl-cert.nse

يقرأ شهادة SSL ويعرض معلومات عنها مثل مدة الصلاحية والكيانات المصدرة.

nmap --script=ssl-cert -p 443 example.com

3. ftp-anon.nse

يفحص ما إذا كان خادم FTP يسمح بالدخول المجهول (anonymous).

nmap --script=ftp-anon -p 21 192.168.1.100

4. ssh-hostkey.nse

يستخرج مفاتيح المضيف SSH لتحليل الأمان.

nmap --script=ssh-hostkey -p 22 192.168.1.1

5. http-vuln-cve2017-5638.nse

يكشف عن ثغرة Apache Struts CVE-2017-5638 الشهيرة.

nmap --script=http-vuln-cve2017-5638 -p 8080 example.com

6. dns-brute.nse

يستخدم لهجوم brute-force لاكتشاف أسماء مضيفين فرعية في نطاق معين.

nmap --script=dns-brute example.com

7. http-enum.nse

يفحص ويعدّد موارد ويب المعروفة مثل صفحات الإدارة، السكربتات، أو الأدلة.

nmap --script=http-enum -p 80 example.com

8. snmp-info.nse

يجمع معلومات من أجهزة تدعم SNMP، مثل اسم النظام والإصدار.

nmap --script=snmp-info -p 161 192.168.1.1

9. vulners.nse

يكشف عن الثغرات باستخدام قاعدة بيانات vulnners.com.

nmap --script=vulners 192.168.1.1

10. http-slowloris-check.nse

يختبر ما إذا كان الخادم معرضًا لهجوم Slowloris.

nmap --script=http-slowloris-check -p 80 example.com

📌 هذه مجرد عينة من السكربتات، في الأجزاء القادمة سنغطي المزيد من السكربتات، مع شرح مفصل وتصنيفاتهم وأمثلة عملية متقدمة.

📜 متابعة شرح سكربتات Nmap مع أمثلة عملية (جزء 2)

11. ftp-vuln-cve2010-4221.nse

يكشف عن ثغرة معينة في خوادم FTP التي تسمح بتنفيذ أوامر ضارة.

nmap --script=ftp-vuln-cve2010-4221 -p 21 192.168.1.100

12. http-headers.nse

يعرض رؤوس HTTP المستلمة من الخادم، مفيد لتحليل الأمان والسياسات.

nmap --script=http-headers -p 80,443 example.com

13. smtp-open-relay.nse

يفحص ما إذا كان خادم SMTP يسمح بالإرسال المفتوح (open relay) الذي يمكن استغلاله للبريد المزعج.

nmap --script=smtp-open-relay -p 25 mail.example.com

14. rdp-enum-encryption.nse

يكتشف مستوى تشفير خدمة Remote Desktop Protocol (RDP).

nmap --script=rdp-enum-encryption -p 3389 192.168.1.200

15. mysql-info.nse

يجمع معلومات عن خادم MySQL، مثل النسخة والمستخدم الحالي.

nmap --script=mysql-info -p 3306 192.168.1.50

16. snmp-brute.nse

يحاول الوصول إلى أجهزة SNMP باستخدام هجمات القوة الغاشمة لكلمات المرور.

nmap --script=snmp-brute -p 161 192.168.1.1

17. http-sitemap-generator.nse

ينشئ خريطة موقع (Sitemap) عن طريق فحص الروابط داخل الموقع.

nmap --script=http-sitemap-generator -p 80 example.com

18. ssl-heartbleed.nse

يكشف عن ثغرة Heartbleed في خوادم SSL/TLS.

nmap --script=ssl-heartbleed -p 443 example.com

19. http-trace.nse

يفحص ما إذا كانت طريقة TRACE HTTP مفعلة والتي قد تسبب تسريبات أمنية.

nmap --script=http-trace -p 80 example.com

20. ldap-search.nse

يبحث في خوادم LDAP عن معلومات متاحة بدون مصادقة.

nmap --script=ldap-search -p 389 192.168.1.10

📌 في الأجزاء القادمة سنغطي شرح كيفية كتابة سكربتات Nmap الخاصة بك بلغة Lua مع أمثلة.

🛠️ كيفية كتابة سكربتات Nmap الخاصة بك باستخدام لغة Lua

Nmap Scripting Engine (NSE) يعتمد على لغة Lua لكتابة سكربتات توسع وظائف Nmap. هنا شرح مبسط لكتابة سكربت بسيط.

1. الهيكل الأساسي لسكربت NSE


local nmap = require "nmap"
local shortport = require "shortport"
local stdnse = require "stdnse"

description = [[
  سكربت بسيط يعيد رسالة ترحيبية عند الاتصال بالمنفذ 80.
]]

author = "محمد المختار الحسن البكاي"

license = "Same as Nmap--See https://nmap.org/book/man-legal.html"

categories = {"default", "discovery"}

portrule = shortport.port_or_service(80, "http")

action = function(host, port)
  return "مرحبًا بك في فحص Nmap الخاص بي على المنفذ 80!"
end
  

2. شرح الأجزاء

  • description: وصف السكربت.
  • author: اسم الكاتب.
  • categories: فئات السكربت (مثل discovery, vuln, intrusive).
  • portrule: قاعدة تحدد متى ينفذ السكربت (مثلاً على منفذ 80).
  • action: الوظيفة التي تنفذ عند استيفاء القاعدة، ترجع النتيجة.

3. كيفية تشغيل السكربت الخاص بك

احفظ السكربت باسم mytest.nse داخل مجلد سكربتات Nmap، ثم شغله هكذا:

nmap --script=mytest 192.168.1.1

4. التعامل مع الشبكة داخل السكربت

يمكنك استخدام مكتبات Nmap مثل socket و stdnse للتواصل مع الهدف، إرسال واستقبال بيانات.

5. مثال على فحص بسيط


action = function(host, port)
  local socket = nmap.new_socket()
  socket:set_timeout(5000)
  local status, err = socket:connect(host.ip, port.number)
  if not status then
    return "فشل الاتصال: " .. err
  end
  socket:close()
  return "المنفذ مفتوح ويمكن الاتصال به."
end
  

6. مصادر تعلم Lua وNSE

📌 في الجزء التالي: نماذج عملية لفحص مواقع وسيرفرات وأجهزة IoT باستخدام أوامر Nmap والسكربتات.

🔍 نماذج عملية لفحص مواقع، سيرفرات، وأجهزة IoT باستخدام Nmap

1. فحص موقع ويب عام لاكتشاف الخدمات والبورتات المفتوحة

nmap -sS -sV -p- --script=http-title,http-enum example.com

يقوم بفحص جميع البورتات (TCP SYN)، يكتشف نسخ الخدمات، ويشغل سكربتات HTTP لجمع معلومات إضافية.

2. فحص سيرفر داخلي في شبكة محلية لاكتشاف الثغرات المعروفة

nmap -sS -sV --script=vuln 192.168.1.50

فحص TCP SYN مع كشف نسخ الخدمات وتشغيل سكربتات الفحص الأمني.

3. فحص جهاز IoT لكشف بورتات UDP المفتوحة مع تحليل المخاطر

nmap -sU -p 53,67,123 192.168.1.120

يفحص منافذ UDP المهمة (DNS، DHCP، NTP) على جهاز إنترنت الأشياء.

4. فحص شامل سريع لأجهزة في شبكة 192.168.1.0/24 مع تحديد الأجهزة الحية فقط

nmap -sn 192.168.1.0/24

فقط يكتشف الأجهزة المتصلة دون فحص المنافذ.

5. تجاوز جدار الحماية باستخدام تغيير MAC وإخفاء الفحص

nmap -sS --spoof-mac 00:11:22:33:44:55 --data-length 50 --randomize-hosts 192.168.1.0/24

يعتمد على خداع جدار الحماية بتغيير عنوان MAC، إضافة بيانات عشوائية للحزم، وتغيير ترتيب الفحص.

6. فحص خدمة SSH مع استخراج مفاتيح المضيف

nmap -p 22 --script=ssh-hostkey 192.168.1.10

يجمع معلومات أمان مفاتيح SSH الخاصة بالخادم.

7. فحص سريع لأكثر 100 بورت شيوعًا مع كشف النسخ

nmap -F -sV 192.168.1.20

يستخدم خيار -F لفحص سريع لأكثر البورتات استخدامًا مع كشف نسخ الخدمات.

📌 في الجزء القادم: تحليل نتائج الفحص وتفسيرها بعمق مع حالات عملية.

📊 تحليل نتائج فحص Nmap وتفسيرها بعمق

1. قراءة حالة البورتات (Ports)

- Open (مفتوح): يعني أن الخدمة تستمع وتقبل الاتصالات. فرصة لاختبار الخدمة أو استغلال الثغرات. - Closed (مغلق): البورت مغلق ولكنه يستجيب بالـ RST، يدل على أن الجهاز حي لكن الخدمة غير متاحة. - Filtered (مفلتر): لا يستلم Nmap رداً من الهدف أو الرد محجوب بجدار حماية أو فلتر، يصعب تحديد الحالة. - Unfiltered: يعني أن البورت يمكن الوصول إليه لكن لا يمكن تحديد ما إذا كان مفتوحاً أو مغلقاً. - Open|Filtered: Nmap لم يستطع التمييز بين مفتوح أو مفلتر. - Closed|Filtered: حالة نادرة وتعني أن البورت قد يكون مغلقاً أو مفلترًا.

2. تفسير معلومات نسخة الخدمة (Service Version)

تحديد نسخة الخدمة يسمح بمعرفة نقاط الضعف المحتملة وربطها بثغرات معروفة. مثال: Apache 2.4.41 قد يكون عرضة لثغرات محددة.

3. قراءة نتائج تشغيل السكربتات (Scripts Output)

السكربتات تعطي تفاصيل أعمق عن الثغرات، معلومات المصادقة، أو الكشف عن خصائص النظام. يجب قراءة نواتج السكربت بعناية لفهم المخاطر.

4. التحقق من OS Detection

نتائج -O تظهر معلومات نظام التشغيل. يجب مراعاة أن دقة الكشف تعتمد على استجابة الهدف.

5. أمثلة عملية لتحليل نتائج فحص


Starting Nmap 7.91 ( https://nmap.org ) at 2025-06-29 10:00 UTC
Nmap scan report for 192.168.1.10
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu
80/tcp  open  http     Apache httpd 2.4.29
443/tcp open  ssl/http Apache httpd 2.4.29
| ssl-cert: Subject: commonName=example.com
| Issuer: commonName=Let's Encrypt Authority X3
| Public Key type: rsa
| Public Key bits: 2048
| Not valid before: 2024-05-01
| Not valid after:  2025-05-01
|_ssl-date: TLS randomness does not represent time
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Nmap done: 1 IP address (1 host up) scanned in 5.12 seconds
  

في هذه الحالة:

  • خادم الويب Apache 2.4.29 يعمل على البورت 80 و443.
  • شهادة SSL صالحة ولكن تحتاج لمراجعة تاريخ الصلاحية.

6. نصائح لتحليل النتائج بفعالية

  • احرص على مقارنة نسخ الخدمات مع قواعد بيانات الثغرات مثل CVE وNVD.
  • انتبه لنتائج الفلترة التي قد تعني وجود جدار حماية أو IDS/IPS.
  • اقرأ مخرجات السكربتات بتركيز، خاصة سكربتات الـ vuln وauth.
  • قم بإعادة الفحص بطرق مختلفة (TCP, UDP, Ping) لتأكيد النتائج.

📌 في الجزء القادم: جدول شامل لأوامر Nmap الشائعة والنادرة مع شرح كل أمر.

📋 جدول شامل لأوامر Nmap الشائعة والنادرة مع شرح موجز

الأمر الشرح مثال
nmap -sS فحص TCP SYN (فحص نصف اتصال)، سريع وخفي nmap -sS 192.168.1.1
nmap -sT فحص TCP Connect (فحص اتصال كامل) nmap -sT 192.168.1.1
nmap -sU فحص منافذ UDP nmap -sU 192.168.1.1
nmap -p تحديد بورتات معينة للفحص nmap -p 22,80,443 192.168.1.1
nmap -p- فحص كل البورتات (1-65535) nmap -p- 192.168.1.1
nmap -F فحص سريع لأكثر 100 بورت شيوعاً nmap -F 192.168.1.1
nmap --top-ports فحص أفضل البورتات الأكثر استخداماً (يمكن تحديد العدد) nmap --top-ports 50 192.168.1.1
nmap -O كشف نظام التشغيل nmap -O 192.168.1.1
nmap -sV كشف نسخ الخدمات العاملة على البورتات المفتوحة nmap -sV 192.168.1.1
nmap -sC تشغيل السكربتات الافتراضية الآمنة nmap -sC 192.168.1.1
nmap --script تشغيل سكربتات NSE محددة أو فئات منها nmap --script=http-vuln 192.168.1.1
nmap -sn فحص الشبكة لاكتشاف الأجهزة الحية فقط (Ping Scan) nmap -sn 192.168.1.0/24
nmap --traceroute عرض مسار الحزم (Traceroute) nmap --traceroute 8.8.8.8
nmap --spoof-mac تغيير عنوان MAC لإخفاء هوية الفاحص nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1
nmap --data-length إضافة بيانات عشوائية لحجم معين في الحزمة nmap --data-length 50 192.168.1.1
nmap --max-retries تحديد عدد المحاولات الفاشلة قبل التخلي عن الهدف nmap --max-retries 2 192.168.1.1
nmap --host-timeout تحديد الوقت الأقصى لفحص هدف معين nmap --host-timeout 30s 192.168.1.1
nmap --min-parallelism أقل عدد للمهام المتوازية أثناء الفحص nmap --min-parallelism 10 192.168.1.1
nmap --max-rate تحديد أقصى معدل إرسال للحزم (حجم الفحص) nmap --max-rate 1000 192.168.1.1
nmap --reason عرض سبب تحديد حالة البورت (لماذا مفتوح أو مغلق) nmap --reason 192.168.1.1
nmap --open عرض البورتات المفتوحة فقط nmap --open 192.168.1.1
nmap --badsum إرسال حزم تحمل Checksum خاطئ لمحاكاة الحزم الخاطئة nmap --badsum 192.168.1.1
nmap --randomize-hosts تغيير ترتيب استهداف العناوين بشكل عشوائي لتجنب الكشف nmap --randomize-hosts 192.168.1.0/24
nmap --dns-servers تحديد خوادم DNS مخصصة للفحص nmap --dns-servers 8.8.8.8,8.8.4.4 example.com
nmap --ttl تعيين قيمة TTL في الحزم المرسلة nmap --ttl 64 192.168.1.1

📌 هذا الجدول يغطي معظم أوامر Nmap المهمة، وهناك أوامر إضافية خاصة بالحالات المتقدمة والاختبارات المتخصصة.

📌 في الجزء القادم: شرح مفصل لكل سطر مساعدة في nmap --help.

🆘 شرح مفصل لكل سطر في ناتج الأمر nmap --help

الأمر nmap --help يعرض جميع الخيارات التي يمكن استخدامها مع Nmap. هنا شرح لكل سطر رئيسي:

Usage: nmap [Scan Type(s)] [Options] {target specification}

شكل استخدام الأمر: تحدد نوع الفحص، الخيارات، وأهداف الفحص.

Scan Types:

  • -sS: فحص TCP SYN (خفيف وسريع)
  • -sT: فحص TCP Connect (كامل الاتصال)
  • -sU: فحص منافذ UDP
  • -sN: فحص Null (بدون أعلام TCP)
  • -sF: فحص FIN
  • -sX: فحص Xmas (تفعيل أعلام FIN, PSH, URG)
  • -sA: فحص ACK
  • -sW: فحص Windows
  • -sM: فحص TCP Maimon

Host Discovery:

  • -sn: فحص الشبكة لاكتشاف الأجهزة الحية فقط (بدون فحص بورتات)
  • -Pn: تجاوز فحص الـ Ping (يفترض أن الهدف حي)

Port Specification and Scan Order:

  • -p: تحديد البورتات
  • -F: فحص سريع لأكثر 100 بورت شيوعاً
  • --top-ports: فحص أكثر البورتات استخداماً

Service/Version Detection:

  • -sV: كشف نسخ الخدمات
  • --version-intensity: تحديد شدة كشف النسخة (0-9)

OS Detection:

  • -O: كشف نظام التشغيل
  • --osscan-guess: تخمين النظام إذا لم يكن الكشف مؤكدًا

Timing and Performance:

  • -T0 إلى -T5: مستويات توقيت الفحص من بطيء إلى سريع جدًا
  • --min-parallelism: أقل عدد مهام متوازية
  • --max-retries: عدد المحاولات القصوى

Firewall/IDS Evasion and Spoofing:

  • --spoof-mac: تزوير عنوان MAC
  • --data-length: إضافة بيانات عشوائية
  • --badsum: إرسال حزم بها Checksum خاطئ

Output:

  • -oN: إخراج عادي (نص)
  • -oX: إخراج XML
  • -oG: إخراج قابل للبحث (grepable)
  • -oJ: إخراج JSON

Scripts and NSE:

  • --script: تشغيل سكربتات محددة
  • --script-args: تمرير معطيات للسكربتات

Miscellaneous:

  • --traceroute: تتبع مسار الحزم
  • --reason: إظهار سبب حالة البورت
  • --open: عرض البورتات المفتوحة فقط
  • --version: عرض نسخة Nmap
  • --help: عرض هذه المساعدة

📌 استخدام nmap --help بانتظام يساعد على فهم كل خيارات الأداة وتخصيص الفحص حسب الحاجة.

📌 في الجزء القادم: فهرسة السكربتات باستخدام --script-help=default مع شرح كيفية قراءة النتائج.

🗂️ فهرسة سكربتات Nmap باستخدام --script-help=default

الأمر nmap --script-help=default يعرض قائمة بجميع سكربتات NSE الافتراضية مع شرح لكل سكربت، فئة السكربت، ووظائفه الأساسية.

كيفية الاستخدام

nmap --script-help=default

يمكنك إضافة اسم سكربت معين للحصول على شرح تفصيلي له:

nmap --script-help=http-vuln-cve2014-3704

ماذا تتوقع من النتيجة؟

  • اسم السكربت
  • وصف مختصر للوظيفة
  • الفئة (categories) مثل vuln، auth، discovery، intrusive
  • معلومات إضافية مثل المؤلف والتراخيص

أهمية الفهرسة

تساعدك الفهرسة على اختيار السكربت المناسب لحالة الفحص، وتفهم ما يمكن أن تكشف عنه كل سكربت قبل التشغيل.

مثال عملي


$ nmap --script-help=http-title

Script http-title
Categories: discovery, intrusive
Synopsis: Retrieves the title of a web page
Description:
  This script connects to the HTTP service and extracts the content of the  tag.
  Useful for identifying web applications.
  </code></pre>
  <button onclick="copyCode(this)">نسخ</button>

  <p>📌 في الجزء القادم: شرح تفصيلي لكل سكربت في مجلد <code>/usr/share/nmap/scripts/</code> وأهميته.</p>

</div>

<script>
  function copyCode(btn) {
    const code = btn.previousElementSibling.innerText;
    navigator.clipboard.writeText(code).then(() => {
      btn.innerText = "✅ تم النسخ!";
      setTimeout(() => btn.innerText = "نسخ", 2000);
    });
  }
</script>
  
  <div style="font-family: 'Tajawal', Arial, sans-serif; line-height: 1.9; color: #222; max-width: 1000px; margin: 0 auto; direction: rtl; text-align: right;">

  <h3>📂 أهم سكربتات Nmap في مجلد <code>/usr/share/nmap/scripts/</code> مع شرحها</h3>

  <h4>1. http-title.nse</h4>
  <p><strong>الوصف:</strong> يستخرج عنوان الصفحة من خدمة HTTP.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=http-title -p 80,443 target</code></p>

  <h4>2. http-enum.nse</h4>
  <p><strong>الوصف:</strong> يجمع معلومات عن التطبيقات والخدمات الموجودة على خادم الويب.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=http-enum -p 80,443 target</code></p>

  <h4>3. ssh-hostkey.nse</h4>
  <p><strong>الوصف:</strong> يستخرج مفاتيح المضيف لخدمة SSH لتقييم الأمان.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=ssh-hostkey -p 22 target</code></p>

  <h4>4. vuln.nse</h4>
  <p><strong>الوصف:</strong> مجموعة سكربتات لفحص الثغرات الأمنية المعروفة.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=vuln target</code></p>

  <h4>5. dns-brute.nse</h4>
  <p><strong>الوصف:</strong> يجري هجوم تخمين لأسماء النطاقات الفرعية (DNS brute force).</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=dns-brute -p 53 target</code></p>

  <h4>6. smb-os-discovery.nse</h4>
  <p><strong>الوصف:</strong> يكتشف نظام تشغيل جهاز Windows عبر بروتوكول SMB.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=smb-os-discovery -p 445 target</code></p>

  <h4>7. ftp-anon.nse</h4>
  <p><strong>الوصف:</strong> يتحقق من إمكانية الدخول المجهول إلى خادم FTP.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=ftp-anon -p 21 target</code></p>

  <h4>8. http-vuln-cve2014-3704.nse</h4>
  <p><strong>الوصف:</strong> يفحص وجود ثغرة Drupalgeddon في أنظمة Drupal.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=http-vuln-cve2014-3704 -p 80 target</code></p>

  <h4>9. ssl-cert.nse</h4>
  <p><strong>الوصف:</strong> يستخرج تفاصيل شهادة SSL من الخدمة.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=ssl-cert -p 443 target</code></p>

  <h4>10. smb-vuln-ms17-010.nse</h4>
  <p><strong>الوصف:</strong> يفحص وجود ثغرة EternalBlue في SMB.</p>
  <p><strong>الاستخدام:</strong> <code>nmap --script=smb-vuln-ms17-010 -p 445 target</code></p>

  <p>📌 هذه أمثلة لأشهر السكربتات، المجلد يحتوي على المئات منها مصنفة حسب الفئة والاستخدام.</p>
  <p>📌 في الجزء القادم: طرق كتابة سكربت Nmap خاص بك متقدمة مع أمثلة أكثر تعقيدًا.</p>

</div>

<script>
  function copyCode(btn) {
    const code = btn.previousElementSibling.innerText;
    navigator.clipboard.writeText(code).then(() => {
      btn.innerText = "✅ تم النسخ!";
      setTimeout(() => btn.innerText = "نسخ", 2000);
    });
  }
</script>
  
  
  <div style="font-family: 'Tajawal', Arial, sans-serif; line-height: 1.9; color: #222; max-width: 1000px; margin: 0 auto; direction: rtl; text-align: right;">

  <h3>🛠️ طرق كتابة سكربت Nmap خاص بك مع أمثلة متقدمة</h3>

  <h4>1. مقدمة عن Nmap Scripting Engine (NSE)</h4>
  <p>لغة السكربت في Nmap تعتمد على Lua، وتسمح لك بتطوير سكربتات مخصصة لفحص الشبكات، الخدمات، والأنظمة.</p>

  <h4>2. هيكل سكربت Nmap بسيط</h4>
  <pre><code>
description = [[
  وصف السكربت هنا.
]]

---
-- تعاريف مكتبة Nmap و NSE
local nmap = require "nmap"
local shortport = require "shortport"

---
-- تعريف السكربت: اسم، فئة، وصف
author = "اسمك"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery"}

---
-- وظيفة الفحص (action)
action = function(host, port)
  return "هذا نص بسيط من سكربت Nmap"
end
  </code></pre>
  <button onclick="copyCode(this)">نسخ</button>

  <h4>3. مثال عملي: سكربت فحص HTTP بسيط</h4>
  <pre><code>
description = [[
  اختبار ما إذا كان السيرفر يعيد عنوان صفحة HTTP.
]]

local http = require "http"
local shortport = require "shortport"

author = "محمد المختار الحسن البكاي"
license = "Same as Nmap"
categories = {"discovery"}

portrule = shortport.port_or_service({80, 8080}, "http")

action = function(host, port)
  local response = http.get(host, port, "/")
  if response and response.body then
    return "عنوان الصفحة: " .. (response.body:match("<title>(.-)") or "غير موجود")
  else
    return "لم يتم استرجاع الصفحة"
  end
end
  

4. خطوات بناء سكربتك الخاص

  1. تحديد الهدف (port أو service) باستخدام portrule.
  2. استخدام مكتبات Nmap مثل http، stdnse، shortport.
  3. كتابة الدالة action(host, port) لتنفيذ الفحص.
  4. إرجاع النتائج كنص أو جدول.
  5. حفظ السكربت بامتداد .nse في مجلد السكربتات.
  6. تشغيله باستخدام nmap --script اسم_السكربت.

5. نصائح متقدمة

  • استخدم مكتبة stdnse لإدارة الوقت، التعامل مع الأخطاء.
  • يمكنك التفاعل مع بروتوكولات مختلفة باستخدام مكتبات مثل http، ssh، dns.
  • يمكن إضافة معطيات تمرر للسكربت باستخدام --script-args.
  • اختبر السكربت في بيئة آمنة قبل الاستخدام في الإنتاج.

📌 في الجزء القادم: نماذج عملية لفحص مواقع، سيرفرات، وأجهزة IoT متقدمة مع تحليل دقيق.

🔍 نماذج عملية متقدمة لفحص مواقع، سيرفرات، وأجهزة IoT مع تحليل دقيق

1. فحص موقع ويب متكامل مع كشف الخدمات والثغرات


nmap -sS -p 80,443,8080 --script=http-title,http-enum,http-vuln* --script-args=unsafe=1 target.com
  

شرح:

  • فحص TCP SYN على منافذ HTTP الشائعة.
  • تشغيل سكربتات كشف عنوان الصفحة، استكشاف الخدمات، والثغرات HTTP.
  • الوسيط unsafe=1 يسمح لبعض السكربتات ذات التأثير العالي بالعمل.

2. فحص سيرفر SSH لتقييم المفاتيح ونقاط الضعف


nmap -p 22 --script=ssh-hostkey,sshv1,ssh-auth-methods target.com
  

شرح:

  • يستخرج مفاتيح المضيف ويكشف دعم SSHv1 القديم.
  • يفحص طرق المصادقة المدعومة.

3. فحص جهاز IoT عبر بروتوكول UPnP


nmap -sU -p 1900 --script=upnp-info target-iot-device.local
  

شرح:

  • يستخدم فحص UDP على منفذ UPnP الشائع (1900).
  • يستخرج معلومات الجهاز عبر سكربت upnp-info.

4. فحص شبكة كاملة لاكتشاف الأجهزة المفتوحة والأنظمة


nmap -sS -O -p- 192.168.1.0/24 --script=default,vuln
  

شرح:

  • فحص TCP SYN لجميع البورتات.
  • كشف أنظمة التشغيل.
  • تشغيل السكربتات الافتراضية والثغرات.

5. تحليل نتائج الفحص

بعد الانتهاء من الفحص، يجب مراجعة مخرجات الأوامر، مع التركيز على البورتات المفتوحة، خدماتها، الثغرات المكتشفة، وأنظمة التشغيل لتقييم الأمان أو نقاط الضعف المحتملة.

📌 في الجزء القادم: تحليل تفصيلي لتقارير Nmap بعد الفحص وكيفية استخدام النتائج لاتخاذ إجراءات أمنية.

📊 تحليل تفصيلي لتقارير Nmap بعد الفحص واستخدام النتائج أمنياً

1. فهم مخرجات الفحص

تقارير Nmap تعرض معلومات عن الأجهزة، المنافذ المفتوحة، الخدمات، نسخ البرمجيات، ونظام التشغيل.

2. تفسير حالة البورتات

  • open: البورت مفتوح ويستقبل الاتصالات.
  • closed: البورت مغلق لكن يستجيب للحزم.
  • filtered: لا يمكن تحديد حالة البورت بسبب وجود جدار حماية أو فلترة.
  • unfiltered: البورت متاح ولكن لا يمكن تحديد إذا كان مفتوحًا أو مغلقًا.

3. تقييم المخاطر الأمنية

  • البورتات المفتوحة لخدمات غير ضرورية تمثل مخاطر عالية.
  • الإصدار القديم للخدمات يمكن أن يحتوي على ثغرات معروفة.
  • نتائج كشف نظام التشغيل تساعد في توجيه استراتيجيات الهجوم أو الحماية.

4. استخدام تقارير النسخ (Version Detection)

تساعد في معرفة النسخ الحقيقية للخدمات، مما يوجه إلى ثغرات محددة يجب التحقق منها أو إصلاحها.

5. تحليل نتائج السكربتات

تفحص السكربتات معلومات إضافية مثل ثغرات، إعدادات خاطئة، أو معلومات عن المضيف يجب مراجعتها بدقة.

6. اتخاذ الإجراءات الأمنية

  • إغلاق أو حظر البورتات غير الضرورية.
  • تحديث الخدمات والأنظمة لكسر الثغرات.
  • تفعيل أنظمة كشف التسلل IDS/IPS.
  • مراجعة السياسات الأمنية والجدران النارية.

7. حفظ ومشاركة التقارير

استخدم خيارات الإخراج مثل XML أو JSON لتوثيق النتائج أو مشاركتها مع فريق الأمان.

📌 في الجزء القادم: شرح شامل لأكثر من 2000 أمر، خيار، نمط، سكربت، وحالة استخدام في Nmap.

⚙️ شرح شامل ومفصل لأكثر من 2000 أمر، خيار، نمط، سكربت، وحالة استخدام في Nmap

نظراً لضخامة أداة Nmap وتنوع إمكانياتها، نقدم لك هنا موجزًا مركزًا لأهم الأوامر والخيارات والسكربتات، مع توضيح كيفية استغلالها في اختبار الاختراق وإدارة الشبكات.

1. الأوامر الأساسية:

  • -sS : TCP SYN Scan (الأكثر استخدامًا)
  • -sT : TCP Connect Scan (بدون صلاحيات خاصة)
  • -sU : UDP Scan
  • -p : تحديد منافذ محددة
  • -O : كشف نظام التشغيل
  • -sV : كشف نسخ الخدمات
  • --script : تشغيل سكربتات NSE

2. خيارات التوقيت والتحكم:

  • -T0 إلى -T5 : مستويات السرعة (من بطيء للغاية إلى سريع جدًا)
  • --max-retries : الحد الأقصى لمحاولات إعادة الإرسال
  • --host-timeout : تحديد وقت انتهاء الفحص على الهدف
  • --max-rate : تحديد أقصى عدد حزم في الثانية

3. السكربتات وفئاتها (NSE):

تقسم السكربتات إلى فئات مثل:

  • auth : المصادقة والاختراق
  • brute : هجمات القوة الغاشمة
  • discovery : اكتشاف المعلومات
  • dos : هجمات الحرمان من الخدمة
  • exploit : استغلال الثغرات
  • external : خدمات خارجية مثل WHOIS
  • fuzzer : اختبار الاستقرار عبر الفازر
  • intrusive : سكربتات يمكن أن تؤثر على الهدف
  • malware : الكشف عن البرمجيات الخبيثة
  • safe : سكربتات آمنة للاستخدام
  • version : كشف نسخ الخدمات
  • vuln : فحص الثغرات الأمنية

4. أشهر السكربتات مع أمثلة استخدام:

  • http-title : استخراج عنوان صفحات الويب
  • ftp-anon : فحص FTP للدخول المجهول
  • smb-vuln-ms17-010 : فحص ثغرة EternalBlue
  • ssl-cert : استخراج تفاصيل شهادات SSL
  • dns-brute : هجوم تخمين أسماء النطاقات

5. أوامر متقدمة مهمة:

  • --spoof-mac : تزوير عنوان MAC
  • --data-length : إضافة بيانات عشوائية للحزم
  • --badsum : إرسال حزم برقم تحقق خاطئ
  • --randomize-hosts : تغيير ترتيب الفحص عشوائيًا
  • --traceroute : تتبع مسار الحزم
  • --reason : إظهار سبب حالة البورت

6. حالات استخدام Nmap

  • اختبار اختراق شامل للشبكات
  • إدارة الخدمات والسيرفرات
  • التقييم الأمني للأنظمة
  • كشف الثغرات ونقاط الضعف
  • اختبار أداء الشبكة

7. نصائح للاستخدام الاحترافي:

  • ابدأ دائمًا بفحص بسيط ثم زد التعقيد تدريجياً
  • استخدم السكربتات بحذر في بيئات الإنتاج
  • فهم نتائج الفحص مهم لاتخاذ القرار الصحيح
  • تحديث Nmap والسكربتات بشكل دوري

🔰 هذه نظرة مركزة على آلاف الأوامر والخيارات. للمزيد، راجع man nmap والوثائق الرسمية.

ختامًا

كانت هذه رحلة شاملة ومفصلة في عالم أداة Nmap، من التعريف بها حتى الاحتراف في استخدامها، مع شرح دقيق لكل الأوامر، الخيارات، السكربتات، ونماذج الاستخدام العملية.

أداة Nmap هي حجر الأساس لكل خبير أمن سيبراني ومختبر اختراق، وتمكنك من كشف الثغرات، فهم شبكاتك، وحماية أنظمتك بفعالية. استثمر الوقت في تعلمها واستخدامها بحذر ومسؤولية لتحقيق أفضل نتائج في مجال الأمن المعلوماتي.

أتمنى أن تكون هذه المقالة قد زودتك بالمعرفة الكافية لاستخدام Nmap بكل احترافية. لا تتردد في العودة إليها مرارًا، فالعالم التقني يتطور دائمًا، وNmap تتطور معه.

بقلم: محمد المختار الحسن البكاي

تعديل المشاركة
author-img

HackTaksh Blog

أنا مطور ويب كامل مع خبرة واسعة في أكثر من 14 لغة برمجة، بالإضافة إلى تخصصي في مجال الأمن السيبراني واختبار الاختراق. حاصل على شهادة CEH وأعمل في تطوير المواقع باستخدام ووردبريس. أتمتع بمهارات قوية في تحليل وتطوير الحلول البرمجية مع التركيز على الأمان والتحسين
تعليقات
ليست هناك تعليقات
إرسال تعليق

إرسال تعليق

الاسمبريد إلكترونيرسالة