Kubernetes Namespace Escalation
W Kubernetes jest dość powszechne, że w jakiś sposób uda ci się dostać do przestrzeni nazw (poprzez kradzież pewnych poświadczeń użytkownika lub kompromitację poda). Jednak zazwyczaj będziesz zainteresowany eskalacją do innej przestrzeni nazw, ponieważ tam można znaleźć bardziej interesujące rzeczy.
Oto kilka technik, które możesz wypróbować, aby uciec do innej przestrzeni nazw:
Wykorzystaj uprawnienia K8s
Oczywiście, jeśli konto, które ukradłeś, ma wrażliwe uprawnienia w przestrzeni nazw, do której chcesz się wydostać, możesz wykorzystać działania takie jak tworzenie podów z kontami usług w NS, wykonywanie powłoki w już istniejącym podzie wewnątrz ns lub odczytywanie tajemnicy tokenów SA.
Aby uzyskać więcej informacji na temat uprawnień, które można wykorzystać, przeczytaj:
pageAbusing Roles/ClusterRoles in KubernetesUcieczka do węzła
Jeśli możesz uciec do węzła, zarówno dlatego, że skompromitowałeś pod i możesz uciec, jak i dlatego, że możesz utworzyć uprzywilejowany pod i uciec, możesz zrobić kilka rzeczy, aby ukraść inne tokeny SA:
Sprawdź, czy w innych kontenerach Docker uruchomionych na węźle są zamontowane tokeny SA
Sprawdź, czy na węźle są nowe pliki kubeconfig z dodatkowymi uprawnieniami udzielonymi węzłowi
Jeśli jest to włączone (lub włącz to samodzielnie), spróbuj utworzyć lustrzane pody innych przestrzeni nazw, ponieważ możesz uzyskać dostęp do kont tokenów domyślnych tych przestrzeni nazw (nie testowałem tego jeszcze)
Wszystkie te techniki są wyjaśnione w:
pageAttacking Kubernetes from inside a PodLast updated