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

الاستطلاع النشط — ورشة عملية

تعيدون العرض التوضيحي بمفردكم. ثلاث حاويات، منهجية نظيفة، تقرير كنتم لتسلّموه لعميل. هذا هو الهيكل العظمي للاستطلاع الذي سيرافقكم طوال مسيرتكم المهنية.

المدة: من 90 دقيقة إلى ساعتين.

التسليمة: ~/labs/rapport/reconnaissance.md (صفحتان) وكل الآثار في ~/labs/scans/ + ~/labs/captures/.

المختبر بأمر واحد

قدّمت الوحدة 01 مختبر Docker بحاوية واحدة. هنا ننتقل إلى ثلاث حاويات على نفس الشبكة الخاصة: مهاجم Kali وهدفان بملامح مختلفة جداً، لإجباركم على تنويع مسوحاتكم. الـ compose يقوم بكل العمل:

cd labs/docker/module-04-recon-active
docker compose up -d

بعد ثلاثين ثانية، لديكم شبكة 10.20.30.0/24 بثلاثة أجهزة فيها. كأنكم تمسحون شريحة داخلية حقيقية.


ما يجب عليكم تسليمه​

في نهاية الورشة، سيكون لديكم، في ~/labs/ داخل حاوية المهاجم (محفوظ على مضيفكم):

  1. scans/decouverte.txt — مخرَج مسح ARP الأولي.
  2. scans/12-ports.nmap + scans/20-ports.nmap — مسوحات TCP كاملة لكل هدف.
  3. scans/12-versions.nmap + scans/20-versions.nmap — مسوحات الإصدارات.
  4. scans/20-nse.nmap — سكربتات NSE موجّهة نحو الثغرات المتوقعة.
  5. scans/20-udp.nmap + scans/20-snmp.txt — استطلاع UDP وجرد SNMP.
  6. scans/20-smb.txt — تعداد SMB (مشاركات، مستخدمون، سياسة).
  7. scans/12-web.txt — استطلاع الويب (whatweb، gobuster، curl).
  8. captures/scan-syn.pcap — أثر tcpdump لمسح SYN.
  9. scans/scapy-verification.txt — مخرَج سكربت Scapy.
  10. rapport/reconnaissance.md — صفحتان، بنية مفروضة.

المتطلبات المسبقة​

يجب أن تكونوا قد أنهيتم الوحدة 01: Docker Desktop جاهز للعمل، صورة inskillsec/kali-lab مبنيّة مسبقاً. إن لم يكن الأمر كذلك، ارجعوا إلى ورشة الوحدة 01 للبناء الأول (عشر دقائق تقريباً).

تحقّق سريع:

docker images inskillsec/kali-lab
docker info | grep -i "operating"

إذا لم تكن inskillsec/kali-lab مدرجة، سيبنيها الـ compose عند أول أمر — انتظروا.


الخطوة 1 — تشغيل المختبر (دقيقتان)​

cd labs/docker/module-04-recon-active
docker compose up -d

تنطلق ثلاث حاويات: المهاجم (10.20.30.5)، الهدف Linux الغني (10.20.30.20)، والهدف الويب النظيف (10.20.30.12).

تحقّقوا من الصحة:

cd ..
./verifier-lab.sh module-04-recon-active # bash / macOS / Linux / WSL
.\verifier-lab.ps1 module-04-recon-active # PowerShell

يجب أن تروا ثلاث خدمات running. إذا بقيت m04-cible-linux في حالة starting، انتظروا ثلاثين ثانية إضافية: Metasploitable 2 يُطلق خدمات كثيرة (Apache، Samba، MySQL، PostgreSQL، distccd، SNMP…) قبل أن يكون جاهزاً.

ادخلوا إلى المهاجم:

cd module-04-recon-active
docker compose exec attaquant bash

أنشئوا بنية المخرَجات:

mkdir -p ~/labs/{scans,captures,rapport}
cd ~/labs
تعريف — لماذا يحتاج هذا المختبر إلى cap_add: NET_ADMIN, NET_RAW

