
نموذج برمجي لاستخدام ثغرة CVE-2019-5736 لتعدين البيتكوين دون أي ارتباط بالحاوية أو المستخدم الأصلي.
يستخدم هذا مكتبتين مفتوحتين المصدر:
تم اختبار هذا على Kali Linux، مع Docker الإصدار 18.03.0 و RunC الإصدار 1.0.0-rc5.
هروب حاوية docker يشغّل عدة خوادم تعدين (daemons) تابعة للعملية #1 (النواة). هذا يعني أن موارد الحاسوب تُستخدم في التعدين دون أن ترتبط موارد السكريبت/الحوسبة بحاويتك.
يستغل هذا الثغرة CVE-2019-5736. عند تشغيل الحاوية، يستخدم docker أداة docker-runc لتشغيلها، ونصل إلى pid الخاص بـ runc الذي يشغّل حاويتنا. ثم نمرر التنفيذ إلى برنامج آخر (overwrite_runc) مع الرابط الرمزي لملف runc الثنائي. هذا الرابط الرمزي يوجهنا مباشرة إلى واصف الملف الخاص بملف runc الثنائي. وهذا يسمح لنا بفتح واصف ملف runc للكتابة واستبداله. من خلال استبداله بسكريبت خبيث، عند إيقاف تشغيل الحاوية، ينفذ السكريبت بصلاحيات الجذر، مما يسمح لنا بتشغيل عامل تعدين العملات الرقمية (cryptominer).
يؤدي هذا إلى استبدال ملف runc الثنائي على بيئة الاختبار، لذا من الحكمة نسخ الملف الأصلي قبل تشغيل هذا.
لا تستخدم هذا على أنظمة حقيقية قابلة للاستغلال.