Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
AzureRedOps — Azure RedOps 是一个用于评估 Microsoft Entra ID 安全态势的攻击性安全工具包。 | Kitploit
工具/GitHubGitHub/mr-un1k0d3r/azureredops
钓鱼工具权限提升侦察密码攻击漏洞利用信息收集后渗透利用渗透测试云安全身份验证红队
18018181天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
mr-un1k0d3r/azureredops

AzureRedOps

Azure RedOps 是一个用于评估 Microsoft Entra ID 安全态势的攻击性安全工具包。

查看仓库

AzureRedOps

一款用于 Azure / Entra ID 红队作战的瑞士军刀式工具。

作者: Mr.Un1k0d3r (TrueCyber Inc) 版本: 0.1 语言: Python 3.12+


概述

AzureRedOps 是一款用于评估 Microsoft Entra ID 和 Azure 租户安全状况的进攻性安全工具包。它将最常见的红队工作流程——身份验证、令牌管理、目录枚举、权限检查、密码喷洒以及针对 Microsoft Graph 的后渗透操作——封装在一个统一的、由 --activity 驱动的 CLI 背后。

每个操作都通过 -a/--activity 进行选择。身份验证过程中获取的令牌可以在本地缓存(.azure_creds),并通过 -l/--load-access-token 按名称重复使用,因此您几乎无需粘贴原始 JWT。

了解有关该工具的更多信息 在 CYPFER 博客上

功能

  • 令牌管理 — 在本地凭证存储(.azure_creds)中保存、列出、解码/查看和删除访问/刷新令牌。任何流程都可以通过 -s/--save + -n/--name 自动持久化其令牌。
  • 多种身份验证流程:
    • ROPC (auth) — 直接的用户名/密码身份验证。
    • 设备代码钓鱼 (phish-start / phish-capture) — 滥用 OAuth 设备授权许可,在目标于 microsoft.com/devicelogin 输入您的用户代码时捕获颁发的令牌。默认自动捕获。
    • 第三方应用同意 (auth-app) — 针对自定义应用程序注册的完整授权码 + PKCE 流程,由接收重定向的内置本地 HTTPS 监听器提供服务。
    • 交互式浏览器捕获 (auth-interactive) — 驱动真实浏览器(Playwright;默认 Firefox,可通过 -br 切换)(处理 MFA / 条件访问 / SSO),然后从录制的会话 HAR 中收集所有令牌。
    • 刷新令牌交换 (refresh) — 用刷新令牌换取新的访问令牌。
    • On-Behalf-Of 授权 (obo) — 将已颁发的访问令牌交换为针对下游资源作用域的新令牌(OAuth 2.0 jwt-bearer / OBO)。
    • 令牌到浏览器 SSO (browser-sso) — 打开一个真实浏览器,已作为用户通过身份验证,直接进入目标 Web 应用(Outlook 网页版、Teams、SharePoint、Azure 门户等)。使用 -aprt/--auto-prt 它会从刷新令牌自动生成一个主刷新令牌 (PRT) 的 cookie(设备注册 → PRT → x-ms-RefreshTokenCredential),因此全新浏览器无需手动登录即可完成单点登录。
  • 目录枚举 via Microsoft Graph — 用户、应用程序、服务主体、授权策略以及批量 gather-all 收集器。
  • 密码喷洒 针对已知的 Microsoft 第一方应用 ID (spray) 和跨应用刷新令牌喷洒 (spray-refresh)。
  • 后渗透 — 注册应用程序、创建组、分配目录角色、邀请外部(访客)用户以及上传文件到 OneDrive。
  • 侦察助手 — magic-app 查找具有 AllPrincipals 同意的可公共重定向的应用程序;内置已知/有趣的 Microsoft 应用 ID 列表。
  • 生活质量 — beta 端点切换、自定义头部、自定义 user-agent/scope/audience、属性过滤、扩展输出、调试/详细 HTTP 日志记录以及输出重定向到文件。

要求

  • Python 3.12 或更新版本(代码依赖于 PEP 701 f-string 语法)。
  • Python 包(参见 requirements.txt):
    • PyJWT
    • requests
    • playwright
    • cryptography(仅在 browser-sso -aprt 自动 PRT 流程时需要)
  • 为浏览器流程 (auth-interactive, browser-sso) 需提供 Playwright 浏览器运行时。Firefox 是默认引擎 (-br/--browser);使用 python -m playwright install firefox 进行安装。
  • TLS 证书和密钥位于 includes/web/cert.pem 和 includes/web/key.pem(仅在 auth-app PKCE 流程时需要 — 参见 说明)。

