الاستطلاع النشط — المفاهيم
أنتم خارجون للتو من أسبوعين من الاستخبارات الصامتة. هذا الأسبوع، نضرب. كل حزمة ترسلونها يمكن رصدها وتسجيلها والربط بينها. مسح سيّئ الضبط يعني IDS يصرخ، وعميلاً يتصل بكم، واختباراً يبدأ بالأحمر.
مسح المنافذ على عنوان IP لا يخصكم ولا تملكون له تفويضاً كتابياً هو فعل عدائي قانونياً في معظم الأنظمة القضائية، حتى عندما لا تجدون شيئاً. هذا الدرس بأكمله يُنفَّذ على مختبركم الخاص أو على أهداف مشمولة باتفاقية RoE.
ما ستعرفون فعله بعد هذا الدرس
- اختيار المسح المناسب للحظة المناسبة (سريع، كامل، خفي، عدواني).
- قراءة نتيجة Nmap سطراً بسطر، بما في ذلك
filtered،open|filtered،unfiltered. - تعداد خدمة Windows باستخدام
enum4linux-ng،smbclient،crackmapexec. - استخدام Wireshark للتحقق مما ينتجه مسحكم فعلياً على السلك.
- تصنيع حزمة يدوياً بواسطة Scapy عندما لا يفعل
nmapما تريدون. - تقدير تكلفة الضجيج لمسح ما قبل إطلاقه.
1. الانتقال من السلبي إلى النشط: ما الذي يتغيّر فعلاً
في الوضع السلبي، لا أحد يعرف أنكم موجودون. في الوضع النشط، عنوان IP الخاص بكم موجود في سجلات الهدف. ثلاث نتائج ملموسة:
- آثاركم مؤرَّخة. أمر
nmap -p-علىvictim.com، الساعة 03:14 من 12 أبريل، يُكتشَف. - آثاركم قابلة للعزو. عنوان IP المصدر، بصمة TCP/IP، ترويسة
User-Agentفي HTTP، ترتيب الحزم — كل ذلك يروي من تكونون. - الدفاعات ترد. يمكن لـ 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 paranoid | 5 دقائق بين الحزم | مخصّص للتفادي الشديد أمام IDS. |
-T1 sneaky | 15 ثانية بين الحزم | للتفادي أيضاً، لكن أقل بطئاً. |
-T2 polite | 400 مليثانية بين الحزم | عتاد هشّ، شبكات صناعية. |
-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 ليس أداة هجومية بالمعنى الدقيق. لكن مختبِر اختراق لا يستخدمها هو مختبِر أعمى.
ثلاثة استخدامات:
- التحقق من حركة مروركم الخاصة. أطلقوا
nmapوراقبوا Wireshark: شاهدوا كم حزمة ترسلون فعلياً.nmap -T4على/24قد يرسل عشرات آلاف من SYN في 30 ثانية. - فهم الأخطاء. مسح يُظهر
filtered— لماذا؟ هل ICMP محظور في الرجوع، أم أن RST مُمتص؟ - إيجاد بروتوكولات مفاجئة. يرى
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 ثانية، ونرسم خريطة كل شيء، بدقة ونظافة.