Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Owasp-top-10-k8s-2025 — 亲自动手的夺旗实验,针对 OWASP Kubernetes Top 10 (2025)。利用 11 个真实世界的集群弱点,获取旗帜,然后应用修复并通过自动检查器验证。在本地 kind 上运行。 | Kitploit
工具/GitHubGitHub/hac01/owasp-top-10-k8s-2025
权限提升容器安全漏洞分析CTF渗透测试云安全供应链安全错误配置学习与教育红队实验室与实践
GitHub
45832个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
hac01/owasp-top-10-k8s-2025

Owasp-top-10-k8s-2025

亲自动手的夺旗实验,针对 OWASP Kubernetes Top 10 (2025)。利用 11 个真实世界的集群弱点,获取旗帜,然后应用修复并通过自动检查器验证。在本地 kind 上运行。

查看仓库

OWASP Kubernetes Top 10 (2025) 动手实践

基于 OWASP Kubernetes Top 10 — 2025 搭建的 夺旗赛(capture-the-flag)。
你被聘为红队成员,攻击 NimbusMart(一家虚构的电商公司),其集群增长速度快于安全建设。十个挑战对应十个 OWASP 风险(外加一个额外关卡)—— 利用每个弱点,夺旗,然后应用修复并用检查器验证。

Screenshot 2026-07-03 at 3 02 12 AM

世界设定(公司、服务、命名空间、旗帜方案)详见 labs/NIMBUSMART.md。

一切在本地 kind 上运行。切勿在真实集群上运行这些脆弱清单。

由 @hac01 构建。


涵盖内容

这不是幻灯片 —— 而是一个可运行的、故意设计为脆弱的 Kubernetes 集群,以及用于攻击、修复和验证修复的工具。在十一个挑战中,你将动手实践:

  • 容器与节点安全 —— 特权 Pod、hostPath 挂载和节点逃逸(K01)。
  • RBAC 与授权 —— 通配符 ClusterRole、权限过大的 ServiceAccount,以及一个被盗令牌如何触及所有 Secret(K02、K09)。
  • Secret 管理 —— 在环境变量/ConfigMap 中硬编码的 API 密钥及更安全的替代方案(K03)。
  • 准入控制与策略 —— 当没有任何规则在整个集群内强制执行时,什么东西会溜进来,以及 Pod 安全准入/策略引擎如何阻止它(K04)。
  • 网络分段 —— 扁平 Pod 网络 vs. NetworkPolicy 封锁(K05)。
  • 暴露的组件 —— 通过 NodePort 发布内部仪表板和 API(K06)。
  • 集群组件卫生 —— 默认令牌、缺失的配额、过时/易受攻击的版本(K07)。
  • 集群到云的横向移动 —— 一个 Pod 访问节点元数据(IMDS)端点以窃取云凭证(K08)。
  • 认证 —— 匿名 API 访问和过度挂载的默认令牌(K09)。
  • 日志记录与监控 —— 检测(或未能检测)静默数据泄露,以及审计追踪为何重要(K10)。
  • 供应链 —— 不可信的、可变的 :latest 镜像被推送到生产环境(额外)。

对于每个挑战,你将获得:

  • 任务简报 —— NimbusMart 场景、你的立足点以及目标。
  • 要捕获的旗帜 —— 只能通过执行利用(在节点上、在另一个命名空间中、通过网络)才能获得。在 Web 应用中提交;记分板通过浏览器 localStorage 跟踪你的进度和分数。
  • 渐进式提示及剧透攻略 —— 先给提示,想要时再提供完整解决方案。
  • 深度概述 —— 弱点是什么、攻击者如何滥用、影响、根本原因。
  • 防御指南 —— 具体的补丁和最佳实践清单。
  • 自动检查器 —— 一个 Go 二进制文件,扫描你的集群并确认每个风险是否已修复。

先决条件

在开始之前安装这些工具。设置脚本会检查前四个工具,如果缺失会立刻失败并给出清晰提示。

brew 命令适用于 macOS。在 Linux 上请使用你的包管理器或参考上述上游安装指引。


快速开始(推荐)—— 所有内容都在一个集群内

Web 应用、浏览器内终端和检查器都可以在 kind 集群内运行。一条命令即可启动所有内容并打印 URL:

root@kitploit:~
./setup.sh          # 或:make up
#   - 创建 kind 集群、构建并加载镜像、部署、等待就绪
#   - Web 应用:http://localhost:30090
#   - 终端:Web 应用中的“终端”按钮

./setup.sh(重新)创建带有正确端口映射的集群,构建两个镜像(nimbusmart-ctf-web、nimbusmart-ctf-terminal),加载到 kind 中,并应用 deploy/。首次运行时会拉取基础镜像,大约需要 1-2 分钟。

root@kitploit:~
./setup.sh            # 全新集群 + 完整平台(删除任何旧 'owasp-labs' 集群)
./setup.sh --keep     # 如果存在则重用现有的 'owasp-labs' 集群

然后打开 **http://localhost:30090**,选择一个挑战,并使用浏览器中的**终端**按钮驱动集群。

终端 Pod 以 cluster-admin ServiceAccount 运行,因此浏览器中的终端驱动的就是这个集群 —— 直接运行 kubectl apply -f labs/... 和 owasp-k8s-checker --check kNN。

警告: 浏览器内终端实际上是 WebSocket 上的 cluster-admin。它之所以安全,是因为它绑定在你本地的、一次性的 kind 集群上,地址为 localhost。切勿将端口 30080/30090/30091 暴露给不可信网络。

