إنتقل إلى المحتوى الرئيسي

الاستطلاع النشط — المفاهيم

أنتم خارجون للتو من أسبوعين من الاستخبارات الصامتة. هذا الأسبوع، نضرب. كل حزمة ترسلونها يمكن رصدها وتسجيلها والربط بينها. مسح سيّئ الضبط يعني IDS يصرخ، وعميلاً يتصل بكم، واختباراً يبدأ بالأحمر.

تذكير

مسح المنافذ على عنوان IP لا يخصكم ولا تملكون له تفويضاً كتابياً هو فعل عدائي قانونياً في معظم الأنظمة القضائية، حتى عندما لا تجدون شيئاً. هذا الدرس بأكمله يُنفَّذ على مختبركم الخاص أو على أهداف مشمولة باتفاقية RoE.

ما ستعرفون فعله بعد هذا الدرس​

  • اختيار المسح المناسب للحظة المناسبة (سريع، كامل، خفي، عدواني).
  • قراءة نتيجة Nmap سطراً بسطر، بما في ذلك filtered، open|filtered، unfiltered.
  • تعداد خدمة Windows باستخدام enum4linux-ng، smbclient، crackmapexec.
  • استخدام Wireshark للتحقق مما ينتجه مسحكم فعلياً على السلك.
  • تصنيع حزمة يدوياً بواسطة Scapy عندما لا يفعل nmap ما تريدون.
  • تقدير تكلفة الضجيج لمسح ما قبل إطلاقه.

1. الانتقال من السلبي إلى النشط: ما الذي يتغيّر فعلاً​

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

  1. آثاركم مؤرَّخة. أمر nmap -p- على victim.com، الساعة 03:14 من 12 أبريل، يُكتشَف.
  2. آثاركم قابلة للعزو. عنوان IP المصدر، بصمة TCP/IP، ترويسة User-Agent في HTTP، ترتيب الحزم — كل ذلك يروي من تكونون.
  3. الدفاعات ترد. يمكن لـ IDS أن يحظر عنوانكم فوراً. يمكن لـ WAF أن يقطعكم. يمكن لـ SOC أن يتصل بعميلكم للتحقق.

الاستطلاع النشط المُدار جيداً يبقى غير قابل للرصد أو ضئيل الأثر. المُدار بسوء، هو فقرة «الحادثة» في تقرير مسؤول أمن المعلومات.


2. منطق المسح الطبقي​

لا يطلق أي مختبِر اختراق أمر nmap -A --script vuln من البداية. نتقدّم طبقة تلو الأخرى، من الأدق إلى الأوسع. كل طبقة تجيب عن سؤال واحد.

الطبقةالسؤالالأداةالضجيج
1. اكتشاف المضيفينمن على قيد الحياة؟nmap -sn، arp-scanمنخفض
2. مسح المنافذماذا يستمع؟nmap -sS -p-متوسط
3. كشف الإصدارمن يستمع، وبأي إصدار؟nmap -sVمتوسط إلى مرتفع
4. سكربتات NSE موجّهةماذا تقول هذه الخدمة؟nmap --script <محدد>متغيّر
5. تعداد على مستوى التطبيقحسابات، مشاركات، نقاط نهايةenum4linux-ng، gobusterمرتفع

القاعدة: كل طبقة تعتمد على سابقتها. لا نُجري -sV إلا على المنافذ المفتوحة، لا على 65535 منفذاً عشوائياً. لا نُطلق سكربتات NSE إلا على الخدمات المحدَّدة، لا افتراضياً.


3. حالات منفذ Nmap — كفوا عن قراءتها بشكل خاطئ​

ستّ حالات ممكنة. لا تخلطوا بينها بعد الآن:

الحالةماذا تعني
openخدمة تستمع وتستجيب.
closedلا شيء يستمع — الهدف يستجيب بـ RST (TCP) أو ICMP port unreachable (UDP).
filteredجدار ناري يمتص حزمتكم. لا نعم، ولا لا.
unfilteredالهدف يستجيب لكن لا نعرف إن كان المنفذ مفتوحاً (نادر، مع -sA).
open|filteredلا استجابة — إما مفتوح أو مُصفّى (شائع كثيراً في UDP).
closed|filteredمثله، لكننا نميل إلى الاعتقاد بأنه مغلق (مسح zombie).

ما يتغيّر بالنسبة إليكم:

  • منفذ filtered هو معلومة: شخص ما وضع جداراً نارياً، إذن ثمة شيء حسّاس خلفه.
  • منفذ open|filtered في UDP أمر شائع جداً: أعيدوا -sU مع --reason للحسم.
  • نطاق nmap يُظهر filtered في كل مكان، غالباً ما يكون جداراً نارياً على مستوى الشبكة، لا جهازاً مطفأً.

