
Web Account Manager (WAM) に Entra ID トークンを要求する
askWAM は Windows Web Account Manager (WAM) を通じて Microsoft Entra アクセストークンをサイレントに要求します。.NET Framework クライアント、スタンドアロンのネイティブ x64 クライアント、そして CNA コマンドアダプターを備えた x64 Beacon Object File として提供されます。
すべてのフロントエンドは、クライアントから見えるアカウントを列挙し、不透明な WAM アカウント ID または完全一致のユーザー名で ID を指定できます。対話型認証にフォールバックすることはありません。
このフローで要求されたトークンは、以下の詳細を継承します:
このトークン要求方法は、Token Protection が適用されている場合にも機能します。
CAE トークンは --cae フラグで要求できます。
1fec8e78-bce4-4aaf-ab1b-5451cc387264https://graph.microsoft.com/.defaultorganizations--hide で抑制デフォルトの Graph スコープは、--scope も --resource も指定されていない場合にのみ選択されます。
スコープモードは 1 つ以上の v2 スコープを受け付けます。openid offline_access profile を追加し、WAM の wam_compat=2.0 リクエストプロパティを設定します。
askwam --scope https://graph.microsoft.com/.default
リソースモードは WAM の v1 互換フローを実装します。空のスコープを送信し、WAM の resource リクエストプロパティを設定し、wam_compat は設定しません。
askwam --resource https://graph.microsoft.com
--scope と --resource は相互排他的です。
--enum トークンを要求せずにアカウントを列挙
--account-id <id> 正確な不透明 WAM アカウント ID を選択
--username <username> 完全一致の一意なユーザー名を 1 つ選択
--cae 定義済みの xms_cc/cp1 クレームオブジェクトを送信
--claims-json <json> 生の OAuth クレームオブジェクトまたはチャレンジを送信
.NET クライアントはさらに --claims-file <path> をサポートし、UTF-8 ファイルから生の OAuth クレームオブジェクトを読み取ります。--cae はカスタムクレーム入力と相互排他的です。カスタムチャレンジでも CAE が必要な場合は、生のオブジェクトに cp1 を含めてください。
デプロイには .NET Framework 4.8 を備えた Windows が必要です。リリースディレクトリにはアプリケーションとそのランタイム構成が含まれますが、プライベートな .NET または WinRT ランタイムは含まれません。
ビルドにはデフォルトで .NET SDK と Windows SDK 10.0.26100.0 メタデータが必要です。別のインストール済み Windows 10 または Windows 11 SDK を使用する場合は、WindowsMetadataPath MSBuild プロパティを設定してください。
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 以降が必要です。
.\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 です。
x64 BOF をビルドし、Cobalt Strike で src\bof\askwam.cna をロードします:
.\src\bof\build.ps1 -Configuration Release
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 ローダープロファイル向けにリリースオブジェクトも検証します。
このプロジェクトは、Release BOF を Sliver 拡張としてロードするための src\bof\extension.json も提供します。Mythic Apollo には同等のサイドカーファイルは不要です。その execute_coff コマンドはオブジェクトと同じ型付き引数シーケンスを受け付けます。両方の統合とパック引数コントラクトについては src\bof\README.md を参照してください。
公式ドキュメント:
類似プロジェクト:
このプロジェクトは Codex が GPT 5.6 Sol を使用して作成しました。