工具介绍

云安全漏洞挖掘与利用工具集 — 攻击面发现 + 凭据后利用

云安全漏洞挖掘与利用 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,增大可避免云端限流)
  • --formatjson(默认)或 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 类敏感文件,不需要下载:
.envterraform.tfstatecredentialsid_rsa*.sql*.dumpconfig.ymlsecret.yamlDockerfile.git/config*.pem*.zip.bash_history

第二级(内容关键词) — 仅下载 ≤10KB 的文件头部搜索:
AKIAASIABEGIN RSA PRIVATE KEYDB_PASSWORD=AWS_ACCESS_KEY_ID=connectionStringBearer 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]

一条命令完成五步:

  1. 身份验证sts:GetCallerIdentity → Account ID、ARN
  2. IAM 信息收集 — 附加策略、Inline Policy、所属组、MFA 状态
  3. 高危权限探测真实验证 23 个 API(读操作直接调用,写操作使用安全假参数/DryRun 探测,不产生副作用)
  4. 提权路径分析 — 匹配 10 种危险权限组合
  5. 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

更多推荐