Kubernetes Namespace Escalation
Kubernetes'te genellikle bir şekilde bir namespace'e erişim sağlarsınız (kullanıcı kimlik bilgilerini çalma veya bir pod'u ele geçirme yoluyla). Ancak genellikle daha ilginç şeylerin bulunduğu başka bir namespace'e yükseltme yapmak isteyeceksiniz.
Farklı bir namespace'e kaçmak için deneyebileceğiniz bazı teknikler şunlardır:
K8s yetkilerini kötüye kullanma
Eğer ele geçirdiğiniz hesabın, yükseltme yapmak istediğiniz namespace üzerinde hassas yetkilere sahipse, NS içinde hizmet hesaplarıyla pod oluşturma, NS içinde zaten var olan bir pod'da shell çalıştırma veya gizli SA belgelerini okuma gibi eylemleri kötüye kullanabilirsiniz.
Hangi yetkileri kötüye kullanabileceğiniz hakkında daha fazla bilgi için şunu okuyun:
Abusing Roles/ClusterRoles in KubernetesNode'a kaçış
Bir pod'u ele geçirdiyseniz ve kaçış yapabiliyorsanız veya ayrıcalıklı bir pod oluşturup kaçış yapabiliyorsanız, diğer SA belgelerini çalmak için çeşitli şeyler yapabilirsiniz:
Node'da çalışan diğer docker konteynerlerine bağlanmış SA belgelerini kontrol edin
Node'da ek izinlerle yeni kubeconfig dosyalarını kontrol edin
Etkinleştirilmişse (veya kendiniz etkinleştirin) diğer namespace'lerin yansıtılmış pod'larını oluşturmaya çalışın, çünkü bu şekilde bu namespace'lerin varsayılan token hesaplarına erişebilirsiniz (henüz bunu test etmedim)
Bu tekniklerin hepsi şurada açıklanmıştır:
Attacking Kubernetes from inside a PodLast updated