
वेब अकाउंट मैनेजर (WAM) से Entra ID टोकन मांगें
askWAM Windows Web Account Manager (WAM) के माध्यम से चुपचाप Microsoft Entra एक्सेस टोकन का अनुरोध करता है। यह एक .NET Framework क्लाइंट, एक स्टैंडअलोन नेटिव x64 क्लाइंट, और CNA कमांड एडाप्टर के साथ एक x64 Beacon Object File के रूप में उपलब्ध होता है।
सभी फ्रंटएंड क्लाइंट के लिए दिखाई देने वाले खातों की गणना कर सकते हैं और किसी पहचान को उसकी अपारदर्शी WAM खाता ID या सटीक उपयोगकर्ता नाम द्वारा लक्षित कर सकते हैं। वे कभी भी इंटरैक्टिव प्रमाणीकरण पर वापस नहीं जाते।
इस फ़्लो के माध्यम से अनुरोध किए गए टोकन निम्नलिखित विवरण विरासत में लेंगे:
टोकन का अनुरोध करने का यह तरीका तब भी काम करता है जब Token Protection लागू हो। CAE टोकन का अनुरोध --cae फ़्लैग के साथ किया जा सकता है।
1fec8e78-bce4-4aaf-ab1b-5451cc387264https://graph.microsoft.com/.defaultorganizations--hide इसे दबा देता हैडिफ़ॉल्ट Graph scope केवल तब चुना जाता है जब न तो --scope और न ही --resource प्रदान किया गया हो।
Scope मोड एक या अधिक v2 scopes स्वीकार करता है। यह
openid offline_access profile जोड़ता है और WAM की wam_compat=2.0 अनुरोध प्रॉपर्टी सेट करता है।
askwam --scope https://graph.microsoft.com/.default
Resource मोड WAM के v1-संगत फ़्लो को लागू करता है। यह एक खाली scope भेजता है, WAM की resource अनुरोध प्रॉपर्टी सेट करता है, और wam_compat सेट नहीं करता।
askwam --resource https://graph.microsoft.com
--scope और --resource परस्पर अनन्य हैं।
--enum टोकन का अनुरोध किए बिना खातों की गणना करें
--account-id <id> एक सटीक अपारदर्शी WAM खाता ID चुनें
--username <username> एक सटीक, अद्वितीय उपयोगकर्ता नाम चुनें
--cae पूर्वनिर्धारित xms_cc/cp1 claims ऑब्जेक्ट भेजें
--claims-json <json> एक कच्चा OAuth claims ऑब्जेक्ट या challenge भेजें
.NET क्लाइंट अतिरिक्त रूप से --claims-file <path> का समर्थन करता है ताकि UTF-8 फ़ाइल से कच्चा OAuth claims ऑब्जेक्ट पढ़ा जा सके। --cae कस्टम claims इनपुट के साथ परस्पर अनन्य है। जब किसी कस्टम challenge को 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 claims को डिकोड या प्रिंट नहीं करता।
बिल्ड के लिए 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 एंट्री पॉइंट और undefined-symbol allowlist की जाँच करती है। जब -BofLintPath या BOFLINT_PATH Outflank के boflint.py को नामित करता है, तो यह Cobalt Strike, Outflank C2, और Core Impact loader प्रोफ़ाइल के लिए रिलीज़ ऑब्जेक्ट को भी मान्य करती है।
प्रोजेक्ट Release BOF को Sliver एक्सटेंशन के रूप में लोड करने के लिए src\bof\extension.json भी प्रदान करता है। Mythic Apollo को समतुल्य साइडकार फ़ाइल की आवश्यकता नहीं होती; इसका execute_coff कमांड ऑब्जेक्ट और समान टाइप्ड आर्ग्युमेंट अनुक्रम स्वीकार करता है। दोनों एकीकरणों और packed argument कॉन्ट्रैक्ट के लिए src\bof\README.md देखें।
आधिकारिक दस्तावेज़:
समान प्रोजेक्ट:
यह प्रोजेक्ट Codex द्वारा GPT 5.6 Sol का उपयोग करके बनाया गया था।