تعمل حاوية Docker الاعتيادية بمجموعة محدودة من capabilities في Linux. لا يمكنها تعديل واجهاتها الشبكية، ولا تصنيع حزم خام (SYN بلا ACK مثلاً)، ولا تشغيل tcpdump. هذا مناسب لخادم ويب، لكنه قاتل لمختبر هجومي.

قدرتان لا غنى عنهما هنا. NET_RAW تُجيز فتح مقابس raw، تلك التي يستخدمها Nmap من أجل -sS (مسح SYN)، وتلك التي تستخدمها Scapy لتصنيع حزمة يدوياً، وتلك التي تستخدمها arp-scan وtcpdump لقراءة إطارات Ethernet مباشرة. NET_ADMIN تُجيز التلاعب بالمسارات وتعديل الواجهات — مفيدة لبعض سكربتات NSE ولـ arp-scan على بعض النوى.

الـ compose الخاص بالوحدة 04 يضيفهما لحاوية المهاجم وحدها:

cap_add:
- NET_ADMIN
- NET_RAW

لا حق للأهداف في ذلك — لا سبب لديها لمسح أي شيء. هذا مبدأ أقل الامتيازات، مطبَّقاً على مستوى الحاوية.


الخطوة 2 — اكتشاف الطبقة 2 (5 دقائق)​

نقطة انطلاق أي استطلاع داخلي: من يتحدّث على هذه الشريحة؟

sudo arp-scan --interface=eth0 --localnet | tee scans/decouverte.txt

ترون ثلاثة أسطر (أو أربعة، مع البوابة 10.20.30.1 لشبكة Docker). دوّنوا عنواني IP الهدف:

export CIBLE_LINUX=10.20.30.20
export CIBLE_WEB=10.20.30.12

اكتشاف بديل، دون ARP:

sudo nmap -sn 10.20.30.0/24 -oN scans/decouverte-nmap.txt

يجب أن تُرجع الطريقتان العدد نفسه من المضيفين. أي فارق يكشف مشكلة في مختبركم.

تعريف — لماذا ARP هو الاكتشاف الأكثر موثوقية داخلياً

على شريحة شبكة محلية، يجب على كل مضيف معرفة عنوان MAC لجيرانه لإرسال حزمة إليهم. هذه الآلية، ARP، لا يمكن تصفيتها: حتى جهاز لديه ICMP محظور، TCP مُصفّى، كل المنافذ مغلقة، يجب أن يستجيب لطلب ARP ليبقى قابلاً للوصول من بوابته. إنه بروتوكول من الطبقة 2، تحت كل ما يمكن لجدار ناري على مستوى التطبيق أن يراه.

لهذا يبدأ المهاجم الجادّ دائماً بـ ARP عندما يكون على الشريحة. ping sweep (nmap -sn) يكفي على شبكات كثيرة، لكن على LAN حيث المحطات مُحصَّنة وترفض ICMP، يبقى ARP الوسيلة الموثوقة الوحيدة لعدّ المضيفين الأحياء. اتخاذ هذه العادة منذ الأسبوع 1 سيجنّبكم تفويت نصف شبكة في مهمة حقيقية.

انتبهوا: لا يعمل ARP إلا على نفس الشريحة التي أنتم عليها. إذا كان المهاجم موجَّهاً نحو VLAN آخر، لن يُظهر ARP شيئاً بعد الآن. في هذه الحالة، يجب إما التمحور، أو الانتقال إلى اكتشافات الشبكة (ICMP، SYN عبر TCP على منافذ محتملة).


الخطوة 3 — منافذ TCP (10 دقائق)​

امسحوا كل منافذ TCP على كل هدف. في Docker، الرابط ممتاز، يمكننا رفع الوتيرة:

sudo nmap -sS -Pn -p- --min-rate 4000 $CIBLE_LINUX -oN scans/20-ports.nmap
sudo nmap -sS -Pn -p- --min-rate 4000 $CIBLE_WEB -oN scans/12-ports.nmap

