Kubernetes OPA Gatekeeper 绕过
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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
本页面的原作者是 Guillaume
滥用错误配置
枚举规则
了解概况可能有助于知道哪些规则是活动的,处于什么模式,以及谁可以绕过它。
使用 CLI
$ 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 和 Constraint 可以在 Open Policy Agent (OPA) Gatekeeper 中用于对 Kubernetes 资源强制执行规则。
$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels
使用图形用户界面
可以使用 Gatekeeper Policy Manager 访问 OPA 规则。它是“一个简单的 只读 网络用户界面,用于查看 Kubernetes 集群中 OPA Gatekeeper 策略的状态。”

搜索暴露的服务:
$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'
排除的命名空间
如上图所示,某些规则可能不会在所有命名空间或用户中普遍适用。相反,它们是基于白名单的。例如,liveness-probe 约束被排除在五个指定的命名空间之外。
绕过
通过全面了解 Gatekeeper 配置,可以识别潜在的错误配置,这些配置可能被利用以获取权限。寻找白名单或排除的命名空间,在这些地方规则不适用,然后在那里进行攻击。
Abusing Roles/ClusterRoles in Kubernetes
滥用 ValidatingWebhookConfiguration
绕过约束的另一种方法是关注 ValidatingWebhookConfiguration 资源:
Kubernetes ValidatingWebhookConfiguration
参考
- https://github.com/open-policy-agent/gatekeeper
- https://github.com/sighupio/gatekeeper-policy-manager
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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks Cloud