安装```bash

Clone the repository

git clone AzureRedOps cd AzureRedOps

Create and activate a virtual environment

python3 -m venv AzureRedOps source AzureRedOps/bin/activate # Linux / macOS

.\AzureRedOps\Scripts\Activate.ps1 # Windows PowerShell

Install dependencies

pip install -r requirements.txt

Install the browser used by the browser flows (one-time).

Firefox is the default engine; install the one(s) you plan to use with -br.

python -m playwright install firefox

python -m playwright install chromium webkit # optional, for -br chromium/webkit

python -m playwright install-deps # Linux/WSL: pull system libs

运行工具:```bash
python3 AzureRedOps.py -a <activity> [options]

用法

一般调用模式为:```bash python3 AzureRedOps.py -a [authentication] [activity options] [global options]

### 提供令牌

调用 Microsoft Graph 的活动需要一个访问令牌。可以通过两种方式提供:

| 方法 | 标志 | 示例 |
|--------|------|---------|
| 传递原始令牌 | `-ac, --access-token` | `-ac eyJ0eXAi...` |
| 按名称加载缓存的令牌 | `-l, --load-access-token` | `-l mytoken` |

当使用 `-l` 时,匹配的 `access_token`(以及相关的 `refresh_token` 和 `tenant`)将从 `.azure_creds` 存储中读取。

### 将令牌保存到文件(`-s` / `-n`)

任何获取令牌的活动(`auth`、`auth-app`、`auth-interactive`、`phish-start`/`phish-capture`、`refresh`)可以通过添加 `-s/--save` 和 `-n/--name` **自动持久化它们** 到本地凭据存储(`.azure_creds`):```bash
# Authenticate and save the resulting tokens under the name "victim1"
python3 AzureRedOps.py -a auth -u [email protected] -p 'P@ssw0rd!' -tid <tenant-guid> -s -n victim1
  • -s/--save 启用自动保存;它需要 -n/--name — 如果缺少 -n,工具会报错退出。
  • -n/--name 是存储令牌的键。之后可以用 -l victim1 重复使用它,而无需粘贴原始 JWT,用 -a view -n victim1 查看,或用 -a delete -n victim1 删除。
  • auth-interactive 活动总是自动保存,如果未提供 -n,它会交互式地提示你输入一个名称。

将活动输出保存到文件 (-j)

