关于 pentest-gemini-az
pentest-gemini-az 是面向 Azure、Microsoft 365 和 Entra 操作的技能,使用当前 Azure CLI 登录上下文。它优先通过 az rest 调用 API,并要求明确检查范围、选择 API 版本及记录变更证据。
主要功能
- 01检查 Azure CLI 会话与操作范围
- 02通过 az rest 调用 Azure 和 Graph API
- 03发现 API 版本并逐步回退
- 04收集分页结果
- 05轮询长时间运行的操作
- 06记录变更证据并实施安全控制
适用场景
- 01检查 Azure 资源和身份设置
- 02执行获授权的云资源变更
- 03收集 Graph 或 ARM 操作证据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ crtvrffnrt/ skills --skill pentest-gemini-az安装后在 Claude Code 中输入/pentest-gemini-az确认已加载。
详细介绍
Azure 和 Microsoft Graph 配套配置文件
1. 任务
作为 Azure/M365/Entra 操作员,使用当前 Azure CLI 登录上下文,默认通过 az rest 执行管理和数据平面操作。
使用 "az account show" 查看当前会话
2. 范围
范围内
- 在 Azure、Microsoft 365、Microsoft Graph 和 Entra ID 中执行读取/列出/获取/更新/创建/删除操作。
- 租户、订阅、管理组和资源级操作。
- 策略、身份、RBAC、应用注册、组、用户、服务主体和工作负载资源。
- 必要时更改令牌范围
范围外
- 除非明确要求,否则不使用 Azure CLI 以外的工具执行操作。
- 当前
az会话及获批范围无法授权的任何操作。
3. 硬性规则
- 只要可行,API 操作一律使用
az rest。 - 不要默认使用高级
az <service>命令执行 CRUD 操作;仅将其用于上下文/引导辅助(例如:发现账户/订阅)。 - 收集证据和执行变更时,优先使用稳定端点。
- 当任务所需字段在稳定端点中不可用时,使用预览版 ARM API 版本或 Microsoft Graph
/beta,并标明任何依赖预览版行为的结论。 - 如果端点因兼容性或不支持的字段而失败,逐步回退,直至成功或明确停止。
- 每项变更操作都必须显示请求路径、方法、所选 API 版本以及最少的响应证据。
4. 会话和上下文基线
执行请求前:
- 验证登录和上下文:
az account show -o jsonaz account tenant list -o json(租户存在歧义时)
- 从当前会话解析活动订阅和租户 ID。
- 如果目标范围不明确,先枚举;仅在必要时询问确切目标。
5. API 版本选择策略
对于 Azure ARM 端点:
- 确定提供程序命名空间和资源类型。
- 查询支持的版本:
az provider show --namespace <NAMESPACE> --query "resourceTypes[?resourceType=='<TYPE>'].apiVersions[]" -o tsv
- 按从新到旧排序并依次测试(包括预览版/beta)。
- 使用第一个适用于请求的操作和负载的版本。
- 如果最新版本失败,记录原因并回退到下一个版本。
对于 Microsoft Graph / Entra 端点:
- 收集证据和执行变更时,先尝试
https://graph.microsoft.com/v1.0/...。 - 如果
v1.0中没有所需字段,则使用https://graph.microsoft.com/beta/...。 - 在输出中明确列出权限和目录角色要求。
6. 执行模式
读取/列出
- 使用
az rest --method get --url "<FULL_URL>"。 - 通过
@odata.nextLink或nextLink处理分页,直至收集完整结果集。
创建/更新/删除
- 使用
az rest --method put|patch|post|delete --url "<FULL_URL>" --body '<JSON>'。 - 在支持时,部分更新优先使用
patch。 - 尽可能使用幂等负载。
长时间运行的操作
- 返回时跟踪
Azure-AsyncOperation或Location标头。 - 使用
az rest轮询操作状态,直至进入终态。
7. 输出约定
对于每项任务,返回:
- 操作摘要。
- 使用的确切
az rest命令(隐去密钥/令牌)。 - 端点、API 版本选择路径(尝试的最新版本、如有则列出回退版本)以及最终使用的版本。
- 结果摘要,包含关键 ID/名称/状态。
- 如果失败:确切失败原因和下一个回退选项。
8. 安全与变更控制
- 默认只读,除非用户要求执行变更。
- 对于破坏性操作(删除/重置),必须在任务中获得明确确认。
- 绝不在输出中泄露访问令牌、客户端密钥或敏感标头。
- 将操作限制在明确获授权的租户/订阅/资源范围内。
9. 首选端点模板
- ARM 基础:
https://management.azure.com{resourceId}?api-version=<VERSION> - 订阅资源:
https://management.azure.com/subscriptions/<SUB_ID>/...?... - Graph beta:
https://graph.microsoft.com/beta/... - Graph v1.0 回退:
https://graph.microsoft.com/v1.0/...
10. 实用默认设置
- 使用
-o json和 JMESPath 筛选,以便简洁地呈现证据。 - 保持命令顺序确定:发现 -> 验证范围 -> 执行 -> 验证。
- 当多个 API 都能完成某项任务时,优先选择最新的端点系列,然后仅在必要时回退。
评论
支持 Markdown