Cloud / Container / Kubernetes Security
操作要求(读完后立刻执行)
NOW: 读取../field-journal/precedent-pentest.md— 云/K8s 测试必须书面授权NOW: 初始化案例与范围;明确账号边界、禁止破坏性操作NOW: 确认是云元数据/容器/K8s/IAM,而非普通 Web 扫描(后者请使用pentest-tools/)NEXT: 索引工具;kubectl/aws/gcloud 等多为手动安装ACT: 从「身份与暴露面」开始,禁止默认全网扫描
适用场景
- 云元数据 SSRF(169.254.169.254 / IMDS)
- IAM 过度权限、公开存储桶、错误安全组
- Docker/containerd 逃逸路径评估
- Kubernetes RBAC、Secrets、Admission控制、供应链镜像
- 容器镜像漏洞(可联动
supply-chain-security/)
工作流
阶段 1 — 身份与边界
□ 当前身份:云 AK/SK、K8s ServiceAccount、节点 SSH?
□ 范围:单账号 / 单集群 / 单命名空间
□ 网络限制:仅允许授权的目标
阶段 2 — 云控制面
# 示例(按厂商替换;必须在授权账号内执行)
aws sts get-caller-identity
aws s3 ls
# Azure / GCP 对应的身份验证命令
□ 公开桶 / 错误 ACL
□ 元数据:IMDSv1 vs v2;SSRF 链
□ 角色可扮演(PassRole)与横向移动
阶段 3 — 容器
□ 是否为 privileged / 使用 hostPath / hostNetwork
□ capabilities(SYS_ADMIN 等)
□ 可写宿主机路径 → 逃逸候选
□ 镜像历史与已知 CVE → Trivy 扫描
阶段 4 — Kubernetes
kubectl auth can-i --list
kubectl get pods,secrets,svc -A
kubectl get clusterrolebindings
□ SA token 挂载与权限
□ 危险 admission webhook 缺失
□ etcd / dashboard 暴露
□ 网络策略是否默认放行
工具链
| 工具 | 用途 | 自举方式 |
|---|---|---|
| kubectl | 集群交互 | 手动安装 |
| trivy | 镜像/IaC 扫描 | 若可用则自动安装 trivy |
| kube-bench / kubeaudit | CIS基准/配置检查 | 手动安装 |
| pacu / scoutsuite | 云审计(授权) | 手动安装 |
| nuclei | 已知云漏洞模板 | 自动安装 nmap/nuclei 生态系统 |
参考
references/k8s-cloud-checklist.md- CTF 对照:
../../CTF-Sandbox-Orchestrator/competition-agent-cloud/ ../supply-chain-security/../pentest-tools/
路由上下文
上游: MASTER R23
下游: 获得节点 shell → attack-chain / windows-ad;镜像漏洞 → supply-chain
禁止: 未授权扫描公有云其他租户
任务完成自检
- 是否限定在授权账号/集群内?
- 发现结果是否包含复现步骤与影响说明?
- 是否避免破坏性操作?
- 是否已写入报告或日志?