للتحقّق:

  • 10.20.30.20 يفتح عشرين منفذاً تقريباً (21، 22، 23، 25، 53، 80، 111، 139، 445، 512-514، 1099، 1524، 2049، 2121، 3306، 3632، 5432، 5900، 6000، 6667، 8009، 8180…). ملمح خادم أُهمِلت صيانته تاريخياً.
  • 10.20.30.12 لا يفتح إلا المنفذ 80. خادم حديث، محافَظ عليه جيداً، دور واحد. ملمح نصف المواقع الحديثة على الويب.

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


الخطوة 4 — الإصدارات (10 دقائق)​

استخرجوا قوائم المنافذ المفتوحة وأعيدوا تشغيل -sV على هذه المنافذ فقط:

sudo nmap -sV -p 80 $CIBLE_WEB -oN scans/12-versions.nmap

sudo nmap -sV -p 21,22,23,25,53,80,111,139,445,512-514,1099,1524,2049,3306,3632,5432,5900,6000,6667,8009,8180 \
$CIBLE_LINUX -oN scans/20-versions.nmap

انظروا ما يكشفه Nmap:

grep -E "vsftpd|OpenSSH|Samba|MySQL|Apache|Postgres|distcc" scans/20-versions.nmap
grep -E "nginx|X-Powered" scans/12-versions.nmap

يجب أن تقرأوا:

  • vsftpd 2.3.4 (الصديق القديم من الوحدة 01)
  • Samba smbd 3.X - 4.X
  • MySQL 5.0.51a
  • Apache/2.2.8
  • distccd v1
  • nginx 1.27.x (ترويسة Server غير مخفيّة)

التسليمة: في rapport/، لكل هدف، دوّنوا الخدمات الخمس الأكثر إثارة للاهتمام مع إصدارها الدقيق. هذه مادتكم لقسم «النتائج» في التقرير.


الخطوة 5 — سكربتات NSE موجّهة (10 دقائق)​

سكربتات NSE (Nmap Scripting Engine) تحوّل Nmap من ماسح منافذ إلى أداة تأكيد ثغرات. نُطلق فقط السكربتات ذات الصلة بما وجدناه — أبداً --script vuln عشوائياً، فقد يعطّل خدمات.

على الهدف Linux:

sudo nmap --script "ftp-vsftpd-backdoor,smb-vuln-cve2009-3103,smb-enum-shares,smb-os-discovery,http-vuln-*" \
-p 21,80,139,445 $CIBLE_LINUX -oN scans/20-nse.nmap

على الهدف الويب:

sudo nmap --script "http-headers,http-title,http-methods,http-robots.txt,http-enum" \
-p 80 $CIBLE_WEB -oN scans/12-nse.nmap

التسليمة: في rapport/، قائمة الثغرات (CVE) المؤكَّدة بواسطة NSE مع العنوان المعني ومرجع CVE. للهدف Linux، يجب أن تجدوا الباب الخلفي vsftpd 2.3.4 (CVE-2011-2523) وربما Samba usermap (CVE-2007-2447).

تعريف — لماذا لا نُطلق أبداً nmap --script vuln في مسح واسع

--script vuln يجمع نحو 150 سكربت NSE، بعضها مدمِّر. بعضها يختبر ثغرة عبر إحداث السلوك الخطير عمداً — فيضان ذاكرة يُسقط الخدمة، استعلام SQL يُقفل جدولاً، إرسال مشوَّه يُدخل موجّهاً في حلقة.

في المختبر، لا مشكلة. في الإنتاج لدى عميل، --script vuln في مكان غير مناسب قد يُخرج قاعدة بيانات عن الخدمة لثلاث ساعات. لديكم العقد الذي يُجيز لكم الاختبار، ليس لديكم العقد الذي يُجيز لكم التعطيل.

القاعدة: نُطلق NSE بحسب فئة دقيقة، بناءً على ما كشفه مسح الإصدارات. رأيتم SMB؟ smb-vuln-* موجّهاً. رأيتم HTTP؟ http-headers، http-methods. رأيتم FTP؟ ftp-anon، ftp-vsftpd-backdoor. كل سكربت مذكور صراحةً في أمركم، مع المنطق في التقرير. هذا أيضاً ما يتيح للعميل إعادة تشغيل مسوحاتكم للتحقق من إصلاحاته.