拆除

root@kitploit:~
kind delete cluster --name owasp-labs      # 或:make cluster-down

仓库布局

root@kitploit:~
.
├── setup.sh         单命令引导(集群 + 镜像 + 部署)
├── Makefile         便利目标 —— 运行 `make help` 列出所有目标
├── web/             Next.js + React 应用(白/紫主题)—— 用户界面
├── labs/            每个风险对应的真实 K8s 清单(vulnerable.yaml + fixed.yaml + README)
│   ├── NIMBUSMART.md         世界设定:公司、命名空间、旗帜方案
│   └── kind-cluster.yaml     共享本地集群配置(端口映射)
├── deploy/          集群内平台清单(web + terminal + RBAC)+ build.sh
├── terminal-server/ 浏览器内终端的 WebSocket 后端
└── checker/         用于根据 Top 10 验证集群的 Go 二进制文件

有用的 make 目标(make help 显示所有):


OWASP Kubernetes Top 10 — 2025

每个挑战都是 NimbusMart 集群中的一个真实弱点 —— 选择一个目标,利用它,夺旗,然后打补丁并用检查器证明修复。

Screenshot 2026-07-03 at 3 03 34 AM

与 2022 版的区别: 授权(原 RBAC)范围扩大;Secret、网络、认证和日志记录顺序调整;新增过度暴露的组件(K06)和集群到云的横向移动(K08);配置不当与过时组件合并为 K07;供应链移至额外挑战。详见 labs/NIMBUSMART.md 中完整的挑战-服务-弱点映射、难度和分数(10 个挑战共 2000 分,额外 +300 分)。


手动/开发工作流(无集群内平台)

希望在本机运行 UI 并从自己的 shell 驱动实验?你可以手动组合各部件。

1. 在本地运行 Web 应用

root@kitploit:~
cd web
npm install
npm run dev
# 打开 http://localhost:3000       (或:make web)

终端后端在 :30091 上单独运行,使用你的 ~/.kube/config:

root@kitploit:~
make terminal-local

2. 创建实验集群

root@kitploit:~
kind create cluster --config labs/kind-cluster.yaml    # 或:make cluster
kubectl config use-context kind-owasp-labs

3. 进行一个挑战

每个挑战都有各自的 README,但模式相同:

root@kitploit:~
# 某些挑战会先播种一个目标(节点文件、运维 Secret 等)
kubectl apply -f labs/k01-insecure-workload/setup.yaml       # 仅当存在时

# 部署脆弱资源并利用它以夺旗
kubectl apply -f labs/k01-insecure-workload/vulnerable.yaml
# ...按照 Web 应用中的任务简报/提示操作,获取 FLAG{...},提交...

# 应用加固版本并确认旗帜路径已关闭
kubectl delete -f labs/k01-insecure-workload/vulnerable.yaml
kubectl apply  -f labs/k01-insecure-workload/fixed.yaml

使用 make clean-labs 在挑战之间重置所有内容。

4. 用检查器验证

root@kitploit:~
cd checker
go run . --list            # 显示所有检查
go run . --check k01       # 运行单个检查
go run . --all             # 扫描整个集群
go run . --all --json      # 机器可读格式(适用于 CI)
go run . --all -n apps     # 限定命名空间

检查器在任意检查失败时返回非零退出码,因此可用于 CI 门禁。

构建独立二进制文件:

root@kitploit:~
cd checker
go build -o owasp-k8s-checker .    # 或:make checker
./owasp-k8s-checker --all

检查器如何映射到实验

每个 checker/checks/kNN.go 验证的是对应实验教授的控制项。部署 fixed.yaml,运行 go run . --check kNN,你应该会看到 PASS。部署 vulnerable.yaml,相同的检查会报告具体的发现问题。

安全提示: 脆弱清单是故意可被利用的。请仅使用本地、一次性的 kind/minikube 集群。完成后删除它: kind delete cluster --name owasp-labs。

下载工具
工具用途安装
Docker运行 kind 集群并构建镜像。必须正在运行。Docker Desktop / Engine
kind在 Docker 中本地运行 Kubernetes 集群。brew install kind
kubectl与集群通信。brew install kubectl
Go 1.21+构建并运行检查器二进制文件。brew install go
Node.js 18+仅用于本地运行 Web 应用(make web)。对于单命令集群内设置不需要。brew install node
目标作用
make up一键:集群 + 镜像 + 部署(运行 setup.sh)
make web在 :3000 上以开发模式运行 Web 应用
make cluster / make cluster-down创建 / 删除本地 kind 集群
make scan对当前集群运行所有检查器
make check ID=k01运行单个检查
make clean-labs删除所有实验资源(在挑战之间重置)
ID风险实验文件夹
K01不安全的工作负载配置labs/k01-insecure-workload
K02过度许可的授权配置labs/k02-authorization
K03Secret 管理失败labs/k03-secrets
K04缺乏集群级策略强制执行labs/k04-policy-enforcement
K05缺少网络分段控制labs/k05-network-segmentation
K06过度暴露的 Kubernetes 组件labs/k06-exposed-components
K07配置不当且易受攻击的集群组件labs/k07-cluster-components
K08集群到云的横向移动labs/k08-cluster-to-cloud
K09损坏的认证机制labs/k09-authentication
K10日志记录与监控不足labs/k10-logging-monitoring
额外供应链漏洞labs/kbonus-supply-chain