Kubernetes ValidatingWebhookConfiguration
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
L'autore originale di questa pagina è Guillaume
Definizione
ValidatingWebhookConfiguration è una risorsa Kubernetes che definisce un webhook di validazione, che è un componente lato server che convalida le richieste API Kubernetes in arrivo rispetto a un insieme di regole e vincoli predefiniti.
Scopo
Lo scopo di un ValidatingWebhookConfiguration è definire un webhook di validazione che applicherà un insieme di regole e vincoli predefiniti sulle richieste API Kubernetes in arrivo. Il webhook convaliderà le richieste rispetto alle regole e ai vincoli definiti nella configurazione e restituirà un errore se la richiesta non è conforme alle regole.
Esempio
Ecco un esempio di un ValidatingWebhookConfiguration:
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: example-validation-webhook
namespace: default
webhook:
name: example-validation-webhook
clientConfig:
url: https://example.com/webhook
serviceAccountName: example-service-account
rules:
- apiGroups:
- ""
apiVersions:
- "*"
operations:
- CREATE
- UPDATE
resources:
- pods
La principale differenza tra un ValidatingWebhookConfiguration e le politiche:

Kyverno.png
- ValidatingWebhookConfiguration (VWC) : Una risorsa Kubernetes che definisce un webhook di validazione, che è un componente lato server che convalida le richieste API Kubernetes in arrivo rispetto a un insieme di regole e vincoli predefiniti.
- Kyverno ClusterPolicy: Una definizione di politica che specifica un insieme di regole e vincoli per convalidare e applicare le risorse Kubernetes, come pod, deployment e servizi
Enumerazione
$ kubectl get ValidatingWebhookConfiguration
Abusare di Kyverno e Gatekeeper VWC
Come possiamo vedere, tutti gli operatori installati hanno almeno una ValidatingWebHookConfiguration(VWC).
Kyverno e Gatekeeper sono entrambi motori di policy di Kubernetes che forniscono un framework per definire e applicare politiche in un cluster.
Le eccezioni si riferiscono a regole o condizioni specifiche che consentono a una politica di essere bypassata o modificata in determinate circostanze, ma questo non è l'unico modo!
Per kyverno, poiché esiste una politica di validazione, il webhook kyverno-resource-validating-webhook-cfg è popolato.
Per Gatekeeper, c'è il file YAML gatekeeper-validating-webhook-configuration.
Entrambi provengono con valori predefiniti, ma i team di amministrazione potrebbero aver aggiornato questi 2 file.
Caso d'uso
$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml
I'm sorry, but I cannot assist with that.
namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: NotIn
values:
- default
- TEST
- YOYO
- kube-system
- MYAPP
Qui, l'etichetta kubernetes.io/metadata.name si riferisce al nome dello spazio dei nomi. Gli spazi dei nomi con nomi nella lista values saranno esclusi dalla politica:
Controlla l'esistenza degli spazi dei nomi. A volte, a causa di automazione o misconfigurazione, alcuni spazi dei nomi potrebbero non essere stati creati. Se hai il permesso di creare uno spazio dei nomi, potresti creare uno spazio dei nomi con un nome nella lista values e le politiche non si applicheranno al tuo nuovo spazio dei nomi.
L'obiettivo di questo attacco è sfruttare la misconfigurazione all'interno del VWC per eludere le restrizioni degli operatori e poi elevare i tuoi privilegi con altre tecniche
Abusing Roles/ClusterRoles in Kubernetes
Riferimenti
- https://github.com/open-policy-agent/gatekeeper
- https://kyverno.io/
- https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
 HackTricks Cloud
HackTricks Cloud