
CVE-2024-22515 رفع ملف عشوائي و CVE-2024-22514 تنفيذ تعليمات برمجية عن بُعد لـ AgentDVR 5.1.6.0 (مُوثَّق)
CVE-2024-22515 رفع ملف تعسفي و CVE-2024-22514 تنفيذ كود عن بُعد لـ AgentDVR 5.1.6.0 (مصادق عليه)
(الإصدارات الأقدم من المحتمل أن تتأثر)
https://github.com/Orange-418/CVE-2024-22514-Remote-Code-Execution
https://github.com/Orange-418/CVE-2024-22515-File-Upload-Vulnerability
https://www.ispyconnect.com/docs/agent/about
https://www.youtube.com/watch?v=RXmoXERWVk8
تم الاختبار على الإصدارين 4.7.3.0 و 5.1.6.0. الإصدارات بينهما والأقدم من المحتمل أيضًا أن تكون متأثرة. تم الاختبار على تثبيتات Windows x64 و Linux x64 و Docker. تجدر الإشارة إلى أن مسار الاستغلال لنظام Windows يختلف قليلاً. بدلاً من استدعاء bash، يمكنك استدعاء ملف exe مباشرة، مثل "/AgentDVR/sounds/payload.exe".
يحتوي AgentDVR الإصدار 5.1.6.0 على ثغرتين: ثغرة رفع ملف تعسفي، وثغرة تنفيذ ملف تعسفي. تتسلسل هاتان الثغرتان معًا لتحقيق تنفيذ أي ملف تم رفعه بشكل تعسفي، بما في ذلك الحمولات الضارة. يؤدي ذلك إلى إمكانية تنفيذ الأوامر عن بُعد (RCE) من قبل أفراد لديهم بيانات اعتماد صالحة لخادم AgentDVR.
نظرًا لطبيعة البرنامج الذي يستخدم WebRTC إلى حد كبير، لم أقم بإنشاء سكريبت PoC. ومع ذلك، فإن العملية اليدوية منخفضة التعقيد للغاية. إذا قام شخص ما بإنشاء سكريبت PoC واتصل بي، سأقوم بربطه هنا.
أولاً، بعد تسجيل الدخول إلى لوحة التحكم، أضف جهازًا جديدًا. قم بإنشاء جهاز "Dummy" فقط بالإعدادات الافتراضية.

على الجهاز، أضف إجراءً لتشغيل مهمة إذا تم التقاط صورة. ثم، أضف مهمة، واختر "تنفيذ أمر" واختر أي "ملف" من القائمة المنسدلة للأمر الذي سيتم تشغيله.

الآن، قم بإعداد الحمولة الخاصة بك. يمكنك تعديل واستخدام ملف "payload.sh" في هذا المستودع. إنه سكريبت reverse shell بسيط جدًا.
بعد أن يصبح جاهزًا، ارجع إلى قائمة الخادم، واختر "رفع ملف". اختر "صوت"، وابدأ في تصفح الملف، لكن قم بتبديل قائمة اختيار الملفات من "*.wav" إلى "جميع الملفات".


بعد ذلك، ارجع إلى قائمة الخادم، واختر "نسخ احتياطي/استعادة". اختر "تنزيل". ستحصل على ملف zip يحتوي على عدة ملفات XML مختلفة.

قم باستخراج المحتويات وافتح ملف "config.xml". بالقرب من الأسفل ستجد سطرًا مشابهًا لـ '<Directory Entry="/path/to/media/"'. هذا مهم لأنه يمثل هيكل المجلد لتثبيت AgentDVR، والذي يمكن أن يأتي بعدة أشكال مختلفة، حسب نوع التثبيت.

بعد ذلك، قم بتحرير ملف objects.xml، وابحث عن سطر بالقرب من الأسفل مشابه لـ '<entry type="EXE" param1='. قم بتحرير المسار، الذي يجب أن يستدعي ملف bat تنبيه افتراضي، وأدخل مسارًا يستدعي bash ثم يستدعي سكريبت .sh الخاص بك. يمكنك نمذجة المسار من الخطوة السابقة لتعرف ما ستدرجه.

بعد هذا، يمكنك المضي قدمًا وبدء المستمع الخاص بك.

الآن، ارجع إلى قائمة الخادم، واختر "نسخ احتياطي/استعادة" مرة أخرى. هذه المرة، اختر رفع ملف، واختر ملف "objects.xml" المعدل.

يجب أن تعيد لوحة التحكم التشغيل مع التغييرات. الآن، من الناحية النظرية، يجب أن يكون لديك كاميرا وهمية مع تنبيه لتشغيل سكريبت reverse shell الخاص بك عند التقاط صورة. مع بدء المستمع، انقر بزر الماوس الأيمن على بث الكاميرا الوهمية، واختر "التقاط صورة".

يجب أن يكون لديك الآن شل جذر.