大多数枚举活动(list-users、list-applications、list-principals、gather-all、raw-url)接受 -j/--json <filename>,以便将原始 API 响应写入 JSON 文件,而不是(或除了)打印它:```bash

Dump every user to users.json

python3 AzureRedOps.py -a list-users -l victim1 -j users.json

对于 `gather-all`,提供的文件名作为后缀使用,每个 Graph 端点会写入一个文件(例如 `users-<name>`、`groups-<name>` 等)。

> 提示:`-j` 控制结构化 JSON 导出,而 `-re/--redirect-to-file` 将格式化的控制台输出镜像到 `output.txt`。两者相互独立。

### 租户标识符

- `-t, --tenant` 期望一个**域名**(例如 `contoso.com`),由 `id` 活动使用。
- `-tid, --tenant-id` 期望一个**租户 GUID** 或 `common`,由身份验证活动使用。

---

## 命令行选项

| 短参数 | 长参数 | 默认值 | 描述 |
|--------|--------|--------|------|
| `-a` | `--activity` | `id` | **(必需)** 要执行的活动(参见[活动](#activities))。 |
| `-ac` | `--access-token` | | Azure 访问令牌。 |
| `-n` | `--name` | | 用于保存/加载令牌的名称,或用于 `register-app`/`new-group`/`invite` 的显示名称。 |
| `-t` | `--tenant` | | Azure 租户**域**名(由 `id` 使用)。 |
| `-c` | `--devicecode` | | 设备代码(由 `phish-capture` 使用)。 |
| `-tid` | `--tenant-id` | | Azure 租户**ID**(GUID)或 `common`。 |
| `-app` | `--appid` | `d3590ed6-52b3-4102-aeff-aad2292ab01c` | 应用程序(客户端)ID。 |
| `-e` | `--endpoint` | `microsoftonline.com` | 目标登录端点域名。 |
| `-r` | `--refresh-token` | | 身份验证刷新令牌。 |
| `-as` | `--auto-start` | `True` | 在 `phish-start` 后自动启动设备代码捕获。 |
| `-l` | `--load-access-token` | | 从 `.azure_creds` 按名称加载缓存的令牌。 |
| `-j` | `--json` | | 将活动输出保存到指定的 JSON 文件。 |
| `-fl` | `--filter` | | 仅打印键匹配这些属性(逗号分隔)的属性。 |
| `-u` | `--username` | | 用户主体名称(电子邮件)。 |
| `-p` | `--password` | | 用户密码。 |
| `-s` | `--save` | `False` | 自动将获取的令牌保存到 `.azure_creds`(**需要 `-n`**)。 |
| `-cp` | `--check-privileges` | `False` | 在成功的喷射登录后,探测是否可以枚举用户/应用程序。 |
| `-uid` | `--uid` | | Azure 用户对象 ID(由 `add-group` 使用)。 |
| `-headers` | `--headers` | | 额外的 HTTP 头,格式为 JSON,例如 `{"X-Foo": "bar"}`。 |
| `-gid` | `--gid` | `62e90394-69f5-4237-91f9-056ad24d70a7` | 目录角色/组 ID(默认 = **全局管理员**)。 |
| `-i` | `--id` | `False` | 用于 `interest`:仅打印应用程序 ID。 |
| `-ty` | `--type` | | 用于 `interest`:过滤到特定类别。 |
| `-fp` | `--filepath` | | 要上传的文件(`push-file`)或用于喷射的自定义应用列表。 |
| `-v` | `--version` | `v2.0` | 身份验证 API 版本:`v0` 或 `v2.0`。 |
| `-ua` | `--user-agent` | *(Chrome UA 字符串)* | 覆盖 HTTP `User-Agent`。 |
| `-au` | `--audience` | `https://graph.microsoft.com` | 令牌受众/资源。 |
| `-sc` | `--scope` | `openid offline_access` | OAuth2 作用域。对于 Graph 使用 `https://graph.microsoft.com/.default`,对于喷射使用 `openid`。 |
| `-url` | `--url` | | 用于 `raw-url`/`invite` 的目标 URL;用于 `auth-interactive` 的逗号分隔的 URL 列表。 |
| `-beta` | `--beta` | `False` | 对 `list-users`/`list-applications` 使用 Microsoft Graph **beta** 端点。 |
| `-exp` | `--expand` | `False` | 在输出中展开嵌套列表/字典为人类可读的格式。 |
| `-k` | `--keep` | `False` | 在 `auth-interactive` / `browser-sso` 后保留 `session.har` 文件。 |
| `-cs` | `--client-secret` | | 由 `obo` 代表授权使用的机密客户端密钥。 |
| `-prt` | `--prt-cookie` | | PRT cookie 值(`x-ms-RefreshTokenCredential`),用于为 `browser-sso` 播种浏览器 SSO。 |
| `-br` | `--browser` | `firefox` | 用于浏览器流程(`auth-interactive`、`browser-sso`)的 Playwright 浏览器引擎。可选值:`firefox`、`chromium`、`webkit`。 |
| `-aprt` | `--auto-prt` | `False` | 用于 `browser-sso`:从刷新令牌自动生成 PRT cookie(设备注册 → PRT → `x-ms-RefreshTokenCredential`),以便浏览器**已认证**打开。需要 `cryptography` 和 FOCI/代理刷新令牌。 |
| `-d` | `--debug` | `False` | 启用调试日志。 |
| `-dd` | `--verbose-debug` | `False` | 启用详细的 HTTP 请求/响应日志。 |
| `-re` | `--redirect-to-file` | `False` | 将所有控制台输出镜像到 `output.txt`。 |

---

## 活动

下面,每个活动列出了其**必需**和*可选*参数。
"Token" 表示需要 `-ac` 或 `-l`。

### 令牌管理

| 活动 | 必需参数 | 可选参数 | 描述 |
|------|----------|----------|------|
| `save` | `-ac`, `-n` | `-tid`, `-r` | 将访问(和可选的刷新)令牌保存到 `.azure_creds`。 |
| `list-token` | — | — | 列出所有已保存令牌的名称。 |
| `view` | `-n` | — | 解码并显示已保存令牌的 JWT 声明。 |
| `delete` | `-n` | — | 从存储中移除已保存的令牌。 |```bash
# Save a token under the name "mytoken"
python3 AzureRedOps.py -a save -n mytoken -ac eyJ0eXAi... -r 0.AReAB... -tid <tenant-guid>
下载工具