🎯 أهداف المختبر
- فهم كيف يكتشف Nmap المضيفين النشطين على الشبكة
- تشغيل فحوصات TCP SYN و UDP والاتصال الكامل بالرايات المناسبة
- تعداد الخدمات العاملة وأرقام إصداراتها بدقّة
- تحديد بصمة نظام التشغيل لجهاز الهدف
- استخدام سكربتات NSE (محرّك سكربتات Nmap) للفحوصات الآلية
- حفظ نتائج الفحص بصيغ إخراج متعدّدة لإعداد التقارير
ما هو Nmap؟
Nmap (اختصار لـ "Network Mapper") أداة مجانية مفتوحة المصدر لاكتشاف الشبكات وتدقيق الأمان. كتبها في الأصل Gordon "Fyodor" Lyon، وهي أول أداة يلجأ إليها أيّ مختبِر اختراق حين يريد فهم ما يعمل على شبكة الهدف.
يرسل Nmap حزمًا مُصمّمة بعناية إلى الهدف ويحلّل الاستجابات ليحدّد أيّ المضيفين نشِط، وأيّ المنافذ مفتوح، وأيّ الخدمات تعمل، وأيّ نظام تشغيل يعمل على الهدف.
الخطوة ١ — اكتشاف المضيفين
قبل فحص المنافذ، تحتاج إلى معرفة أيّ المضيفين نشِط. يوفّر Nmap عدة تقنيات للاكتشاف.
مسح Ping (ICMP Echo)
افحص شبكة فرعية كاملة للعثور على المضيفين النشطين. الراية -sn تُعطّل فحص المنافذ — تتحقّق فقط ممّا إذا كان المضيف نشطًا.
# مسح Ping لشبكة فرعية /24
nmap -sn 192.168.1.0/24
# عرض عناوين MAC أيضًا (يتطلّب صلاحيات الجذر)
sudo nmap -sn 192.168.1.0/24
# فحص ARP (أسرع، يعمل على الشبكة الفرعية المحلية فقط)
sudo nmap -PR -sn 192.168.1.0/24
# فحص نطاق من عناوين IP
nmap -sn 10.10.10.1-50
مثال على المخرجات:
Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00023s latency).
MAC Address: AA:BB:CC:DD:EE:FF (Cisco)
Nmap scan report for 192.168.1.105
Host is up (0.0011s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.41 seconds
الخطوة ٢ — فحص TCP SYN (الفحص الخفيّ)
فحص TCP SYN (-sS) هو الفحص الافتراضي لـ Nmap عند تشغيله بصلاحيات الجذر. يرسل حزمة SYN وينتظر الاستجابة — دون إتمام مصافحة TCP، ما يجعله أسرع وأقلّ ظهورًا في سجلّات التطبيقات.
شغّل فحص SYN
الراية -p- تفحص كل المنافذ الـ ٦٥٬٥٣٥. استخدم --min-rate لتسريع الفحوصات البطيئة.
# فحص SYN الافتراضي (أعلى 1000 منفذ)
sudo nmap -sS 10.10.10.1
# فحص كل المنافذ الـ 65535
sudo nmap -sS -p- 10.10.10.1
# فحص سريع — التسريع عبر تحديد المعدّل
sudo nmap -sS -p- --min-rate 5000 10.10.10.1
# فحص منافذ محدّدة
sudo nmap -sS -p 22,80,443,8080,8443 10.10.10.1
الخطوة ٣ — كشف الخدمة والإصدار
معرفة أنّ منفذًا مفتوح ليست إلا البداية. الراية -sV تفحص المنافذ المفتوحة لتحديد اسم الخدمة ورقم الإصدار بدقّة — أمر حاسم للعثور على ثغرات CVE المعروفة.
فحص كشف الإصدار
# كشف إصدار الخدمة
sudo nmap -sV 10.10.10.1
# زيادة شدّة الكشف (0-9، الافتراضي 7)
sudo nmap -sV --version-intensity 9 10.10.10.1
مثال على المخرجات:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.38 ((Debian))
443/tcp open ssl/http Apache httpd 2.4.38
3306/tcp open mysql MySQL 5.7.32-0ubuntu0.18.04.1
الخطوة ٤ — كشف نظام التشغيل
يستطيع Nmap تحديد بصمة نظام تشغيل الهدف بتحليل كيفية استجابته لسلسلة من فحوصات TCP/IP المُصمّمة خصيصًا. يتطلّب ذلك منفذًا مفتوحًا وآخر مغلقًا على الأقل ليعمل بدقّة.
بصمة نظام التشغيل
# كشف نظام التشغيل (يتطلّب صلاحيات الجذر)
sudo nmap -O 10.10.10.1
# مجتمعًا: الإصدار + نظام التشغيل + السكربتات الافتراضية
sudo nmap -sC -sV -O 10.10.10.1
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
الخطوة ٥ — فحص UDP
تعمل خدمات حرجة كثيرة عبر UDP — DNS (53) و SNMP (161) و DHCP (67/68) و NTP (123). كثيرًا ما تفوتها الفحوصات المقتصرة على TCP. فحص UDP أبطأ لعدم وجود مصافحة.
فحص UDP
# أعلى 100 منفذ UDP (أسرع بكثير)
sudo nmap -sU --top-ports 100 10.10.10.1
# خدمات UDP محدّدة للتحقّق منها
sudo nmap -sU -p 53,67,68,69,123,161,162,500 10.10.10.1
# فحص مشترك TCP + UDP
sudo nmap -sS -sU -p T:1-1000,U:53,161 10.10.10.1
الخطوة ٦ — سكربتات NSE
محرّك سكربتات Nmap (NSE) يوسّع Nmap بمئات السكربتات لكشف الثغرات وتعداد الخدمات واختبار المصادقة وغيرها. توجد السكربتات في /usr/share/nmap/scripts/.
شغّل سكربتات NSE
# تشغيل السكربتات الافتراضية (-sC اختصار لـ --script=default)
sudo nmap -sC 10.10.10.1
# تشغيل سكربت محدّد
sudo nmap --script http-title 10.10.10.1
# تشغيل كل السكربتات المطابِقة لنمط
sudo nmap --script "http-*" 10.10.10.1
# التحقّق من ثغرات SMB (MS17-010 / EternalBlue)
sudo nmap --script smb-vuln-ms17-010 -p 445 10.10.10.1
# تعداد مفاتيح مضيف SSH والخوارزميات
sudo nmap --script ssh-hostkey,ssh2-enum-algos -p 22 10.10.10.1
# سكربتات تعداد HTTP
sudo nmap --script http-enum,http-headers,http-methods -p 80,443 10.10.10.1
auth، broadcast، brute، default، discovery، dos، exploit، external، fuzzer، intrusive، malware، safe، version، vuln. شغّل كل سكربتات الثغرات بـ --script vuln.الخطوة ٧ — الفحص العدواني
الراية -A تجمع كشف نظام التشغيل وكشف الإصدار وفحص السكربتات وتتبّع المسار في أمر واحد. إنه صاخب لكنه شامل — مثالي لمسابقات CTF أو المهام المصرّح بها.
تعداد عدواني كامل
# فحص "كل شيء" الكلاسيكي
sudo nmap -A 10.10.10.1
# اجمعه مع كل المنافذ لأقصى تغطية
sudo nmap -A -p- --min-rate 5000 10.10.10.1
# قوالب التوقيت: T0 (الأبطأ) إلى T5 (الأسرع/الأكثر ضجيجًا)
sudo nmap -A -T4 10.10.10.1
الخطوة ٨ — المخرجات والتقارير
يحفظ مختبِرو الاختراق الجيّدون نتائج فحوصهم دائمًا. يدعم Nmap عدة صيغ للمخرجات — احفظها كلها بـ -oA وستحصل على صيغ للبشر وأخرى لأدوات مثل Metasploit لاستيرادها.
احفظ مخرجات الفحص
# الحفظ بكل الصيغ في آن واحد (مُوصى به)
sudo nmap -sC -sV -oA scan_results 10.10.10.1
# يُنشئ: scan_results.nmap و scan_results.xml و scan_results.gnmap
# مخرجات نصية عادية
sudo nmap -sV -oN output.txt 10.10.10.1
# XML (قابل للاستيراد في Metasploit)
sudo nmap -sV -oX output.xml 10.10.10.1
# صيغة قابلة للبحث بـ grep
sudo nmap -sV -oG output.gnmap 10.10.10.1
# البحث في المخرجات القابلة لـ grep عن المنافذ المفتوحة
grep "open" output.gnmap
📋 ورقة Nmap المرجعية
| الراية | الوصف | مثال |
|---|---|---|
-sn | فحص Ping (بدون فحص منافذ) | nmap -sn 192.168.1.0/24 |
-sS | فحص TCP SYN (خفيّ) | sudo nmap -sS target |
-sT | فحص TCP connect (بدون جذر) | nmap -sT target |
-sU | فحص UDP | sudo nmap -sU target |
-sV | كشف الخدمة/الإصدار | nmap -sV target |
-sC | سكربتات NSE الافتراضية | nmap -sC target |
-O | بصمة نظام التشغيل | sudo nmap -O target |
-A | عدواني (نظام+إصدار+سكربت+تتبّع) | nmap -A target |
-p- | كل المنافذ الـ 65535 | nmap -p- target |
-p 80,443 | منافذ محدّدة | nmap -p 22,80 target |
-T4 | قالب التوقيت (0-5) | nmap -T4 target |
-oA | إخراج بكل الصيغ | nmap -oA out target |
--script | تشغيل سكربت NSE | nmap --script vuln target |
-v / -vv | مخرجات مفصّلة | nmap -v target |
--min-rate | أدنى معدّل للحِزَم | nmap --min-rate 5000 target |