Kubernetes Kyverno bypass

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

本页面的原作者是 Guillaume

滥用策略错误配置

枚举规则

了解概况可能有助于知道哪些规则是活动的,处于哪种模式,以及谁可以绕过它

$ kubectl get clusterpolicies
$ kubectl get policies

列举排除项

对于每个 ClusterPolicy 和 Policy,您可以指定一个排除实体的列表,包括:

  • 组: excludedGroups
  • 用户: excludedUsers
  • 服务账户 (SA): excludedServiceAccounts
  • 角色: excludedRoles
  • 集群角色: excludedClusterRoles

这些排除的实体将不受政策要求的约束,Kyverno 将不对它们执行政策。

示例

让我们深入了解一个 clusterpolicy 示例:

$ kubectl get clusterpolicies MYPOLICY -o yaml

查找被排除的实体:

exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*

在一个集群中,许多附加组件、操作员和应用程序可能需要从集群策略中排除。然而,这可以通过针对特权实体来利用。在某些情况下,可能会出现命名空间不存在或您没有权限冒充用户的情况,这可能是配置错误的迹象。

滥用 ValidatingWebhookConfiguration

绕过策略的另一种方法是关注 ValidatingWebhookConfiguration 资源:

Kubernetes ValidatingWebhookConfiguration

更多信息

有关更多信息,请查看 https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks