# Performing AWS Account Enumeration With Scout Suite

> 使用 ScoutSuite 对 AWS 账户进行全面的安全态势评估，枚举资源、识别配置错误并生成可操作的安全报告。

- Skill: `killvxk/performing-aws-account-enumeration-with-scout-suite` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/performing-aws-account-enumeration-with-scout-suite`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/performing-aws-account-enumeration-with-scout-suite/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/performing-aws-account-enumeration-with-scout-suite

---


# 使用 ScoutSuite 执行 AWS 账户枚举

## 概述

ScoutSuite 是由 NCC Group 开发的开源多云安全审计工具，能够对 AWS 环境进行全面的安全态势评估。它通过查询 AWS API 收集所有服务的配置数据，将结果存储在本地，并生成交互式 HTML 报告以突出显示高风险区域。ScoutSuite 是无代理的，通过分析云资源的配置方式、访问方式和监控方式来工作。

## 前置条件

- 已安装 Python 3.6+
- 配置了适当 IAM 凭据的 AWS CLI
- 目标 AWS 服务的只读 IAM 权限（推荐使用 SecurityAudit 托管策略）
- 用于安装 ScoutSuite 的 pip 包管理器
- 能够访问 AWS API 端点的网络连接

## 安装与设置

### 安装 ScoutSuite

```bash
pip install scoutsuite
```

### 验证安装

```bash
scout --version
```

### 配置 AWS 凭据

```bash
aws configure
# 或使用环境变量：
export AWS_ACCESS_KEY_ID=<your-key>
export AWS_SECRET_ACCESS_KEY=<your-secret>
export AWS_DEFAULT_REGION=us-east-1
```

### 所需 IAM 策略

将 AWS 托管策略 `SecurityAudit` 和 `ViewOnlyAccess` 附加到运行 ScoutSuite 的 IAM 用户或角色。如需全面扫描，可能需要自定义策略：

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "acm:Describe*",
        "acm:List*",
        "cloudformation:Describe*",
        "cloudformation:Get*",
        "cloudformation:List*",
        "cloudtrail:Describe*",
        "cloudtrail:Get*",
        "cloudtrail:List*",
        "cloudwatch:Describe*",
        "cloudwatch:Get*",
        "cloudwatch:List*",
        "config:Describe*",
        "config:Get*",
        "config:List*",
        "dynamodb:Describe*",
        "dynamodb:List*",
        "ec2:Describe*",
        "ec2:Get*",
        "elasticloadbalancing:Describe*",
        "iam:Generate*",
        "iam:Get*",
        "iam:List*",
        "iam:Simulate*",
        "kms:Describe*",
        "kms:Get*",
        "kms:List*",
        "lambda:Get*",
        "lambda:List*",
        "logs:Describe*",
        "logs:Get*",
        "rds:Describe*",
        "rds:List*",
        "redshift:Describe*",
        "route53:Get*",
        "route53:List*",
        "s3:Get*",
        "s3:List*",
        "ses:Get*",
        "ses:List*",
        "sns:Get*",
        "sns:List*",
        "sqs:Get*",
        "sqs:List*",
        "ssm:Describe*",
        "ssm:Get*",
        "ssm:List*"
      ],
      "Resource": "*"
    }
  ]
}
```

## 运行 ScoutSuite

### 完整 AWS 扫描

```bash
scout aws
```

### 仅扫描特定服务

```bash
scout aws --services s3 iam ec2 rds
```

### 扫描特定区域

```bash
scout aws --regions us-east-1 us-west-2 eu-west-1
```

### 使用假定角色进行跨账户扫描

```bash
scout aws --profile target-account-profile
```

### 排除特定服务

```bash
scout aws --skip iam ec2
```

### 指定输出目录

```bash
scout aws --report-dir /tmp/scoutsuite-reports/
```

## 报告分析

ScoutSuite 生成本地存储的交互式 HTML 报告，包含以下内容：

1. **仪表板**：按严重程度（危险、警告、正常）汇总的发现概览
2. **服务级别发现**：按 AWS 服务分组（IAM、S3、EC2、RDS 等）
3. **基于规则的检查**：每个发现对应一个安全最佳实践规则
4. **资源清单**：已枚举资源的完整列表

### 报告中需要重点审查的关键领域

| 服务 | 关键检查项 |
|---------|----------------|
| IAM | 根账户 MFA、密码策略、未使用的凭据、过度授权的策略 |
| S3 | 公开桶、未加密桶、禁用版本控制、禁用日志记录 |
| EC2 | 允许 0.0.0.0/0 的安全组、未加密 EBS 卷、公网 IP |
| RDS | 公开访问性、未加密数据库、备份保留 |
| CloudTrail | 日志记录禁用、日志文件验证、多区域禁用 |
| Lambda | 公开访问、环境变量中的密钥、VPC 配置 |

## 解读发现结果

### 严重程度级别

- **危险（红色）**：需要立即修复的严重安全问题（如 S3 存储桶允许公开写入访问）
- **警告（橙色）**：应该处理的中等风险发现（如未使用的 IAM 访问密钥）
- **正常（绿色）**：已正确配置的安全最佳实践

### 常见高风险发现

1. **IAM 根账户未启用 MFA**：AWS 根账户未启用多因素认证
2. **S3 存储桶策略允许公开访问**：Principal 设置为 "*" 的桶策略
3. **安全组允许无限制 SSH 访问**：端口 22 允许 0.0.0.0/0 的入站规则
4. **CloudTrail 未在所有区域启用**：审计日志缺口导致 API 活动无法被监控
5. **RDS 实例可公开访问**：数据库端点可从互联网访问

## 修复工作流

1. 运行 ScoutSuite 扫描建立基线
2. 导出发现结果并按严重程度排优先级
3. 为危险和警告级别发现创建修复工单
4. 实施修复（更新安全组、启用加密、限制访问）
5. 重新运行 ScoutSuite 验证修复结果
6. 安排定期扫描（每周或在基础设施变更后）

## 与 CI/CD 集成

```bash
# 在 CI/CD 流水线中运行 ScoutSuite，发现危险级别时失败
scout aws --services s3 iam ec2 --no-browser --report-dir ./scout-report/

# 以编程方式解析结果
python -c "
import json
with open('./scout-report/scoutsuite-results/scoutsuite_results.json') as f:
    results = json.load(f)
    for service in results.get('services', {}):
        findings = results['services'][service].get('findings', {})
        for finding_id, finding in findings.items():
            if finding.get('flagged_items', 0) > 0 and finding.get('level') == 'danger':
                print(f'严重: {finding_id} - {finding.get(\"description\", \"\")}')
"
```

## 多云能力

ScoutSuite 使用相同框架支持多个云提供商：

```bash
# Azure
scout azure --cli

# GCP
scout gcp --user-account

# AWS（使用特定配置文件）
scout aws --profile production
```

## 参考资料

- ScoutSuite GitHub 仓库: https://github.com/nccgroup/ScoutSuite
- AWS 安全审计检查清单
- CIS AWS Foundations Benchmark
- AWS Well-Architected 安全支柱

