用途:面向 Kubernetes 集群的渗透测试操作手册,适用于已获得集群内部 Pod、节点或外部暴露面访问权后的攻防评估。
主要能力:
- API Server 访问:检查匿名认证(curl -sk https://APISERVER:6443/api/v1/namespaces 等),使用 Pod 内服务账号令牌认证(token 位于 /var/run/secrets/kubernetes.io/serviceaccount/token,可用 --cacert 配合 curl),或用 kubeconfig 认证(kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods --all-namespaces)。常见端口 6443、8443、8080。
- RBAC 枚举:kubectl auth can-i --list 自查权限,枚举 Role/ClusterRole 并查找通配符过度授权;dangers 权限包括 pods/exec、创建 Pod、读取 secrets、serviceaccounts/token 创建、nodes/proxy、escalate、bind、impersonate。
- 服务账号令牌滥用:解码 JWT 查看命名空间与账号,利用提权 SA 读取密钥或创建特权 Pod(hostPID、hostNetwork、privileged、hostPath /),用 kubectl create token 生成令牌。
- etcd 直接访问:检查 2379 端口匿名访问,或用主机证书(/etc/kubernetes/pki/etcd/)执行 etcdctl get / --prefix 提取 secrets。
- Kubelet API:10250/10255 匿名检查,通过 /run/NAMESPACE/POD/CONTAINER 直接执行命令绕过 API Server RBAC,或读取 containerLogs。
- 云环境攻击:AWS EKS 通过 169.254.169.254 IMDS(含 IMDSv2)获取 IAM 临时凭证,IRSA 令牌位于 /var/run/secrets/eks.amazonaws.com/serviceaccount/token;GCP GKE 读取 metadata.google.internal 获取 OAuth2 令牌;Azure AKS 通过 IMDS 获取托管身份令牌。
- 准入 Webhook 绕过:利用排除命名空间、failurePolicy:Ignore、临时容器 kubectl debug、节点静态 Pod 清单目录 /etc/kubernetes/manifests/。
- 镜像仓库访问:提取 dockerconfigjson 拉取密钥并检查镜像历史中的硬编码密钥。
- 网络策略枚举与绕过:查找无策略命名空间,采用 DNS 出站、允许端口隧道、hostNetwork 等方式。
工具:kubectl、kube-hunter --remote、peirates、kubesploit、CDK、kubeletctl、kubeaudit。
限制:本文为技能手册资料,未提供适用集群版本、授权前提、法律合规说明及具体环境验证结果;使用前需确认自身获得合法授权,实际效果取决于集群配置。