
إثبات مفهوم لاستغلال ثغرة حقن أوامر في وحدة إدارة المهام في VitalPBX، يوضح تسليم حمولة شل عكسية عبر التلاعب بملف تعريف cron.
عنوان الثغرة: حقن أوامر
المؤلف: إريك دوارتي
الإصدار: < 3.2.5-2
تحدث الثغرة عند استخدام وحدة مدير المهام (Task Manager) بالتزامن مع ملف تعريف كرون (Cron Profile). لاستغلال هذه الثغرة، نحتاج إلى وضع سكريبت في مجلد معين داخل نظام التشغيل. المجلد هو "/var/lib/vitalpbx/scripts".
لذا، بدافع الفضول، بدأت بتحليل ما يتم إرساله إلى الخادم باستخدام Burp. للقيام بذلك، قمت بإنشاء ملف تعريف كرون (Cron Profile) ليتم تنفيذه كل دقيقة.

بعد ذلك، قمت بإنشاء مدير المهام (Task Manager).

في حقل السكريبت، لاحظت أنه يمرر اسم الملف. لذا، قررت إدخال حمولة عكسية (reverse shell) مشفرة بـ base64 (فقط لتجنب الأخطاء الناتجة عن الأحرف الخاصة) وأرسلتها.

ثم، أرسلت طلب POST فقط لتطبيق الإعدادات.

وها هي، حصلنا على شيل.

أدرك أن الأمر يتطلب صلاحيات مرتفعة نسبياً، ويعتمد أيضاً على وجود سكريبت في الدليل المحدد. في فيتال بي بي إكس، من الممكن إنشاء عدة مستخدمين ومنح أنواع مختلفة من الأذونات. ماذا سيحدث إذا تم ضبط هذه الأذونات بشكل خاطئ؟ بالإضافة إلى ذلك، هناك خيار إنشاء مستأجر (Tenant). إذا تمكن أحد هؤلاء المستأجرين من استغلال هذه الثغرة، فقد يتمكن من الوصول الكامل إلى الخادم، بما في ذلك المستأجرين الآخرين.
آمل أن تساهم اكتشافاتي في مجتمع الأمان، وأثق بأن فيتال بي بي إكس ستقوم بإجراء التصحيحات اللازمة.