
يوفر بيئة حاوية وقالب Nuclei موقّعًا لاختبار CVE-2025-32463 بأمان، وهي ثغرة تصعيد صلاحيات في sudo، مع مقارنة بين الإصدار المكتشف والإصدار المُصحَّح.
هذه هي المرة الأولى التي أقوم فيها بنقل استغلال خبيث إلى قالب Nuclei لفحص ثغرات غير تدخلي لا يزال يُظهر المشكلة الأساسية.
لقد وثّقت العملية بمزيد من التفاصيل تحديدًا كتمرين تعليمي.
كانت التحديات الرئيسية التي واجهتها:
-itags local، نظرًا لأن الوسم المحلي يتم تجاهله افتراضيًا في إعدادات .nuclei-ignore.قد يبدو غريبًا أنني اخترت بيئة Windows لهذا النشاط. الحقيقة أن Windows هو نظام التشغيل الافتراضي لدي لأسباب لن أخوض فيها هنا.
docker-compose up --build -d
يستخدم هذا القالب محرك code الذي يتطلب التوقيع لأسباب أمنية. القالب موقّع بالفعل في هذا المستودع.
تم تكوين ملف docker-compose.yaml لتركيب مفاتيح توقيع Nuclei الخاصة بنظام Windows من %APPDATA%\nuclei\keys داخل الحاويات. وهذا يسمح بالتحقق من القالب الموقّع.
على مضيف Windows (يتطلب تثبيت Nuclei).
nuclei -t cve-2025-32463.yaml -sign
سيؤدي هذا إلى توقيع القالب وإضافة حقل digest.
ملاحظة: في المرة الأولى التي تشغّل فيها هذا الأمر، سيقوم Nuclei بإنشاء مفاتيح توقيع في %APPDATA%\nuclei\keys وسيطالبك بـ:
Linux/macOS/Git Bash:
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD:
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
بديل (يعمل على جميع المنصات):
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
ملاحظات:
-code مطلوب لتفعيل القوالب القائمة على بروتوكول الكودsh -c '...' لتجنب مشكلات تحويل المسارات في Windows مع MSYS2/Git Bash[INF] Executing 1 signed templates from <your-username>Windows PowerShell/CMD:
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
بديل (يعمل على جميع المنصات):
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
ملاحظات:
-code مطلوب لتفعيل القوالب القائمة على بروتوكول الكود"..." أو الأمر البديل بدون sh -c[INF] Executing 1 signed templates from <your-username>إذا كنت تريد التحقق من الثغرة دون توقيع قالب Nuclei، يمكنك تشغيل سكربت الاستغلال مباشرة:
انسخ السكربت وشغّله.
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
المخرجات المتوقعة: woot! متبوعة بقشرة جذر (في الوضع التفاعلي).
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
تأكيد الاكتشاف: UID=1000 EUID=0 يثبت أن الكود من testuser (1000) تم تنفيذه بامتيازات الجذر (0).
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
لم يتم اكتشاف أي ثغرة - إصدار sudo المُصحح يمنع تحميل المكتبة.
للحصول على شرح تقني مفصل للثغرة ونواقل الهجوم ومنهجية الاكتشاف، راجع مستند الملاحظات التقنية.