Kubernetes ValidatingWebhookConfiguration

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

该页面的原作者是 Guillaume

定义

ValidatingWebhookConfiguration 是一个 Kubernetes 资源,定义了一个验证 webhook,这是一个服务器端组件,用于根据一组预定义的规则和约束验证传入的 Kubernetes API 请求。

目的

ValidatingWebhookConfiguration 的目的是定义一个验证 webhook,该 webhook 将对传入的 Kubernetes API 请求强制执行一组预定义的规则和约束。该 webhook 将根据配置中定义的规则和约束验证请求,并在请求不符合规则时返回错误。

示例

以下是 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

ValidatingWebhookConfiguration 和策略之间的主要区别:

Kyverno.png

  • ValidatingWebhookConfiguration (VWC) : 一个 Kubernetes 资源,定义了一个验证 webhook,这是一个服务器端组件,用于根据一组预定义的规则和约束验证传入的 Kubernetes API 请求。
  • Kyverno ClusterPolicy: 一个策略定义,指定了一组规则和约束,用于验证和强制执行 Kubernetes 资源,例如 pods、deployments 和 services。

Enumeration

$ kubectl get ValidatingWebhookConfiguration

滥用 Kyverno 和 Gatekeeper VWC

如我们所见,所有安装的操作员至少有一个 ValidatingWebHookConfiguration(VWC)。

KyvernoGatekeeper 都是 Kubernetes 策略引擎,提供了一个在集群中定义和执行策略的框架。

例外情况是指在特定情况下允许绕过或修改策略的特定规则或条件,但这并不是唯一的方法!

对于 kyverno,只要存在验证策略,webhook kyverno-resource-validating-webhook-cfg 就会被填充。

对于 Gatekeeper,存在 gatekeeper-validating-webhook-configuration YAML 文件。

这两个文件都有默认值,但管理员团队可能会更新这两个文件。

用例

$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml

请提供您希望翻译的具体内容。

namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: NotIn
values:
- default
- TEST
- YOYO
- kube-system
- MYAPP

这里,kubernetes.io/metadata.name 标签指的是命名空间名称。values 列表中的命名空间将被排除在政策之外:

检查命名空间的存在。有时,由于自动化或配置错误,某些命名空间可能未被创建。如果您有权限创建命名空间,您可以创建一个名称在 values 列表中的命名空间,政策将不会应用于您的新命名空间。

此攻击的目标是利用 VWC 内部的 配置错误 以绕过操作员限制,然后使用其他技术提升您的权限。

Abusing Roles/ClusterRoles in Kubernetes

参考文献

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks