ctrldeploy/aws-pentest

GitHub: ctrldeploy/aws-pentest

awspt 将 Prowler、ScoutSuite、PMapper、nmap、nuclei 等多个安全评估工具统一编排,对授权的 AWS 账户进行自动化安全评估并生成去重的统一报告。

Stars: 1 | Forks: 0

# awspt — 授权的 AWS 安全评估套件 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/ctrldeploy/aws-pentest/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](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, 反取证, 安全评估, 插件系统, 无后门, 网络调试, 自动化, 请求拦截, 足迹分析, 逆向工具