الخطوة 6 — UDP وSNMP (10 دقائق)​

UDP أبطأ وغالباً ما يُنسى. لهذا السبب تحديداً يجب الذهاب إليه.

sudo nmap -sU --top-ports 25 $CIBLE_LINUX -oN scans/20-udp.nmap

إذا كان SNMP (161/udp) مفتوحاً:

snmpwalk -v 2c -c public $CIBLE_LINUX sysDescr
snmpwalk -v 2c -c public $CIBLE_LINUX hrSWRunName > scans/20-snmp.txt
snmpwalk -v 2c -c public $CIBLE_LINUX iso.3.6.1.2.1.4.20 >> scans/20-snmp.txt

اختبروا communities شائعة أخرى:

onesixtyone -c /usr/share/wordlists/onesixtyone/dict.txt $CIBLE_LINUX -o scans/20-community-strings.txt

التسليمة: عدد communities SNMP المكتشفة وملخّص الجرد (نظام التشغيل، العمليات، الواجهات) في rapport/.

تعريف — SNMP، الكنز المنسي لشبكات الشركات

يعود SNMP (Simple Network Management Protocol) إلى عام 1988. يُستخدم لمراقبة وإدارة المفاتيح والموجّهات والطابعات والخوادم عن بُعد — أي شيء يشغّل وكيلاً. تستخدم النسخة 1 community string، كلمة مرور مشتركة بنص صريح، تُترك تقريباً دائماً على قيمتها الافتراضية: public للقراءة، private للكتابة.

ما يجعل SNMP رائعاً لمهاجم: مقروءاً بنص صريح، يوفّر كامل الجرد البرمجي والمادي للآلة. إصدار النظام، قائمة العمليات، عناوين الشبكة، جداول ARP، جداول التوجيه، المستخدمون المتصلون، المشاركات المُحمَّلة. على شبكة حقيقية، snmpwalk على خادم مضبوط جيداً أفضل من whoami; ip addr; ps aux; ss -tunap مجتمعة.

النسخة 3 تصحّح كل شيء — مصادقة، تشفير، تحكّم بالوصول. لكن في 2026، لا تزال غالبية المفاتيح والطابعات تعمل بـ SNMPv1/v2c بـ public سليمة. مؤشّر شبه مثالي على نضج شبكة ما: بيئة لا يكون فيها SNMP قابلاً للوصول أبداً بـ public قد خضعت للتدقيق. في مكان آخر، إنه بابكم الأغنى.


الخطوة 7 — تعداد SMB عميق (15 دقيقة)​

المنفذ 445 هو صديقكم الأفضل داخلياً. على Metasploitable 2، هو مفتوح ويسرّب تقريباً كل ما يمكن لنطاق أن يسرّبه.

# Bannière + signing
nxc smb $CIBLE_LINUX

# Partages en session nulle (sans identifiant)
nxc smb $CIBLE_LINUX -u '' -p '' --shares > scans/20-shares.txt

# Utilisateurs par RID cycling
enum4linux-ng -R $CIBLE_LINUX -oJ scans/20-rid.json

# Politique de mot de passe
enum4linux-ng -P $CIBLE_LINUX > scans/20-policy.txt

# Tout dans un fichier lisible
enum4linux $CIBLE_LINUX > scans/20-smb.txt 2>&1

التسليمة: في rapport/، دوّنوا:

  • ما إذا كان signing: False (يُتيح ترحيل NTLM)
  • قائمة المشاركات المتاحة في جلسة فارغة (عادةً tmp بصلاحية الكتابة على Metasploitable 2)
  • عدد المستخدمين المعدَّدين
  • سياسة كلمة المرور (الطول الأدنى، القفل)

الخطوة 8 — استطلاع الويب (15 دقيقة)​

الهدف الويب لا يُظهر أي ثغرة قابلة للاستغلال. لكنه يسرّب كثيراً بمجرّد الحفر. هذه حالة نصف المواقع الداخلية التي ستمسحونها في مهمة.

# Fingerprint applicatif
whatweb -a 3 http://$CIBLE_WEB > scans/12-web.txt
echo "---" >> scans/12-web.txt

