VipulMadavi/IAM-Hunter
GitHub: VipulMadavi/IAM-Hunter
一款 AWS IAM 安全审计 CLI 工具,扫描账户中的权限配置缺陷与提权路径并生成风险评分报告。
Stars: 0 | Forks: 0
# AWS IAM 配置错误猎手
一款 CLI 安全工具,用于扫描 AWS 账户中不安全的 IAM 配置,检测提权路径,计算风险评分,并生成可操作的报告。




## 功能简介
- 通过 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, 协议分析, 无后门, 权限提升, 特权检测, 请求拦截, 逆向工具