Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
askWAM — 向 Web 账户管理器 (WAM) 请求 Entra ID 令牌 | Kitploit
工具/GitHubGitHub/dirkjanm/askwam
身份管理后渗透利用渗透测试命令与控制实用工具与框架身份验证红队Payload 开发
GitHubdirkjanm/askwam

askWAM

向 Web 账户管理器 (WAM) 请求 Entra ID 令牌

查看仓库
23112天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

askWAM

askWAM 通过 Windows Web 账户管理器(WAM)静默请求 Microsoft Entra 访问令牌。它提供三种形式:.NET Framework 客户端、独立的原生 x64 客户端,以及带有 CNA 命令适配器的 x64 Beacon Object File。

所有前端都可以枚举客户端可见的账户,并通过其不透明的 WAM 账户 ID 或精确用户名来定位某个身份。它们绝不会回退到交互式身份验证。

通过此流程请求的令牌将继承以下详细信息:

  • 用户身份验证方法
  • 设备状态,例如合规/混合加入或托管

这种请求令牌的方式在强制执行令牌保护(Token Protection)时同样有效。 可以使用 --cae 标志请求 CAE 令牌。

默认值

  • Microsoft Teams 桌面/移动客户端 ID: 1fec8e78-bce4-4aaf-ab1b-5451cc387264
  • 作用域:https://graph.microsoft.com/.default
  • 颁发机构:organizations
  • 未提供选择器时使用 WAM 的默认账户
  • 30 秒超时
  • 默认启用访问令牌输出;--hide 会抑制输出

仅当既未提供 --scope 也未提供 --resource 时,才会选择默认的 Graph 作用域。

请求模式

作用域模式接受一个或多个 v2 作用域。它会追加 openid offline_access profile 并设置 WAM 的 wam_compat=2.0 请求属性。

root@kitploit:~
askwam --scope https://graph.microsoft.com/.default

资源模式实现 WAM 的 v1 兼容流程。它发送空作用域,设置 WAM resource 请求属性,并且不设置 wam_compat。

root@kitploit:~
askwam --resource https://graph.microsoft.com

--scope 和 --resource 互斥。

账户与声明

root@kitploit:~
--enum                    枚举账户而不请求令牌
--account-id <id>         选择精确的不透明 WAM 账户 ID
--username <username>     选择一个精确且唯一的用户名
--cae                     发送预定义的 xms_cc/cp1 声明对象
--claims-json <json>      发送原始 OAuth 声明对象或质询

.NET 客户端还额外支持 --claims-file <path>,用于从 UTF-8 文件读取原始 OAuth 声明对象。--cae 与自定义声明输入互斥。当自定义质询同时需要 CAE 时,请在原始对象中包含 cp1。

.NET Framework 客户端

部署需要带有 .NET Framework 4.8 的 Windows。发布目录包含应用程序及其运行时配置;它不包含私有的 .NET 或 WinRT 运行时。

构建默认需要 .NET SDK 和 Windows SDK 10.0.26100.0 元数据。 使用其他已安装的 Windows 10 或 Windows 11 SDK 时,请设置 WindowsMetadataPath MSBuild 属性。

root@kitploit:~
dotnet build .\src\dotnet\AskWAM.csproj --configuration Release
.\src\dotnet\bin\Release\net48\askwam.exe --enum
.\src\dotnet\bin\Release\net48\askwam.exe --resource https://graph.microsoft.com --hide

该客户端输出纯 name=value 行。它不会解码或打印 JWT 声明。

独立原生客户端

构建需要 Visual Studio 2022 C++ Build Tools 以及 Windows 10 或 Windows 11 SDK。账户枚举需要 Windows 10 版本 1803 或更高版本。

root@kitploit:~
.\src\native\build.ps1 -Configuration Release
.\src\native\bin\Release\askwam.exe --enum
.\src\native\bin\Release\askwam.exe --resource https://graph.microsoft.com --hide

发布的可执行文件静态链接到 C 运行时,并使用系统内置的 WinRT API 接口。其机器可读的结果格式为 JSON。

Beacon Object File

构建 x64 BOF 并在 Cobalt Strike 中加载 src\bof\askwam.cna:

root@kitploit:~
.\src\bof\build.ps1 -Configuration Release
root@kitploit:~
askwam --enum
askwam --account-id <id-from-enum>
askwam --resource https://graph.microsoft.com --hide
askwam --cae --hide
askwam --claims-json {"access_token":{"xms_cc":{"values":["cp1"]}}}

构建脚本会检查 BOF 入口点和未定义符号允许列表。当 -BofLintPath 或 BOFLINT_PATH 指向 Outflank 的 boflint.py 时,它还会针对 Cobalt Strike、Outflank C2 和 Core Impact 加载器配置文件验证发布对象。

该项目还附带 src\bof\extension.json,用于将 Release BOF 作为 Sliver 扩展加载。Mythic Apollo 不需要等效的附属文件;其 execute_coff 命令接受该对象以及相同的类型化参数序列。 有关这两种集成以及打包参数约定,请参阅 src\bof\README.md。

参考资料

官方文档:

  • Web Account Manager 桌面指南 — 直接的 Windows WAM API 和桌面集成。
  • Microsoft Entra WAM API 参考 — 特定于提供程序的请求参数。
  • 将 MSAL.NET 与 WAM 配合使用 — 代理集成和托管引用方法。
  • 声明质询和客户端能力 — 声明请求和 CAE 客户端能力。

类似项目:

  • list-wam-accounts by Tw1sm
  • go-wam by Allow-Solutions

本项目由 Codex 使用 GPT 5.6 Sol 创建。

下载工具