恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Kubernetes Goat 场景实战:突破命名空间边界,跨 Namespace 访问缓存服务并获取 Flag

  • 首页
  • 资讯中心
  • /
  • Kubernetes Goat 场景实战:突破命名空间边界,跨 Namespace 访问缓存服务并获取 Flag

相关资讯

MathModelAgent的.env环境变量配置全解:DEV/PROD环境与Redis URL设置 2026/9/17 8:24:23
InternVL3.5报告解读:241B-A28B MoE模型的推理效率革命 2026/9/17 8:24:23
基于压缩感知的图像加密压缩混合算法实践 2026/9/17 8:19:23

最新资讯

Rufus 制作 USB 启动盘:免安装、几分钟做出系统安装盘的完整流程
DeepChat MCP v2 双时代协议生态手动验证指南:从钉版来源到退出标准的完整 Runbook
如何5分钟上手Faker:从安装Ruby Gem到生成第一份逼真测试数据
VibeSDK 仓库 AI 协作开发指南:Cloudflare 全栈 Agentic 平台的架构模式与工程规范
xmrig 算力劫持 5 步应急处置:从告警到清零
TDX量化下单接口实战:行情链路、交易接入与实盘避坑指南

今日推荐

每日热评|13% 的 Agent 技能带严重漏洞,这个注册表想用“验证+签名”解决信任危机
即梦AI保姆级教程:从生图到数字人,一站式搞定AI视频创作
BERT+LLM混合架构:突破NER长尾实体抽取瓶颈的工程实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Kubernetes Goat 场景实战:突破命名空间边界,跨 Namespace 访问缓存服务并获取 Flag

