用途:本技能面向 Kubernetes 安全评估,演示如何滥用未验证调用方身份的准入 Webhook,从 Mutating Webhook 返回的 patch 中骗取本应注入特权 Pod 的 Secret、Flag 或 Token,适用于授权渗透与靶场环境。
主要能力:扫描发现策略引擎服务,识别 Kyverno、OPA Gatekeeper 与自定义 Webhook 端点,构造伪造的 AdmissionReview 请求并解析 Base64 JSONPatch,另含针对 Kyverno 的请求构造与空指针 Panic 可利用性确认。
使用方式:先用 DNS 扫描定位服务,例如 k8spider scan -subnet <service-cidr>;常见服务为 kyverno-svc.kyverno.svc.cluster.local、gatekeeper-webhook-service.gatekeeper-system.svc.cluster.local。检测可达性可用 curl -k https://kyverno-svc.kyverno.svc.cluster.local/mutate,若返回 only POST/OPTIONS supported 说明服务可达且未验证来源。构造 JSON payload 后发送:curl -k -X POST -H "Content-Type: application/json" -d @/tmp/admission.json https://kyverno-svc.kyverno.svc.cluster.local/mutate。响应 patch 用 echo '<patch-base64>' | base64 -d | jq . 解码。
关键字段与常见端点:endpoint 含 Kyverno 的 /mutate、/validate,OPA Gatekeeper 的 /v1/admit,自定义服务的 /mutate、/validate、/webhook,端口 443/8443。namespace 必须匹配策略 match 条件,kind/requestKind 不可缺失,operation 常用 CREATE。
限制:须 HTTPS 加 -k(自签证书),带 Content-Type: application/json,不要加 --http1.1(Kyverno 需 HTTP/2)。完整 JSON 模板见资料引用的 references/admission-review-template.md,未在此展开。具体平台版本、收费与效果资料未提供。