# Headers et status
curl -s -I http://$CIBLE_WEB/ >> scans/12-web.txt
echo "---" >> scans/12-web.txt

# robots.txt et sitemap
curl -s http://$CIBLE_WEB/robots.txt >> scans/12-web.txt
echo "---" >> scans/12-web.txt
curl -s http://$CIBLE_WEB/sitemap.xml >> scans/12-web.txt
echo "---" >> scans/12-web.txt

# Force brute des paths (petite liste ciblée)
gobuster dir -u http://$CIBLE_WEB \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-q -o scans/12-gobuster.txt

# Consulter les paths intéressants trouvés
for p in "/admin/" "/api/v1/" "/backup/" "/.env.example" "/package.json"; do
echo "=== $p ==="
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://$CIBLE_WEB$p
done > scans/12-paths.txt

# Récupérer le .env.example et le package.json
curl -s http://$CIBLE_WEB/.env.example > scans/12-env-example.txt
curl -s http://$CIBLE_WEB/package.json > scans/12-package.txt

انظروا ماذا يسرّب .env.example:

cat scans/12-env-example.txt

تجدون فيه: اسم خادم SMB (dev-server)، منفذ MySQL، مستخدماً بقراءة فقط (intranet_ro). هذا بالضبط نوع الأثر المتروك في المستودعات العامة سهواً، والذي يمنح مهاجماً أول قائمة حسابات ليختبرها.

وملف package.json:

cat scans/12-package.txt

يكشف إصداراً تطبيقياً دقيقاً وكل التبعيات مع إصداراتها. بذلك، يمكنكم البحث عن الثغرات (CVE) المعروفة لكل تبعية على nvd.nist.gov — دون حتى لمس الهدف.

تعريف — «تسريبات المعلومات» الصامتة، تلك التسريبات التي لا تعطّل شيئاً

لا يصنّف OWASP تسريب المعلومات ضمن Top 10 كحرج — لأنه بمفرده، لا يعرّض شيئاً للخطر. لا shell تم الحصول عليه، لا كلمة مرور مسرَّبة، لا بيانات عميل مكشوفة. ملف .env.example على خادم ليس خرقاً، بل ملف شرعي.

لكن في الحياة الحقيقية لمهاجم، هذه التسريبات هي وقود كل ما تبقّى. اسم خادم داخلي مذكور في مثال تهيئة يصبح عنواناً يُستهدف. قائمة تبعيات مع إصداراتها تصبح قائمة ثغرات محتملة. عنوان بريد مسؤول متروك في تعليق HTML يصبح هدف تصيّد. راية Nginx بـ 1.14.0 تصبح تذكرة استطلاع لتجربة ثغرات هذا الفرع.

لهذا يخصّص تدقيق جادّ وقتاً لهذه الاكتشافات، حتى عندما لا تقود إلى شيء بمعزل عن غيرها. يُدرجها تقرير العميل تحت «كشف معلومات»، مع التوصية الضمنية: أزيلوا هذه الملفات أو أخفوا هذه الترويسات، ليس لأنها قابلة للاستغلال مباشرة، بل لأنها توفّر للمهاجم العشرين ساعة التي كان سيقضيها في التخمين.


الخطوة 9 — التقاط tcpdump (10 دقائق)​

لا Wireshark في Docker (لا واجهة رسومية). نلتقط بـ tcpdump، ونفتح ملف PCAP على مضيفنا بـ Wireshark.

في طرفية أولى داخل حاوية المهاجم:

sudo tcpdump -i eth0 -w captures/scan-syn.pcap host $CIBLE_LINUX and tcp

في طرفية ثانية داخل حاوية المهاجم (docker compose exec attaquant bash من مضيفكم):

sudo nmap -sS -p 22,80,445,3389 10.20.30.20

عودوا إلى الطرفية الأولى، Ctrl+C على tcpdump.

تحقّقوا من الالتقاط:

tcpdump -r captures/scan-syn.pcap -c 20
capinfos captures/scan-syn.pcap # si disponible

على مضيفكم، يظهر الملف في labs/docker/module-04-recon-active/attaquant-home/captures/scan-syn.pcap. افتحوه بـ Wireshark المحلي.