4. تقنيات مسح TCP — أيها ولماذا​

التقنيةخيار nmapما تفعلهمتى تختارونها
مسح SYN (اتصال نصفي)-sSيرسل SYN، يقرأ SYN/ACK، لا يُنهي المصافحة.القياسي. سريع وخفي. يتطلب root.
مسح Connect-sTمصافحة كاملة (تستخدم نظام التشغيل).بدون root، أو لتفادي بعض البصمات.
مسح ACK-sAيرسم خريطة الجدران النارية (لا المنافذ المفتوحة).كشف جدار ناري ذي حالة مقابل بلا حالة.
FIN / NULL / Xmas-sF / -sN / -sXيرسل تركيبات أعلام (flags) غير اعتيادية.تفادي جدران نارية سيّئة الضبط (RFC 793).
مسح Idle-sI zombieيستخدم جهازاً ثالثاً كوسيط. عنوانكم لا يخاطب الهدف أبداً.تخفٍّ شديد (وتعقيد شديد).
مسح UDP-sUيفرض مسح UDP. بطيء جداً.اكتشاف DNS، SNMP، NTP، IKE، SIP…

لـ 90% من المهمات: -sS في TCP، و-sU -p <منافذ UDP المهمة> في UDP عند الحاجة.


5. قوالب التوقيت — فهم -T​

يقترح nmap ست سرعات: من -T0 إلى -T5. ليست هدايا؛ إنها خيارات.

القالبالمعدّلالاستخدام
-T0 paranoid5 دقائق بين الحزممخصّص للتفادي الشديد أمام IDS.
-T1 sneaky15 ثانية بين الحزمللتفادي أيضاً، لكن أقل بطئاً.
-T2 polite400 ملي‌ثانية بين الحزمعتاد هشّ، شبكات صناعية.
-T3 normalالافتراضي.اختبار اختراق كلاسيكي في مختبر أو LAN.
-T4 aggressiveسريع.هدف قوي، اتصال واسع.
-T5 insaneسريع جداً.دقة أقل، سلبيات كاذبة متكررة.

القاعدة: -T3 ما لم يكن هناك سبب دقيق لغير ذلك. -T4 على أهداف سحابية حديثة. لا -T5 أبداً في الإنتاج، ولو كان صاخباً.

يمكنكم الضبط الدقيق بواسطة --max-rate، --min-rate، --scan-delay، --host-timeout — لكن 95% من الوقت يكفي -T.


6. سكربتات NSE — قدرة هائلة، حذر هائل​

يحمل nmap أكثر من 600 سكربت (/usr/share/nmap/scripts/). مصنَّفة بحسب الفئات. الأكثر فائدة:

الفئةما تفعلهالحذر
default (أو -sC)سكربتات شائعة، غير مدمِّرة.منخفض.
safeلا تُضعف الخدمة.منخفض.
discoveryتكتشف أشياء، دون استغلال.منخفض.
versionتحسّن كشف الإصدار.منخفض.
authتكتشف إعدادات مصادقة، وأحياناً تحاول تسجيل الدخول.متوسط.
vulnتكتشف ثغرات معروفة. غالباً، تُحرّكها جزئياً.مرتفع.
exploitتستغل فعلياً.لا تُطلق دون نيّة واضحة.
intrusiveقد تُسقط الخدمة.لا تُطلق أبداً على الإنتاج.
dosتُسقط الخدمة.ممنوعة خارج المختبر.

الممارسة الجيدة: --script "safe and default" في مسح الاكتشاف. سكربتات موجّهة (smb-vuln-*، http-shellshock، إلخ) بعد تحديد أثر ما.

الممارسة السيّئة: --script vuln في مسح واسع. تكسرون أشياء ولن تعرفوا أيّها.


7. تعداد Windows / SMB​

على منظومة Windows / Active Directory، المنجم الحقيقي هو SMB (المنفذ 445) وLDAP (389، 636). الأدوات:

الأداةما تفعله
enum4linux-ngتُعدِّد المستخدمين، المجموعات، المشاركات، السياسة عبر جلسة فارغة أو ببيانات اعتماد.
smbclient -L //cible/ -Nتسرد المشاركات دون مصادقة.
crackmapexec smb <cible>سكين SMB السويسري: راية الخدمة، المشاركات، اختبارات المصادقة، التنفيذ عن بُعد.
nxc smb <cible>الخلف المُصان لـ crackmapexec (NetExec).
smbmap -H <cible> -u <user> -p <pass>تسرد الصلاحيات على كل مشاركة.
ldapsearch -x -H ldap://<cible>استعلامات LDAP مجهولة إن كانت مسموحة.

