ctrldeploy/aws-pentest
GitHub: ctrldeploy/aws-pentest
awspt 将 Prowler、ScoutSuite、PMapper、nmap、nuclei 等多个安全评估工具统一编排,对授权的 AWS 账户进行自动化安全评估并生成去重的统一报告。
Stars: 1 | Forks: 0
# awspt — 授权的 AWS 安全评估套件
[](https://github.com/ctrldeploy/aws-pentest/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.python.org/)
`awspt` 连接到您拥有(或获得明确授权进行测试)的 AWS 账户,通过调度业界领先的开源工具 —— Prowler、ScoutSuite、PMapper、nmap 和 nuclei —— 来评估其漏洞,然后将所有结果标准化并去重,生成一份统一的报告。
它**不是**用于测试您不控制的账户的工具。每次运行都受到 scope 文件和实时身份验证的严格限制。
## 功能简介
| 层级 | 引擎 | 发现内容 | 是否具有侵入性? |
|-------|--------|---------------|-----------|
| 云错误配置 (CSPM) | [Prowler](https://github.com/prowler-cloud/prowler) | CIS / 最佳实践违规 | 否 |
| 云错误配置 (CSPM) | [ScoutSuite](https://github.com/nccgroup/ScoutSuite) | 多服务配置风险 | 否 |
| 攻击路径 | [PMapper](https://github.com/nccgroup/PMapper) | IAM 提权路径 | 否 |
| 资产发现 | 内置 (boto3) | 公网 IP、对全网开放的 SG、公开的 S3/RDS | 否 |
| 主动扫描 | [nmap](https://nmap.org/) + [nuclei](https://github.com/projectdiscovery/nuclei) | 开放端口 + 模板化漏洞 | **是 (受控)** |
所有发现结果都会合并为一个 `Finding` schema,并采用统一的严重性评级标准,支持导出为 JSON、Markdown、单文件 HTML 或 AWS Security Finding Format (ASFF)。
## 安全模型
1. **Scope 文件** (`scopes/*.yaml`) 声明了授权的账户 ID、区域以及允许运行的引擎。
2. 在任何引擎运行之前,`awspt` 会调用 `sts:GetCallerIdentity`,如果当前实际账户不在授权范围内,将**拒绝执行**。
3. **默认运行只读层级。** 主动扫描(nmap/nuclei)仅在 scope 文件中设置 `active_scan.enabled: true` **并且**您传递了 `--i-have-authorization` 参数时才会运行。即便如此,它也会打印出确切的扫描目标并要求确认。
## 安装说明
Python 引擎和 `awspt` 本身:
```
pip install -e ".[engines]"
```
`nmap` 和 `nuclei` 是系统/Go 二进制文件。推荐的支持可复现性的安装方式是使用内置的 Docker 镜像(包含所有依赖):
```
docker build -t awspt .
docker run --rm -v ~/.aws:/root/.aws -v "$PWD:/work" awspt list-engines
```
建议为评估主体配置最小权限:附加 AWS 托管的 `SecurityAudit` 和 `ViewOnlyAccess` 策略。主动扫描不需要额外的 AWS 权限(它是通过网络进行探测,而不是通过 API)。
## 用法
```
# 查看您的环境中有哪些可用的 engines
awspt list-engines
# 在不影响 AWS 的情况下预览计划
awspt scan --scope scopes/example-scope.yaml --dry-run
# 对已授权的 account 进行只读评估,编写 HTML 报告
awspt scan --scope scopes/my-account.yaml --profile my-sso --format html -o report.html
# 从存储的 run 重新渲染报告
awspt report --format markdown -o report.md
# Active scan(仅在 scope 中启用它 + 此 flag + 确认 targets 之后)
awspt scan --scope scopes/my-account.yaml --i-have-authorization
```
## 项目结构
```
awspt/
cli.py Typer CLI: scan, report, list-engines
config.py scope YAML schema + validation
auth.py boto3 session (profile / assume-role / SSO) + identity
safety.py account-match assertion + active-scan gate
schema.py Finding model, severity normalization, ASFF export, dedupe
runner.py orchestration: read-only parallel, active serial-after-confirm
normalize.py cross-engine merge/dedupe/sort
store.py SQLite persistence (run history)
engines/ one adapter per tool (run + parse, separable for testing)
report/ json / markdown / html renderers
```
## 开发说明
```
pip install -e ".[dev]"
pytest
```
引擎解析器会针对捕获的测试用例输出进行单元测试,因此测试运行无需安装庞大的引擎,也无需连接 AWS。
## 路线图
- `diff` 命令,用于将当前运行结果与上一次进行比较(SQLite 历史记录功能已实现)。
- 多账户 / AWS Organizations 扫描。
- 将标准化的发现结果推送到 AWS Security Hub(ASFF 导出功能已实现)。
- 可选的 Cartography/Neo4j 图谱引擎,用于提供更丰富的攻击路径可视化效果。
## 许可证
[MIT](LICENSE) © 2026 ctrldeploy。按“原样”提供,不附带任何担保。使用前请阅读[免责声明](DISCLAIMER.md)。
## 鸣谢
awspt 只是一个调度层;繁重的检测工作由它所封装的优秀开源项目完成:
[Prowler](https://github.com/prowler-cloud/prowler),
[ScoutSuite](https://github.com/nccgroup/ScoutSuite),
[PMapper](https://github.com/nccgroup/PMapper),
[nmap](https://nmap.org/), 以及
[nuclei](https://github.com/projectdiscovery/nuclei)。
标签:AWS, DPI, Python, 反取证, 安全评估, 插件系统, 无后门, 网络调试, 自动化, 请求拦截, 足迹分析, 逆向工具