طبّقوا المرشّح:

tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.dst == 10.20.30.20

عدّوا الحزم المرسَلة، تحقّقوا أن المصدر هو فعلاً 10.20.30.5 (المهاجم).

التسليمة: ملف PCAP + لقطة شاشة من Wireshark تُظهر المرشّح.


الخطوة 10 — تمرين على Scapy (5 دقائق)​

اكتبوا scapy_check.py في ~/labs/:

#!/usr/bin/env python3
from scapy.all import IP, TCP, sr1

CIBLES = {
"10.20.30.20": [21, 22, 23, 80, 139, 445, 3306],
"10.20.30.12": [80, 443, 22],
}

for ip, ports in CIBLES.items():
print(f"\n=== {ip} ===")
for p in ports:
r = sr1(IP(dst=ip) / TCP(dport=p, flags="S"), timeout=2, verbose=0)
if r is None:
print(f" {p}/tcp filtered")
elif r.haslayer(TCP):
flags = int(r[TCP].flags)
if flags == 0x12:
print(f" {p}/tcp open (SYN/ACK)")
elif flags & 0x04:
print(f" {p}/tcp closed (RST)")
else:
print(f" {p}/tcp ? (flags={hex(flags)})")

نفّذوا:

sudo python3 scapy_check.py | tee scans/scapy-verification.txt

التسليمة: يجب أن يوافق المخرَج ما قاله Nmap في الخطوة 3. أي فارق = مشكلة يجب فهمها — واجهة خاطئة، تصفية خفية، قدرة ناقصة.


الخطوة 11 — تحرير التقرير (25 دقيقة)​

افتحوا rapport/reconnaissance.md. صفحتان. لا أكثر.

# Rapport de reconnaissance — Lab semaine 4 (date)

## 1. Résumé exécutif (5 lignes maximum)
Cartographie de deux hôtes dans le segment 10.20.30.0/24. Deux profils
opposés : un serveur Linux historique très bavard, et un intranet nginx
correctement configuré mais qui fuit son inventaire logiciel.
Priorités pour la phase suivante : 1) vsftpd 2.3.4, 2) Samba usermap,
3) énumération des comptes MySQL sans mot de passe.

## 2. Périmètre et méthode
- Réseau : 10.20.30.0/24, réseau Docker bridge, isolé.
- Attaquant : Kali 10.20.30.5 (conteneur inskillsec/kali-lab).
- Méthode : ARP → ping sweep → SYN scan tous ports → -sV ciblé →
NSE par catégorie → UDP top-25 → énumération SMB → reconnaissance web →
vérification Scapy.

## 3. Résultats — 10.20.30.20 (cible Linux, "dev-server")
- OS : Ubuntu 8.04 (SNMP + banner Apache).
- Ports TCP notables : 21, 22, 80, 139, 445, 3306, 3632, 5432, 5900, 8180…
- Vulnérabilités confirmées par NSE :
- CVE-2011-2523 (vsftpd 2.3.4 backdoor)
- CVE-2007-2447 (Samba usermap script)
- Comptes énumérés par session nulle : root, msfadmin, user, service…
- SNMP community "public" : inventaire complet lisible.
- Partage /tmp accessible en écriture par session nulle.
- Priorité 1 pour exploitation : vsftpd backdoor (facile, silencieuse).

## 4. Résultats — 10.20.30.12 (cible web, "intranet")
- Serveur : nginx 1.27.x, header Server bavard.
- Applicatif : Intranet-App 2.3.1 (Node.js).
- Aucune CVE confirmée directement.
- Expositions d'information :
- /.env.example — fournit nom du serveur SMB et compte MySQL ro.
- /package.json — expose 8 dépendances avec versions.
- /admin/ et /api/v1/ existent mais protégés (401/403).
- robots.txt liste 17 paths internes qui n'existent pas forcément
tous, mais montrent l'architecture attendue.
- Priorité pour exploitation : chercher des CVE sur les 8 dépendances
listées dans package.json.

