云安全漏洞挖掘与利用工具集 — 攻击面发现 + 凭据后利用
云安全漏洞挖掘与利用 Skill。S3 桶爆破枚举、公开桶敏感文件发现、SSRF→IMDS 凭证窃取探测、K8s 未授权访问检测、容器逃逸条件识别、 AK/SK 凭证验证与权限枚举、存储桶供应链攻击利用。
概述
cloud-vuln-skill 是一套面向云环境的安全测试工具,聚焦于两个核心阶段:
| 阶段 | 说明 | 需要凭证 |
|---|---|---|
| 信息收集 | S3 桶爆破、公开桶扫描、SSRF→IMDS 探测、K8s 未授权检测、容器逃逸条件识别 | 否 |
| 凭据利用 | AK/SK 验证、权限枚举、提权路径分析、S3 桶资产盘点 | 是 |
设计原则:
- 只读优先 — 所有探测默认仅执行被动信息收集
- 写入即清理 — S3 可写测试在上传后立即删除测试文件
- 不实际利用 — 提权/后门创建等操作仅报告权限存在,不执行
快速开始
安装
git clone https://github.com/<your-username>/cloud-vuln-skill.git
cd cloud-vuln-skill
pip install -r requirements.txt
基本用法
# === 信息收集(无需云凭证)===
# S3 桶名爆破
python scripts/cloud_scanner.py brute-s3 --keyword company-name
# 单桶公开状态检查
python scripts/cloud_scanner.py check-bucket --name company-prod
# 公开桶敏感文件扫描
python scripts/cloud_scanner.py scan-bucket --url https://bucket-name.s3.amazonaws.com
# SSRF → IMDS 凭证窃取探测
python scripts/cloud_scanner.py probe-ssrf --target https://target.com/api --param url
# K8s 节点未授权访问探测
python scripts/cloud_scanner.py probe-k8s --node 10.0.0.1
# 容器逃逸条件检测(在容器/Pod 内运行)
python scripts/cloud_scanner.py container-escape
# === 凭据利用(拿到 AK/SK 后)===
python scripts/cloud_scanner.py exploit-creds --ak AKIAXXXXXX --sk xxxxxxxxxxxx
命令详解
brute-s3 — S3 桶名爆破
python scripts/cloud_scanner.py brute-s3 --keyword <关键词> [--threads 20] [--delay 0.1] [--format table|json]
将关键词与 70+ 常见后缀(-prod、-dev、-backup、-terraform、-secrets 等)拼接,向 AWS 全球端点和区域端点并发 HTTP HEAD 请求。
| 状态码 | 含义 |
|---|---|
| 200 | 公开桶(可列目录) |
| 403 | 存在但非公开 |
| 404/DNS 失败 | 不存在 |
参数:
--keyword:公司名/关键词(必填)--threads:并发线程数(默认 15)--delay:请求间隔秒数(默认 0.05,增大可避免云端限流)--format:json(默认)或table
check-bucket — 单桶公开状态检查
python scripts/cloud_scanner.py check-bucket --name <桶名> [--region us-east-1]
三项检测:
- 公开可列 — GET 桶根路径,200 且响应含
<Key>即为可列目录 - 公开可写 — PUT 测试文件,200 即为可写(测试后自动清理)
- 公开可读 — HEAD 常见文件名
scan-bucket — 公开桶敏感文件扫描
python scripts/cloud_scanner.py scan-bucket --url <桶URL> [--max-files 100] [--threads 10]
两级匹配机制:
第一级(文件名匹配) — 13 类敏感文件,不需要下载:.env、terraform.tfstate、credentials、id_rsa、*.sql、*.dump、config.yml、secret.yaml、Dockerfile、.git/config、*.pem、*.zip、.bash_history
第二级(内容关键词) — 仅下载 ≤10KB 的文件头部搜索:AKIA、ASIA、BEGIN RSA PRIVATE KEY、DB_PASSWORD=、AWS_ACCESS_KEY_ID=、connectionString、Bearer、CREATE TABLE
桶不可列时自动切换爆破模式,用 30 个常见文件名逐个探测。
probe-ssrf — SSRF → IMDS 凭证窃取探测
python scripts/cloud_scanner.py probe-ssrf --target <URL> --param <参数名>
向目标 URL 的参数注入云元数据服务地址,检测响应中是否含云凭证关键词。
注入的 Payload:
| # | Payload | 目标 |
|---|---|---|
| 1 | http://169.254.169.254/latest/meta-data/ | AWS IMDSv1 |
| 2 | http://169.254.169.254/latest/meta-data/iam/security-credentials/ | AWS IAM Role 名 |
| 3 | http://169.254.169.254/metadata/instance?api-version=2021-02-01 | Azure IMDS |
| 4 | http://metadata.google.internal/computeMetadata/v1/ | GCP |
| 5 | http://100.100.100.200/latest/meta-data/ | 阿里云 |
| 6 | http://[::ffff:a9fe:a9fe]/latest/meta-data/ | AWS IPv6 映射绕过 |
probe-k8s — K8s 未授权访问探测
python scripts/cloud_scanner.py probe-k8s --node <IP>
扫描 7 个高危端口:
| 端口 | 服务 | 探测路径 |
|---|---|---|
| 6443 | K8s API (TLS) | /api/v1/pods /api/v1/secrets /version |
| 8080 | K8s API (Plain) | 同上 |
| 10250 | Kubelet | /pods /runningpods/ |
| 10255 | Kubelet RO | /pods |
| 2379 | etcd | /version /v2/keys |
| 4194 | cAdvisor | /containers |
| 10256 | kube-proxy | /healthz |
container-escape — 容器逃逸条件检测
# 在容器/Pod 内运行
python scripts/cloud_scanner.py container-escape
11 项自动检测:
| 检测 | 危险度 | 逃逸方法 |
|---|---|---|
/var/run/docker.sock 挂载 | 🔴 | docker run -v /:/host alpine chroot /host |
| Privileged 模式 | 🔴 | nsenter --target 1 --mount --pid -- bash |
| CAP_SYS_ADMIN | 🔴 | cgroup release_agent 逃逸 |
| CAP_SYS_PTRACE | 🔴 | 宿主机进程注入 |
| hostPID | 🔴 | nsenter -t 1 |
| hostPath 挂载 | 🔴 | 直接读写宿主机文件 |
| K8s SA Token | 🟠 | 调 API Server 操作资源 |
| IMDS 可达 | 🟠 | 获取云 IAM 凭证 |
| Containerd Socket | 🟠 | ctr 命令控制容器 |
仅检测不利用,不会尝试实际逃逸。
exploit-creds — AK/SK 验证与权限枚举
python scripts/cloud_scanner.py exploit-creds --ak <AccessKey> --sk <SecretKey> [--token <SessionToken>] [-o result.json]
一条命令完成五步:
- 身份验证 —
sts:GetCallerIdentity→ Account ID、ARN - IAM 信息收集 — 附加策略、Inline Policy、所属组、MFA 状态
- 高危权限探测 — 真实验证 23 个 API(读操作直接调用,写操作使用安全假参数/DryRun 探测,不产生副作用)
- 提权路径分析 — 匹配 10 种危险权限组合
- S3 桶枚举 — 列出桶 + 检查 Block Public Access + 加密状态
高危权限探测覆盖:
| 类别 | 探测命令 | 验证方式 |
|---|---|---|
| 直接提权 | iam:CreatePolicyVersion | 假策略 ARN 探测 |
| 直接提权 | iam:AttachUserPolicy | 不存在的用户名探测 |
| 后门 | iam:CreateUser + iam:CreateAccessKey | 不存在用户名探测 |
| EC2 | ec2:RunInstances | DryRun 模式(安全) |
| Lambda | lambda:UpdateFunctionCode | 不存在函数名 + 空 zip |
| S3 | s3:PutBucketPolicy | 不存在桶名探测 |
| 反取证 | cloudtrail:StopLogging | 直接调用(会失败但不产生效果) |
工具下载
https://github.com/mouren101/cloud-vuln-skill

















暂无评论内容