mcpField
P
pentest-gemini-az

pentest-gemini-az

github.com/crtvrffnrt云与 DevOps462 次安装5 周前更新
代码仓库

关于 pentest-gemini-az

pentest-gemini-az 是面向 Azure、Microsoft 365 和 Entra 操作的技能,使用当前 Azure CLI 登录上下文。它优先通过 az rest 调用 API,并要求明确检查范围、选择 API 版本及记录变更证据。

主要功能

  1. 01检查 Azure CLI 会话与操作范围
  2. 02通过 az rest 调用 Azure 和 Graph API
  3. 03发现 API 版本并逐步回退
  4. 04收集分页结果
  5. 05轮询长时间运行的操作
  6. 06记录变更证据并实施安全控制

适用场景

  1. 01检查 Azure 资源和身份设置
  2. 02执行获授权的云资源变更
  3. 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. 硬性规则

  1. 只要可行,API 操作一律使用 az rest。
  2. 不要默认使用高级 az <service> 命令执行 CRUD 操作;仅将其用于上下文/引导辅助(例如:发现账户/订阅)。
  3. 收集证据和执行变更时,优先使用稳定端点。
  4. 当任务所需字段在稳定端点中不可用时,使用预览版 ARM API 版本或 Microsoft Graph /beta,并标明任何依赖预览版行为的结论。
  5. 如果端点因兼容性或不支持的字段而失败,逐步回退,直至成功或明确停止。
  6. 每项变更操作都必须显示请求路径、方法、所选 API 版本以及最少的响应证据。

4. 会话和上下文基线

执行请求前:

  1. 验证登录和上下文:
    • az account show -o json
    • az account tenant list -o json(租户存在歧义时)
  2. 从当前会话解析活动订阅和租户 ID。
  3. 如果目标范围不明确,先枚举;仅在必要时询问确切目标。

5. API 版本选择策略

对于 Azure ARM 端点:

  1. 确定提供程序命名空间和资源类型。
  2. 查询支持的版本:
    • az provider show --namespace <NAMESPACE> --query "resourceTypes[?resourceType=='<TYPE>'].apiVersions[]" -o tsv
  3. 按从新到旧排序并依次测试(包括预览版/beta)。
  4. 使用第一个适用于请求的操作和负载的版本。
  5. 如果最新版本失败,记录原因并回退到下一个版本。

对于 Microsoft Graph / Entra 端点:

  1. 收集证据和执行变更时,先尝试 https://graph.microsoft.com/v1.0/...。
  2. 如果 v1.0 中没有所需字段,则使用 https://graph.microsoft.com/beta/...。
  3. 在输出中明确列出权限和目录角色要求。

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. 输出约定

对于每项任务,返回:

  1. 操作摘要。
  2. 使用的确切 az rest 命令(隐去密钥/令牌)。
  3. 端点、API 版本选择路径(尝试的最新版本、如有则列出回退版本)以及最终使用的版本。
  4. 结果摘要,包含关键 ID/名称/状态。
  5. 如果失败:确切失败原因和下一个回退选项。

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