الاستطلاع النشط — عرض توضيحي موجَّه
مختبر واحد، ثلاثة أهداف. نمرّ بكل طبقات المسح، نقرأ كل مخرَج، ونخرج بخطة هجوم واضحة في النهاية. لا شيء مدمِّر — نريد الخريطة، لا الرماد.
كل ما يلي يجري داخل مختبر host-only من الوحدة 1، مُوسَّعاً إلى ثلاثة أجهزة. لا أمر شرعي خارج مختبر تملكونه أو هدف مشمول باتفاقية RoE.
ما ستعرفون فعله بعد هذا الدرس
- اكتشاف المضيفين الأحياء دون معرفة IP مسبقاً.
- رسم خريطة الخدمات والإصدارات في ثلاث تمريرات منطقية لـ Nmap.
- تعداد مشاركة SMB دون كلمة مرور واستخراج قائمة مستخدمين.
- رصد خدمة UDP منسيّة (SNMP)، مع community string الافتراضية.
- توحيد تقرير استطلاع من صفحتين.
الديكور الموسَّع
استعيدوا مختبر الأسبوع 1 وأضيفوا آلة افتراضية ثالثة تعمل بـ Linux وقابلة للاختراق.
| الجهاز | الدور | IP |
|---|---|---|
| Kali | المهاجم | 10.10.10.5 |
| Metasploitable 3 (Windows) | الهدف 1 | 10.10.10.12 |
| Metasploitable 2 (Linux) | الهدف 2 | 10.10.10.20 |
يُنزَّل Metasploitable 2 من SourceForge. استوردوها، ضعوها على نفس host-only network، وفرضوا عنوانها على 10.10.10.20.
أنشئوا مجلد المهمة:
mkdir -p ~/labs/semaine-04/{scans,captures,rapport}
cd ~/labs/semaine-04
الخطوة 1 — اكتشاف الطبقة 2 (ARP)
اكتشاف سلبي في ضجيجه: ARP أصليّ على LAN، لا يجذب أنظمة IDS.
sudo arp-scan --interface=eth0 --localnet | tee scans/arp.txt
المخرَج:
Interface: eth0, type: EN10MB, MAC: 08:00:27:aa:bb:cc, IPv4: 10.10.10.5
Starting arp-scan 1.9.7 with 256 hosts
10.10.10.1 0a:00:27:00:00:0a VirtualBox
10.10.10.12 08:00:27:c3:5f:1e PCS Systemtechnik GmbH (VirtualBox)
10.10.10.20 08:00:27:aa:12:34 PCS Systemtechnik GmbH (VirtualBox)
3 packets received by filter, 0 packets dropped by kernel
ثلاثة أسطر، هدفان. 10.10.10.1 هو مضيف VirtualBox (يُتجاهل). منظومة اختبارنا: .12 و.20.
الخطوة 2 — الاكتشاف عبر ping (ICMP + TCP)
arp-scan لا يعمل خارج LAN. لمسح أوسع، يجمع nmap -sn بين ICMP echo، وSYN عبر TCP على 443 و80، وARP عندما يكون ذلك ممكناً.
sudo nmap -sn 10.10.10.0/24 -oA scans/hosts
cat scans/hosts.gnmap | grep Up
المخرَج:
Host: 10.10.10.12 () Status: Up
Host: 10.10.10.20 () Status: Up
يؤكد ما قاله ARP. جيّد.
الخطوة 3 — مسح كامل لمنافذ TCP
دفعة واحدة، كل المنافذ، لكن جهاز واحد في كل مرّة. نسجّل:
sudo nmap -sS -Pn -p- --min-rate 2000 10.10.10.12 -oA scans/12-ports
sudo nmap -sS -Pn -p- --min-rate 2000 10.10.10.20 -oA scans/20-ports
مقتطف من .20 (Metasploitable 2):
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
3632/tcp open distccd
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
قراءة سريعة:
telnet(23)،rsh/rexec/rlogin(512-514): بروتوكولات صريحة — مناجم ثغرات؛ ستُصرِخ أي عملية تدقيق.distccd(3632): distributed compiler — RCE تاريخية.ingreslock(1524): باب خلفي معروف لهذه الآلة الافتراضية (shell جذر مباشر).X11(6000): خادم رسومي مكشوف على الشبكة.- MySQL وPostgreSQL مكشوفان دون المرور بواجهة أمامية.
هذه الآلة الافتراضية صُنعت لتُدمَّر — كل شيء فيها مفتوح. على هدف حقيقي، قائمة كهذه تكون إشارة على بنية تحتية مهجورة.
الخطوة 4 — كشف الإصدارات
لا نطلب الإصدارات إلا على المنافذ المفتوحة. استعيدوا القائمة:
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 \
10.10.10.20 -oA scans/20-versions
مقتطف:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
الكلمة السحرية: vsftpd 2.3.4. هذا الإصدار المحدَّد يحوي باباً خلفياً معروفاً علناً (الشهير vsftpd 2.3.4 smiley face backdoor، CVE-2011-2523). يكفي إرسال تسجيل دخول يحتوي :) ليُفتح shell جذر على المنفذ 6200. سنتناوله في الوحدة 5.
الأمر نفسه في Samba 3.x: تاريخ من الثغرات (usermap script، EternalRed…). هدف مؤكَّد.
الخطوة 5 — مسح UDP موجَّه
nmap -sU -p- طويل جداً (أكثر من 10 ساعات). نستهدف منافذ UDP التي غالباً ما تحمل شيئاً:
sudo nmap -sU --top-ports 20 10.10.10.20 -oA scans/20-udp
المخرَج:
PORT STATE SERVICE
53/udp open domain
69/udp open|filtered tftp
111/udp open rpcbind
137/udp open netbios-ns
161/udp open snmp
2049/udp open nfs
SNMP (161) مفتوح. SNMP عبر UDP، بمجتمع افتراضي public، هو الوكيل الذي يكشف الجرد الكامل للآلة.
التحقق:
snmpwalk -v 2c -c public 10.10.10.20 sysDescr
snmpwalk -v 2c -c public 10.10.10.20 hrSWRunName | head
المخرَج:
SNMPv2-MIB::sysDescr.0 = STRING: Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "init"
HOST-RESOURCES-MIB::hrSWRunName.2 = STRING: "sshd"
HOST-RESOURCES-MIB::hrSWRunName.3 = STRING: "mysqld"
HOST-RESOURCES-MIB::hrSWRunName.4 = STRING: "apache2"
...
تعرفون الآن النواة الدقيقة، إصدار التوزيعة، قائمة العمليات الجارية. دون مصادقة. دون استغلال.
الخطوة 6 — تعداد SMB بواسطة nxc
على 10.10.10.12 (Windows) و10.10.10.20 (Linux بـ Samba)، الأداة نفسها:
nxc smb 10.10.10.12 10.10.10.20
المخرَج:
SMB 10.10.10.12 445 METASPLOITABLE3 [*] Windows Server 2008 R2 SP1 (name:METASPLOITABLE3) (domain:METASPLOITABLE3) (signing:False) (SMBv1:True)
SMB 10.10.10.20 445 METASPLOITABLE [*] Unix (Samba 3.0.20-Debian) (name:METASPLOITABLE) (domain:WORKGROUP) (signing:False) (SMBv1:True)
Signing:False في كل مكان: هجمات SMB relay ستكون ممكنة. لاحظوها للوحدة 10.
لنعدّد المشاركات دون مصادقة:
nxc smb 10.10.10.12 -u '' -p '' --shares
nxc smb 10.10.10.20 -u '' -p '' --shares
المخرَج على .20:
SMB 10.10.10.20 445 METASPLOITABLE [+] METASPLOITABLE\:
SMB 10.10.10.20 445 METASPLOITABLE [*] Enumerated shares
SMB 10.10.10.20 445 METASPLOITABLE Share Permissions Remark
SMB 10.10.10.20 445 METASPLOITABLE ----- ----------- ------
SMB 10.10.10.20 445 METASPLOITABLE print$ READ Printer Drivers
SMB 10.10.10.20 445 METASPLOITABLE tmp READ,WRITE oh noes!
SMB 10.10.10.20 445 METASPLOITABLE opt READ
SMB 10.10.10.20 445 METASPLOITABLE IPC$ NO ACCESS IPC Service
مشاركة tmp بصلاحية READ,WRITE في جلسة فارغة. يمكن لمهاجم أن يودع فيها حمولة وينفّذها عن بُعد (انظر الوحدة 8).
هل المستخدمون قابلون للتعداد؟
enum4linux-ng -U 10.10.10.20
مقتطف:
users:
user: games
user: msfadmin
user: postgres
user: user
user: service
msfadmin — حساب المسؤول الافتراضي لهذه الآلة الافتراضية. على هدف حقيقي، قائمة المستخدمين عبر جلسة فارغة هي تسريب كبير. هنا، نلاحظها ونتقدّم.
الخطوة 7 — Wireshark أثناء المسح
افتحوا Wireshark على Kali، التقطوا على eth0، وأطلقوا مسحاً خفيفاً:
sudo nmap -sS -p 22,80,445 10.10.10.20
في Wireshark، المرشّح:
tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.dst == 10.10.10.20
ترون:
- ثلاث حزم SYN من عنوانكم نحو
.20:22،.20:80،.20:445. - ثلاث SYN/ACK في الرجوع (منافذ مفتوحة) ← في كل مرّة، يرسل Kali الخاص بكم RST (نمطي في مسح SYN).
أنتم ترون الآن ما كان الهدف سيراه في سجلاته الخاصة — نفس عنوان المصدر، نفس التسلسل، نفس النافذة في TCP. هذه بصمتكم. في اختبار اختراق صاخب، نتقبّلها؛ في red team، نموّهها (انظر الوحدة 8).
الخطوة 8 — Scapy في العرض التوضيحي
مسح Xmas لمنفذ واحد، يدوياً:
from scapy.all import IP, TCP, sr1
for port in [22, 445, 3389, 8080]:
reponse = sr1(
IP(dst="10.10.10.12") / TCP(dport=port, flags="FPU"),
timeout=2, verbose=0
)
if reponse is None:
print(f"{port}/tcp open|filtered (pas de réponse)")
elif reponse.haslayer(TCP):
flags = reponse[TCP].flags
if flags == 0x14: # RST+ACK
print(f"{port}/tcp closed (RST reçu)")
else:
print(f"{port}/tcp ? (flags={hex(int(flags))})")
المخرَج:
22/tcp open|filtered (pas de réponse)
445/tcp open|filtered (pas de réponse)
3389/tcp open|filtered (pas de réponse)
8080/tcp closed (RST reçu)
التفسير: منافذ Windows تُرجع RST للحزم العادية، لكن Windows في مسح Xmas لا يستجيب — سلوك غير مطابق لـ RFC 793. مفيد للتمييز بين Windows وLinux، على مستوى منخفض جداً. هذا النوع من الحيل حيث تتفوّق Scapy على nmap.
الخطوة 9 — التوحيد
افتحوا ~/labs/semaine-04/rapport/reconnaissance.md واملؤوه:
# Rapport de reconnaissance — Lab semaine 4 (2026-04-16)
## 1. Hôtes vivants
- 10.10.10.12 Windows Server 2008 R2 (Metasploitable 3)
- 10.10.10.20 Linux Ubuntu 8.04 (Metasploitable 2)
## 2. Cible 10.10.10.12 — Windows
- Ports ouverts TCP : 22, 80, 135, 139, 445, 3306, 3389, 4848, 8080
- SMB : SMBv1, signing:False, MS17-010 vulnérable (revoir semaine 1)
- Priorité 1 : réexploiter EternalBlue si non patché.
## 3. Cible 10.10.10.20 — Linux
- Ports ouverts TCP : voir scans/20-ports.gnmap (24 ports ouverts)
- Ports UDP notables : 53, 161 (SNMP public), 2049 (NFS)
- Services vulnérables identifiés :
- CRITIQUE : vsftpd 2.3.4 → backdoor CVE-2011-2523
- CRITIQUE : Samba 3.0.20 → usermap script (CVE-2007-2447)
- CRITIQUE : distccd → RCE (CVE-2004-2687)
- CRITIQUE : ingreslock 1524 → backdoor shell root direct
- HAUTE : SNMP community "public" → fuite d'inventaire
- Session nulle SMB : liste des utilisateurs obtenue (msfadmin, user, service…)
- Partage tmp writable en session nulle.
## 4. Plan pour la semaine 5-8
1. Vérifier chacune des 4 CVE de la .20 via NSE ciblés.
2. Confirmer MS17-010 sur .12.
3. Extraire l'inventaire complet SNMP de la .20.
4. Préparer une exploitation vsftpd (semaine 8, Metasploit).
## 5. Artefacts
- scans/*.gnmap, scans/*.xml, scans/*.nmap (12 fichiers)
- captures/wireshark-syn-scan.pcapng
- rapport/reconnaissance.md (ce fichier)
الحصيلة
في 45 دقيقة من مسح مُدار جيداً، دون تعطيل خدمة واحدة:
- رسمتم خريطة جهازين بعمق.
- عزلتم خمس ثغرات حرجة مؤكَّدة أو مرجّحة جداً.
- لديكم بصمة حركة مرور في Wireshark، يمكنكم عرضها على العميل («ها هو ما كان على أنظمة IDS لديكم أن تراه»).
- لديكم خطة للأسابيع 5 إلى 8.
هذه نهاية الاستطلاع. ابتداءً من الوحدة 5، ندخل في الاستغلال.