
استغلال CVE-2023-44604. باستخدام جهاز افتراضي بنظام Kali Linux (المهاجم) وجهاز افتراضي خادم بنظام Debian 11 (الضحية).
[تحذير]
هذا المشروع مخصص للأغراض التعليمية والمخبرية فقط. استخدم هذه التقنيات فقط في بيئات تملكها أو مخوّل لك اختبارها.
سيحاكي هذا المختبر استغلال ثغرة CVE-2023-46604، باستخدام جهاز افتراضي بنظام Kali Linux (المهاجم) وجهاز افتراضي خادم بنظام Debian 11 (الضحية).
يعمل هذا المختبر فقط إذا كان نظام تشغيل جهازك المضيف هو Windows!
--> إذا كنت تستخدم Linux، فلن يعمل هذا المختبر!
تحذير
سيتم تثبيت برمجيات Apache و Java تلقائيًا (باستخدام نصوص برمجية) على الأجهزة الافتراضية. لا تثبّت هذه البرامج يدويًا على جهازك المضيف!
نستخدم البرمجيات التالية في هذا التمرين:
قم بتثبيت VBoxManage، واجعل الأمر متغيرًا بيئيًا:
استنسخ المستودع أو نزّله إلى موقع تختاره. (يجب أن تتمكن أوامر vboxmanage من العمل في هذا المجلد)
C:\Users\<user_name>\CVE-2023-46604\بعد استنساخ المستودع على نظامك المحلي، أضف داخل ذلك المجلد (\CVE-2023-46604\) مجلدًا جديدًا باسم VDI\.
يجب أن يبدو هيكل مجلداتك الآن على النحو التالي:
CVE-2023-46604\
│
├── .gitignore
│
├── LICENSE
│
├── README.md
│
├── scripts\
│ ├── DebCreate.ps1
│ ├── DebDelete.ps1
│ ├── KalCreate.ps1
│ ├── KalDelete.ps1
│ ├── sshDebian.ps1
│ ├── sshKali.ps1
│ ├── softwareInstallDebian.sh
│ └── softwareInstallKali.sh
│
└── VDI\
تستخدم النصوص البرمجية في هذا المختبر ملفات VDI لإنشاء الأجهزة الافتراضية وحذفها. سنقوم الآن بتنزيل ملفات VDI التالية:
CVE-2023-46604\VDI\.Debian-original.vdi.CVE-2023-46604\VDI\.Kali-original.vdi.يجب أن يبدو هيكل مجلداتك الآن على النحو التالي:
CVE-2023-46604\
│
├── .gitignore
│
├── LICENSE
│
├── README.md
│
├── scripts\
│ ├── DebCreate.ps1
│ ├── DebDelete.ps1
│ ├── KalCreate.ps1
│ ├── KalDelete.ps1
│ ├── sshDebian.ps1
│ ├── sshKali.ps1
│ ├── softwareInstallDebian.sh
│ └── softwareInstallKali.sh
│
└── VDI\
├── Debian-original.vdi
└── Kali-original.vdi
اسم المستخدم: osboxes
كلمة المرور: osboxes.org
cd scripts
.\DebCreate.ps1
.\sshDebian.ps1
[ملاحظة]
عند أول اتصال SSH، قد ترى رسالة مثل:The authenticity of host '[127.0.0.1]:2220' can't be established. ED25519 key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no/[fingerprint])?هذا أمر طبيعي. يحذّرك SSH من أن مفتاح استضافة الجهاز الافتراضي غير مخزّن بعد في ملف
.ssh/known_hostsالخاص بك.
إذا أردت تفقّد جهاز Debian الافتراضي، يمكنك الاتصال عبر SSH بالجهاز:
ssh -p2220 [email protected]
اسم المستخدم: osboxes
كلمة المرور: osboxes.org
cd scripts
.\KalCreate.ps1
vboxmanage startvm "Kali Linux"
# When enabling ssh, the server will from then on start on boot.
sudo systemctl enable ssh
# Power off the VM.
sudo poweroff
من هذه النقطة فصاعدًا، سيبدأ SSH تلقائيًا عند إقلاع الجهاز الافتراضي.
إذا أردت تفقّد جهاز Kali الافتراضي، يمكنك الاتصال عبر SSH بالجهاز:
ssh -p2225 [email protected]
.\sshKali.ps1
[ملاحظة]
عند أول اتصال SSH، قد ترى رسالة مثل:The authenticity of host '[127.0.0.1]:2225' cant be established. ED25519 key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no/[fingerprint])?هذا أمر طبيعي. يحذّرك SSH من أن مفتاح استضافة الجهاز الافتراضي غير مخزّن بعد في ملف
.ssh/known_hostsالخاص بك.
أصبح لديك الآن وصول بتنفيذ الأوامر عن بُعد (RCE) إلى جهاز Debian الضحية الافتراضي.
يمكنك تنفيذ بعض أوامر Linux للتحقق من أن لديك الآن وصولًا عن بُعد إلى جهاز Debian11 الافتراضي:
# Show the current directory
pwd
# Check the operating system
cat /etc/os-release
# Check the current user
whoami
# Check the kernel information
uname -a
بعد استغلال ناجح:
┌─────────────────────┐
│ Host System │
│ (VirtualBox Host) │
└─────────┬───────────┘
│
┌────────────────┴────────────────┐
│ │
NAT + Port Forwarding NAT + Port Forwarding
SSH: localhost:2225 SSH: localhost:2220
│ │
┌───────────┴───────────┐ ┌───────────┴───────────┐
│ Kali Linux VM │ │ Debian 11 Server │
│ (Attacker) │ │ (Victim) │
│ │ │ │
│ NIC1: NAT │ │ NIC1: NAT │
│ NIC2: Internal Net │<───────>│ NIC2: Internal Net │
│ "inet" │ │ "inet" │
└───────────────────────┘ └───────────────────────┘
عندما تريد إنشاء جهاز افتراضي، ما عليك سوى تشغيل الأمر التالي في المجلد scripts/:
.\DebCreate.ps1.\KaliCreate.ps1عند إنشاء جهاز افتراضي جديد، يقوم النصان البرمجيان DebCreate.ps1 وKalCreate.ps1 أولاً بعمل نسخة من ملف VDI الأصلي (مثال: Debian-original.vdi). بعدها يستخدم VBoxManage هذه النسخة لإنشاء الجهاز الافتراضي.
يضمن ذلك ألا يتم حفظ أي تثبيتات برمجية أو تغييرات في الإعدادات تتم داخل جهاز افتراضي في عمليات إنشاء الأجهزة الافتراضية المستقبلية، مما يسمح لكل جهاز افتراضي جديد بالبدء من VDI نظيف.
بعد الخروج من جهاز افتراضي، يمكنك إدخال أحد الأمرين التاليين لحذف الجهاز الافتراضي (ونسخة من VDI). قم بتشغيل أحد الأوامر التالية في المجلد scripts/:
.\DebDelete.ps1.\KaliDelete.ps1عند إنشاء الأجهزة الافتراضية، فإنها تستخدم نسخة من VDI الأصلي للعمل. وبهذه الطريقة، عند حذف جهاز افتراضي، لن تجد البرمجيات المثبتة سابقًا ما زالت موجودة على جهاز افتراضي جديد.