发布时间:2026/9/17 8:24:23
Kubernetes Goat 场景实战:突破命名空间边界,跨 Namespace 访问缓存服务并获取 Flag Kubernetes Goat 场景实战突破命名空间边界跨 Namespace 访问缓存服务并获取 Flag【免费下载链接】kubernetes-goatKubernetes Goat is a Vulnerable by Design cluster environment to learn and practice Kubernetes security using an interactive hands-on playground 项目地址: https://gitcode.com/GitHub_Trending/ku/kubernetes-goat本文围绕 Kubernetes Goat 的 Scenario 11Kubernetes namespaces bypass展开从 Kubernetes 集群扁平网络flat networking这一常被误解的默认行为出发演示一个运行在default命名空间中的攻击者容器如何绕过命名空间边界发现并访问secure-middleware命名空间中的 Redis 缓存服务最终拿到k8s_goat_flag。读完后你将掌握集群内部网段侦察、zmap 端口扫描、Redis 无认证访问的完整攻击路径并理解为什么命名空间本身不提供网络隔离、以及 NetworkPolicy 的必要性。1. 背景命名空间隔离的常见误解Kubernetes 社区中最常见的安全误区之一就是认为不同 namespace 相互隔离的安全边界。多数使用者假设资源被部署到不同命名空间后就彼此不可访问但事实是Kubernetes 默认使用扁平网络模式flat networking schema集群内任何 Pod/Service 之间都可以自由通信命名空间本身不带任何网络安全限制A 命名空间中的任何主体都可以直接与 B 命名空间中的服务通信如果确实需要网络分段segmentation必须显式创建边界例如通过NetworkPolicyNSP等机制——而默认集群中这些策略是不存在的。这个误区在真实世界的多租户环境中代价高昂大量内部关键资源正是因此被跨命名空间暴露和窃取。Scenario 11 的故事设定是Kubernetes-Goat 非常爱缓存目标就是看看我们能否访问其他命名空间中的缓存服务。读完本场景后你将能够理解 Kubernetes 命名空间的隔离误区理解集群内部扁平网络模式以及跨命名空间通信的机制执行集群内部网段侦察、端口扫描与漏洞测试绕过命名空间限制实际访问并读取其他命名空间的资源。2. 场景目标与前置环境2.1 场景目标访问cache-store服务获取k8s_goat_flag的值即完成本场景。2.2 目标服务的真实部署形态源码佐证场景中的cache-store并非虚构它在仓库中有完整定义。scenarios/cache-store/deployment.yaml 一次性创建了三个资源Namespacesecure-middleware——注意命名带有 secure 字样暗示这是一个本应受保护的中间件命名空间却没有任何 NetworkPolicyServicecache-store-service选择器app: cache-store暴露 TCP 6379Redis 默认端口Deploymentcache-store-deployment镜像为madhuakula/k8s-goat-cache-store。该镜像的构建见 infrastructure/cache-store/Dockerfile基于redis:6-alpine启动时执行 start-redis.sh先后台启动redis-server再把data.redis文件中的数据灌入内存数据库并SAVE持久化。而data.redis的内容正是本场景的金矿——一行 Redis 命令SET SECRETSTUFF k8s-goat-a5a3e446faafa9d0514b3ff396ab8a40也就是说Flag 就是 key 为SECRETSTUFF的 Redis 值。整个集群的部署流程中setup-kubernetes-goat.sh 会执行kubectl apply -f scenarios/cache-store/deployment.yaml将该命名空间及其服务落地因此搭建环境后即可直接开始演练。3. 启动攻击容器一切从default命名空间开始——攻击者只需要最普通的权限能够kubectl run一个自己的容器。kubectl run -it hacker-container --imagemadhuakula/hacker-container -- sh如果终端没有显示 TTY按一下回车键即可。此后所有操作都在这个 Pod 内以shshell 完成模拟已拥有一个 foothold 的攻击者视角。4. 侦察摸清集群网段在进行端口扫描之前必须先搞清楚集群的 IP 规划——我们并不知道缓存服务跑在哪个 IP 上。在 Pod 内执行几个经典的网络侦察命令ip routeifconfigprintenvip route/ifconfig查看 Pod 自身 IP、默认路由与所在子网printenv查看注入的环境变量服务 DNS 等同时也暴露当前容器的上下文信息。结合输出可以判断集群使用的 Pod/Service 网段范围本环境典型为10.x.x.x段。5. 内网端口扫描用 zmap 定位 Redis既然不知道目标 IP就回到老派的内网扫描。hacker-container 中内置了zmap对整个集群网段扫描 Redis 默认端口 6379zmap -p 6379 10.0.0.0/8 -o results.csv注意对10.0.0.0/8执行 zmap 时可能需要调整黑名单配置/etc/zmap/blacklist.conf否则内网地址会被过滤。扫描思路值得强调真实生产集群里不止 RedisElasticSearch、Mongo、MySQL 等内部服务大量暴露缓存端口只是假设起点没有理由限制测试范围。查看results.csv后会看到形如10.12.0.2这样的存活地址——这就是cache-store的 ClusterIP/后端地址且从当前 Pod、当前命名空间可以直接访问。替代路径——直接用 Service DNS 跨命名空间寻址Kubernetes 的 Service DNS 规则是servicename.namespace因此从default命名空间可以直接解析并访问cache-store-service.secure-middleware无需任何扫描。这本身就证明了跨命名空间通信在默认配置下是合法可达的。6. 访问 Redis 并读取 Flag定位到目标 IP 后用容器内置的redis-cli直接连接该 Redis没有设置任何认证redis-cli -h 10.12.0.2列出所有可用 keyKEYS *读取目标 keyGET SECRETSTUFF返回的k8s-goat-a5a3e446faafa9d0514b3ff396ab8a40即为k8s_goat_flag与 infrastructure/cache-store/data.redis 中预置的值完全一致——攻击路径闭环default命名空间的 Pod → 扁平网络直达 → 读取安全命名空间内的 Redis 敏感数据。7. 防御要点为什么必须显式声明网络边界本场景暴露的核心问题是默认即互通default-allow命名空间只是逻辑组织单元对象命名隔离、配额、RBAC 作用域不是网络边界cache-store部署在名为secure-middleware的命名空间中但没有任何策略阻止其他命名空间的 Pod 直连其 6379 端口Redis 自身未开启requirepass认证一旦被网络可达即可GET任意 key。对应的加固方向NetworkPolicydefault-deny 白名单为secure-middleware命名空间编写拒绝所有入站、仅允许指定来源的策略使跨命名空间直连在 L3/L4 层即被阻断——这是消除本场景攻击路径的根本手段。Kubernetes Goat 仓库中同样提供了治理类场景作为对照例如 scenarios/kyverno-namespace-exec-block/kyverno-block-pod-exec-by-namespace.yaml 展示了如何用 KyvernoClusterPolicy按命名空间拦截Pod/exec操作说明按命名空间实施准入控制是同类防御思路。工作负载自带认证Redis 设置requirepass、内部 API 加 mTLS避免网络可达 数据泄露。扫描与审计定期从集群内部发起端口扫描类似本场景的 zmap 手法确认无认证服务不存在意外暴露。8. 小结Scenario 11 用最短的路径演示了一个高频真实风险攻击者只需要default命名空间里的一个普通 Pod即可借助扁平网络 无认证内部服务跨命名空间读取secure-middleware中的 Redis Flag。整个攻击链——网络侦察ip route/ifconfig/printenv→ 网段扫描zmap -p 6379 10.0.0.0/8→ 无认证读取redis-cliGET SECRETSTUFF——每一步都是可直接复现的实操命令对应的服务定义与 Flag 数据均可在 scenarios/cache-store/deployment.yaml、infrastructure/cache-store/Dockerfile 与 infrastructure/cache-store/data.redis 中逐一对应验证。【免费下载链接】kubernetes-goatKubernetes Goat is a Vulnerable by Design cluster environment to learn and practice Kubernetes security using an interactive hands-on playground 项目地址: https://gitcode.com/GitHub_Trending/ku/kubernetes-goat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号