
صياغة حزم TCP/IP خام لإرسالها إلى خوادم Kubernetes غير المهيأة بشكل جيد - CVE-2020-8558 PoC
مستودع يحتوي على نص بايثون يمكن استخدامه لإنشاء حزم TCP/IP خام.
يُستخدم لاختبار الحزم المريخية بعد ثغرة أُعلنت في كوبيرنيتس (kube-proxy: CVE-2020-8558). يغطي هذا الإثبات المفاهيمي (PoC) تجاوز حدود localhost من الحاوية (pod) إلى العقدة (node) (المضيف).
للحصول على إثبات مفاهيمي بسيط وقوي لجزء العقدة إلى العقدة من الثغرة، انظر هنا.
إسناد إنشاء الحزم:
https://inc0x0.com/tcp-ip-packets-introduction/tcp-ip-packets-3-manually-create-and-send-raw-tcp-ip-packets/
https://gist.github.com/NickKaramoff/b06520e3cb458ac7264cab1c51fa33d6
يوجد ملف Dockerfile وملف pod manifest لنشر الاستغلال إلى كوبيرنيتس لإثبات بسهولة ما إذا كانت المجموعة (cluster) معرضة للخطر. تم تحديث البرنامج النصي لاستهداف خادم واجهة برمجة تطبيقات Kube غير المُوثَّق على المنفذ 8080 الذي يعمل على العقد الرئيسية (سينشر manifest إلى عقدة رئيسية).
سيستخدم الاستغلال REST API لخادم واجهة برمجة تطبيقات Kube لإنشاء حاوية (pod) في مساحة الأسماء الافتراضية لمجموعتك بالاسم: youve-been-pwned. هذه الحاوية تقوم فقط بإخراج نص في حلقة لا نهائية وستحتاج إلى حذف يدوي.
واجهت بعض المشكلات في مجموعات معينة (تعمل ببرنامج Cilium) عند بدء العملية فور إنشاء الحاوية، حيث لم يتم استلام أي حزمة SYN/ACK من المضيف بعد إرسال حزمة SYN أولية. قمت بالتغلب على هذا باستخدام النص start.sh، الذي يتحقق فقط من أن الشبكة تعمل قبل بدء الاستغلال - ويبدو أن هذا ساعد.