## 5. Plan pour les modules 5 à 8
1. Exploiter vsftpd 2.3.4 (déjà éprouvé en module 01).
2. Exploiter Samba usermap script (Metasploit).
3. Extraire les hashs de tous les comptes locaux.
4. Réutiliser les identifiants extraits contre l'intranet.

## 6. Artefacts
- scans/12-ports.nmap, scans/20-ports.nmap : scans TCP complets.
- scans/12-versions.nmap, scans/20-versions.nmap : scans de versions.
- scans/12-nse.nmap, scans/20-nse.nmap : NSE ciblés.
- scans/20-udp.nmap, scans/20-snmp.txt : recon UDP.
- scans/20-smb.txt, scans/20-rid.json, scans/20-policy.txt : SMB.
- scans/12-web.txt, scans/12-gobuster.txt, scans/12-env-example.txt : web.
- captures/scan-syn.pcap : capture tcpdump.
- scans/scapy-verification.txt : vérification indépendante Scapy.

شبكة التقييم الذاتي​

  • scans/decouverte.txt يحتوي عنواني IP هدف.
  • ملفان *-ports.nmap — كل منافذ TCP ممسوحة.
  • ملفان *-versions.nmap — كشف الإصدارات.
  • مسح NSE موجَّه لكل هدف (أبداً --script vuln عشوائياً).
  • مسح UDP top-25 على الهدف Linux.
  • مخرَج snmpwalk محفوظ إذا كان SNMP مفتوحاً.
  • تعداد SMB: راية + مشاركات + مستخدمون + سياسة.
  • استطلاع الويب: whatweb + gobuster + .env.example + package.json.
  • التقاط tcpdump لمسح SYN، PCAP قابل للفتح في Wireshark على المضيف.
  • سكربت Scapy مُنفَّذ، المخرَج محفوظ، متّسق مع Nmap.
  • تقرير من صفحتين مبنيّ وفق النموذج أعلاه.
  • لم يُطلَق أي أمر خارج الشبكة الفرعية 10.20.30.0/24.

ما يعطّل عادةً​

العرضالسبب المحتملالتصحيح
arp-scan : permission deniedCapabilities NET_RAW غير مضافةتحقّقوا من cap_add: في الـ compose، docker compose down ثم up -d.
nmap -sS مرفوضنفس السبب — لا مقبس خامنفسه.
tcpdump لا يُظهر شيئاًواجهة خاطئةip -brief address داخل الحاوية لإيجاد واجهة Docker.
-sV يُظهر unknown في كل مكانالهدف ليس جاهزاً بعدانتظروا 30 ثانية، docker compose ps يجب أن يُظهر healthy للهدف.
SNMP لا يستجيبMetasploitable 2 ليس جاهزاً بعدانتظروا 30 ثانية إضافية، أو docker compose restart cible-linux.
enum4linux-ng بطيء جداًطبيعي — نداءات RPC كثيرةتحلّوا بالصبر، لن يكون سريعاً أبداً.
gobuster : connection refusedcible-web قيد إعادة التشغيلdocker compose logs cible-web، تحقّقوا من صياغة nginx.
Wireshark لا يفتح PCAPالمسار على المضيف، لا في الحاويةخذوا الملف من labs/docker/module-04-recon-active/attaquant-home/captures/.

ما تخرجون به من هذه الورشة​

  • منهجية مسح قابلة لإعادة الإنتاج حرفياً في 90 دقيقة، صالحة لأي شريحة داخلية.
  • تقرير استطلاع يمكنكم إدراجه، كما هو، في ملحق اختبار اختراق لعميل.
  • فهم تكلفة الضجيج لكل خيار في Nmap.
  • عادة التقاط حركة مروركم الخاصة — الخطوة الأولى نحو التفادي في red team.
  • قائمة مرتَّبة من الثغرات لاستغلالها في الوحدات 5، 7، 8، 9.
  • دليل ملموس على أن موقعاً بلا ثغرة قابلة للاستغلال يمكنه تسريب كمية صادمة من المعلومات — درس يجب أن يتذكّره عملاؤكم.

الخطوة القادمة: اختبار الوحدة. ثم ندخل في جوهر اختبار الاختراق — البحث عن الثغرات واستغلالها.