ما نبحث عنه:

  • وصول عبر جلسة فارغة (-u '' -p '') يعطي قائمة المستخدمين = ذهب.
  • مشاركة SYSVOL أو NETLOGON قابلة للقراءة دون كلمة مرور = أمر شاذّ، إلا على DC.
  • مشاركات IPC$، ADMIN$، C$ متاحة بحساب نطاق عادي.
  • سياسة كلمة المرور (الطول، انتهاء الصلاحية، القفل) — مفيدة لـ password spraying لاحقاً.

8. Wireshark — التحقق مما نبثّه فعلياً​

Wireshark ليس أداة هجومية بالمعنى الدقيق. لكن مختبِر اختراق لا يستخدمها هو مختبِر أعمى.

ثلاثة استخدامات:

  1. التحقق من حركة مروركم الخاصة. أطلقوا nmap وراقبوا Wireshark: شاهدوا كم حزمة ترسلون فعلياً. nmap -T4 على /24 قد يرسل عشرات آلاف من SYN في 30 ثانية.
  2. فهم الأخطاء. مسح يُظهر filtered — لماذا؟ هل ICMP محظور في الرجوع، أم أن RST مُمتص؟
  3. إيجاد بروتوكولات مفاجئة. يرى nmap الكلاسيكي المنافذ. يرى Wireshark المحادثات — mDNS ثرثار، LLMNR غير معطّل، Elasticsearch يستجيب عبر البث.

مرشّحات يجب حفظها عن ظهر قلب:

tcp.flags.syn == 1 and tcp.flags.ack == 0       # SYN صادرة
tcp.flags.reset == 1 # RST مستلَمة
smb2 # حركة SMB2
dns.qry.name contains "internal" # استعلامات DNS مشبوهة

9. Scapy — عندما لا يكفي nmap​

Scapy هي مكتبة Python تتيح تصنيع حزمة يدوياً، حقلاً حقلاً. مفيدة عندما:

  • تريدون اختبار تركيبة أعلام محدَّدة لا يقترحها nmap أصلاً.
  • تريدون إرسال حزمة واحدة ورؤية الاستجابة بوضوح.
  • تريدون تصنيع fuzzing خفيف للبروتوكول.

الحد الأدنى الضروري:

from scapy.all import IP, TCP, UDP, ICMP, sr1

reponse = sr1(IP(dst="10.10.10.12") / TCP(dport=445, flags="S"), timeout=2, verbose=0)
if reponse and reponse.haslayer(TCP):
print("Flags reçus :", reponse[TCP].flags)

flags في الرد:

  • 0x12 (SYN+ACK) ← المنفذ مفتوح.
  • 0x14 (RST+ACK) ← المنفذ مغلق.
  • None ← مُصفّى.

كتبتم للتو، في ثلاثة أسطر، مسح منفذ يتحايل على توقيعات nmap التي يتعرّف عليها بعض أنظمة IDS. هذه هي قوة Scapy.


10. الأخطاء المكلفة​

  • إطلاق -A من البداية. تخلطون بين الاكتشاف، الإصدارات، نظام التشغيل، السكربتات، وtraceroute. لا تعرفون بعد ذلك ماذا جاء من أين. اعملوا طبقة تلو الأخرى.
  • التصديق بالمسح الأول. قد يكون منفذ filtered بسبب IPS عابر. أعيدوا المسح، اربطوا النتائج.
  • نسيان UDP. تفوّتون SNMP، IKE، SIP، TFTP — خدمات كثيراً ما تحمل المفتاح.
  • عدم التسجيل. احفظوا النتائج دائماً بـ -oA <prefix>. ملف .xml يُستخدم في msfconsole → db_import.
  • المسح ليلاً على LAN لشركة. SOC لا ينام. أبلغوا جهة التصعيد قبلاً.
  • استخدام عنوان IP واحد فقط. IP محروق في بداية المهمة = مهمة مُبطَّأة. جهّزوا خطة بديلة (VPN، واجهة ثانية).

11. ما يجب تذكّره​

  • نشِط = حزم عند الهدف. استحضروا هذا ذهنياً مع كل أمر.
  • مسح طبقة تلو الأخرى: اكتشاف ← منافذ ← إصدارات ← NSE موجّه.
  • ستّ حالات منفذ. كل واحدة تروي قصة.
  • -T3 افتراضياً، -sS افتراضياً. تضبطون لاحقاً.
  • NSE: safe افتراضياً، vuln فقط على أهداف محدَّدة، intrusive أبداً دون خطة.
  • SMB هو منجم Windows الذهبي — احفظوا nxc smb عن ظهر قلب.
  • Wireshark للفهم، Scapy للتصنيع.

الدرس القادم: نعود إلى مختبر الأسبوع 1، نضيف ضحية Linux ثانية، ونرسم خريطة كل شيء، بدقة ونظافة.