VipulMadavi/IAM-Hunter

GitHub: VipulMadavi/IAM-Hunter

一款 AWS IAM 安全审计 CLI 工具,扫描账户中的权限配置缺陷与提权路径并生成风险评分报告。

Stars: 0 | Forks: 0

# AWS IAM 配置错误猎手 一款 CLI 安全工具,用于扫描 AWS 账户中不安全的 IAM 配置,检测提权路径,计算风险评分,并生成可操作的报告。 ![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue) ![License: MIT](https://img.shields.io/badge/license-MIT-green) ![Status: Alpha](https://img.shields.io/badge/status-alpha-orange) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg) ## 功能简介 - 通过 AWS API(只读)扫描 IAM 用户、角色、组和策略 - 检测通配符权限、过度授权的身份以及提权链条 - 构建展示提权路径的攻击图 - 使用可配置的权重按风险严重程度对发现的问题进行评分 - 生成 JSON、CSV 和 HTML 格式的报告 ## 快速开始 ``` # 克隆并安装 git clone https://github.com/VipulMadavi/IAM-Hunter.git cd IAM-Hunter python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # Linux/macOS pip install -e ".[dev]" # 验证安装 iam-hunter --version ``` ## 使用方法 ``` # 全面审计 iam-hunter audit --profile my-aws-profile --output ./reports --format json # 仅扫描(收集数据,不进行分析) iam-hunter scan --profile my-aws-profile # 分析现有扫描数据 iam-hunter analyze --input ./output/scan.json --format json,html # 检查单个身份 iam-hunter identity --profile my-aws-profile --name admin-user --type user # 生成攻击图 iam-hunter graph --input ./output/scan.json --output ./reports/graph ``` ## AWS 权限 该工具需要**只读**的 IAM 访问权限。它绝不会修改您的 AWS 账户。有关最低策略要求,请参阅 [docs/IAM_PERMISSIONS.md](docs/IAM_PERMISSIONS.md)。 关键点: - 仅使用 `List*`、`Get*` 和 `Describe*` API 调用 - 支持 AWS CLI 配置文件、环境变量、IAM 角色或 SSO - 需要扫描器策略中记录的约 30 项 IAM 读取权限 ## 配置说明 检测规则和阈值位于 `config/` 中 —— 无需更改代码即可进行调节: ``` config/ ├── dangerous_actions.yaml # 30+ privilege escalation actions with severity scores ├── risk_weights.yaml # Scoring weights and severity thresholds └── scanner_config.yaml # Scan scope, exclusions, AWS retry config ``` ## 项目结构 ``` src/iam_hunter/ ├── cli.py # Typer CLI entrypoint ├── scanner/ # Phase 1: Data collection from AWS APIs ├── analyzer/ # Phase 2: Detection logic & risk scoring ├── graph/ # Phase 3: NetworkX attack graph ├── reporter/ # Phase 4: Output generation (JSON/CSV/HTML) │ └── templates/ # Jinja2 HTML templates └── utils/ # Shared: AWS client, config loader, logger, exceptions ``` ## Docker ``` # 构建 docker build -t iam-hunter . # 运行(只读挂载 AWS credentials) docker run --rm -v ~/.aws:/home/hunter/.aws:ro iam-hunter audit --profile default # 保存报告到本地目录 docker run --rm \ -v ~/.aws:/home/hunter/.aws:ro \ -v ./reports:/app/output \ iam-hunter audit --profile default --output /app/output --format json ``` 有关更多 Docker 使用示例,请参阅 [SETUP.md](docs/SETUP.md#docker-optional)。 ## 开发指南 ``` # 运行测试(无需 AWS credentials — 使用 moto mocks) pytest # 运行覆盖率测试 pytest --cov=iam_hunter # Lint & format ruff check src/ tests/ ruff format src/ tests/ # 类型检查 mypy src/ ``` ## 文档 | 文档 | 描述 | |-----|-------------| | [WALKTHROUGH.md](docs/WALKTHROUGH.md) | **完整功能演示** — 结合示例介绍每个模块的工作原理 | | [SETUP.md](docs/SETUP.md) | 安装说明、AWS 凭证配置及故障排除 | | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统设计与数据流 | | [IAM_PERMISSIONS.md](docs/IAM_PERMISSIONS.md) | 所需的最低 AWS 权限 | | [DETECTION_RULES.md](docs/DETECTION_RULES.md) | 工具的检测目标与规则 | | [RISK_SCORING.md](docs/RISK_SCORING.md) | 问题的风险评分机制 | | [CLI_REFERENCE.md](docs/CLI_REFERENCE.md) | 所有命令与选项 | | [DESIGN_DECISIONS.md](docs/DESIGN_DECISIONS.md) | 架构设计依据 | | [FUTURE_IMPROVEMENTS.md](docs/FUTURE_IMPROVEMENTS.md) | 路线图与计划开发的功能 | ## 当前状态 正在积极开发中 (v0.1.0)。所有四个流水线阶段均已实现并测试通过(200 项测试通过,覆盖率达 87%)。 ### 已实现的功能 - **扫描器** — 用户、角色、组、策略,以及收集器(完整的 AWS API 数据采集) - **分析器** — 权限解析器,通配符/提权/过度授权检测器,风险评分器,分析引擎 - **图谱** — 攻击图构建器,路径查询,DOT/JSON 可视化 - **报告生成器** — 基于 Jinja2 模板输出 JSON、CSV、HTML 格式报告 - **CLI** — 已接入所有命令:`audit`、`scan`、`analyze`、`graph`、`identity` - **DevOps** — Dockerfile(多阶段构建,非 root 用户运行),GitHub Actions CI(代码检查、测试、Docker 构建) ## 许可证 MIT — 详情请参阅 [LICENSE](LICENSE)。
标签:AWS, DPI, IAM, Python, 协议分析, 无后门, 权限提升, 特权检测, 请求拦截, 逆向工具