Kubernetes OPA Gatekeeper bypass

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Originalni autor ove stranice je Guillaume

Zloupotreba pogrešne konfiguracije

Nabrajanje pravila

Imati pregled može pomoći da se zna koja su pravila aktivna, u kojem režimu i ko može da ih zaobiđe.

Sa CLI

bash
$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations                                                             constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryAnnotations
k8smandatorylabels                                                                  constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryLabel
constrainttemplates                                                                 templates.gatekeeper.sh/v1                         false        ConstraintTemplate

ConstraintTemplate i Constraint mogu se koristiti u Open Policy Agent (OPA) Gatekeeper-u za sprovođenje pravila na Kubernetes resursima.

bash
$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Sa GUI

Grafički korisnički interfejs može biti dostupan za pristup OPA pravilima putem Gatekeeper Policy Manager. To je "jednostavan samo-za-čitanje web UI za pregled statusa OPA Gatekeeper politika u Kubernetes klasteru."

Pretražite izloženu uslugu:

bash
$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

Isključeni namespaces

Kao što je prikazano na slici iznad, određena pravila se možda neće primenjivati univerzalno na sve namespaces ili korisnike. Umesto toga, funkcionišu na osnovu bele liste. Na primer, liveness-probe ograničenje je isključeno iz primene na pet navedenih namespaces.

Bypass

Sa sveobuhvatnim pregledom Gatekeeper konfiguracije, moguće je identifikovati potencijalne pogrešne konfiguracije koje bi mogle biti iskorišćene za sticanje privilegija. Potražite whitelisted ili isključene namespaces gde pravilo ne važi, a zatim izvršite svoj napad tamo.

Abusing Roles/ClusterRoles in Kubernetes

Iskorišćavanje ValidatingWebhookConfiguration

Još jedan način za zaobilaženje ograničenja je fokusiranje na ValidatingWebhookConfiguration resurs:

Kubernetes ValidatingWebhookConfiguration

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks