Az - Pass the PRT
पीआरटी क्या है
pageAz - Primary Refresh Token (PRT)जांचें कि आपके पास एक पीआरटी है या नहीं
SSO स्थिति
आपको AzureAdPrt
को YES सेट किए गए देखना चाहिए।
इसी आउटपुट में आप देख सकते हैं कि क्या डिवाइस Azure से जुड़ा हुआ है (क्षेत्र AzureAdJoined
में):
PRT कुकी
PRT कुकी वास्तव में x-ms-RefreshTokenCredential
कहलाती है और यह एक JSON वेब टोकन (JWT) है। एक JWT में 3 भाग होते हैं, हेडर, पेलोड और सिग्नेचर, .
द्वारा विभाजित और सभी url-सुरक्षित base64 एन्कोडेड होते हैं। एक साधारण PRT कुकी निम्नलिखित हेडर और बॉडी को शामिल करती है:
वास्तविक प्राथमिक रिफ्रेश टोकन (PRT) refresh_token
के भीतर आवरित है, जिसे एक कुंजी द्वारा एन्क्रिप्ट किया जाता है जो एज़्यूर AD के नियंत्रण में है, जिससे इसकी सामग्री अस्पष्ट और हमारे लिए अनविचार्य बन जाती है। is_primary
फ़ील्ड प्राथमिक रिफ्रेश टोकन के इस टोकन के भीतर आवरण को सूचित करती है। यह सुनिश्चित करने के लिए कि कुकी उस विशेष लॉगिन सत्र से जुड़ी रहे इसके लिए request_nonce
को logon.microsoftonline.com
पृष्ठ से प्रेषित किया जाता है।
TPM का उपयोग करके PRT कुकी फ्लो
LSASS प्रक्रिया TPM को KDF संदर्भ भेजेगी, और TPM सत्र कुंजी का उपयोग करेगा (जब उपकरण को एज़्यूर AD में पंजीकृत किया गया था और TPM में संग्रहीत किया गया था) और पिछले संदर्भ का उपयोग करके एक कुंजी को विकसित करेगा, और यह विकसित कुंजी का उपयोग PRT कुकी (JWT) को साइन करने के लिए किया जाता है।
KDF संदर्भ एक नॉन्स है जो AzureAD से और PRT से आता है जो JWT बनाता है जिसमें संदर्भ (रैंडम बाइट्स) मिलाए जाते हैं।
इसलिए, यदि PTR को निकाला नहीं जा सकता क्योंकि यह TPM के अंदर स्थित है, तो नए संदर्भ से विकसित कुंजियों का अनुरोध करने और उत्पन्न कुंजियों का उपयोग करके कुकी को साइन करने के लिए LSASS का दुरुपयोग किया जा सकता है।
PRT दुरुपयोग स्थितियाँ
एक सामान्य उपयोगकर्ता के रूप में आप LSASS से SSO डेटा का अनुरोध करके PRT उपयोग करने के संभावनाएँ हैं। यह नेटिव ऐप्स की तरह किया जा सकता है जो वेब खाता प्रबंधक (टोकन ब्रोकर) से टोकन का अनुरोध करते हैं। WAM अनुरोध को LSASS को पास करता है, जो साइन किए गए PRT अभिकथन का उपयोग करके टोकन के लिए अनुरोध करता है। या यह ब्राउज़र आधारित (वेब) फ्लो के साथ किया जा सकता है जहां PRT कुकी का उपयोग हेडर के रूप में किया जाता है ताकि Azure AS लॉगिन पेजों के लिए अनुरोधों को प्रमाणित किया जा सके।
SYSTEM के रूप में आप PRT को चोरी कर सकते हैं अगर TPM द्वारा संरक्षित नहीं है या LSASS में PRT कुंजियों के साथ बातचीत कर सकते हैं क्रिप्टो एपीआई का उपयोग करके।
PRT दुरुपयोग हमले उदाहरण
हमला - ROADtoken
इस तरीके के बारे में अधिक जानकारी के लिए इस पोस्ट की जाँच करें। ROADtoken BrowserCore.exe
को सही निर्देशिका से चलाएगा और इसका उपयोग करके PRT कुकी प्राप्त करेगा। इस कुकी का उपयोग फिर ROADtools के साथ प्रमाणित करने और स्थायी रिफ्रेश टोकन प्राप्त करने के लिए किया जा सकता है।
एक मान्य PRT कुकी उत्पन्न करने के लिए पहली चीज जो आपको चाहिए है एक नॉन्स है। आप इसे प्राप्त कर सकते हैं:
या roadrecon:
तो आप roadtoken का उपयोग कर सकते हैं एक नया PRT प्राप्त करने के लिए (उपयोगकर्ता की प्रक्रिया से उपकरण में चलाएं):
फिर आप उत्पन्न कुकी का उपयोग करके टोकन उत्पन्न कर सकते हैं और Azure AD ग्राफ या माइक्रोसॉफ्ट ग्राफ का उपयोग करके लॉगिन कर सकते हैं:
हमला - रोडरेकॉन का उपयोग
हमला - AADInternals का उपयोग और लीक हुआ PTR
Get-AADIntUserPRTToken
यूज़र का PRT टोकन एज़्यूर AD ज्वाइंड या हाइब्रिड ज्वाइंड कंप्यूटर से प्राप्त करता है। BrowserCore.exe
का उपयोग PRT टोकन प्राप्त करने के लिए किया जाता है।
या यदि आपके पास Mimikatz से मान्यताएँ हैं तो आप AADInternals का उपयोग करके टोकन उत्पन्न कर सकते हैं:
जाएं https://login.microsoftonline.com, login.microsoftonline.com के लिए सभी कुकीज़ को हटा दें और एक नई कुकी दर्ज करें।
फिर जाएं https://portal.azure.com
शेष सभी डिफ़ॉल्ट होने चाहिए। सुनिश्चित करें कि आप पृष्ठ को ताज़ा कर सकते हैं और कुकी गायब नहीं होती है, अगर ऐसा होता है, तो आपने गलती की हो सकती है और प्रक्रिया को फिर से शुरू करना होगा। अगर ऐसा नहीं होता है, तो आप ठीक हैं।
हमला - मिमीकैट्ज
कदम
LSASS (स्थानीय सुरक्षा प्राधिकरण उपसाधन सेवा) से PRT (प्राथमिक ताज़ा करने वाला टोकन) निकाला जाता है और भविष्य में उपयोग के लिए संग्रहीत किया जाता है।
अगले में सत्र कुंजी निकाली जाती है। यह कुंजी पहले जारी की जाती है और फिर स्थानीय उपकरण द्वारा पुनः एन्क्रिप्ट की जाती है, इसे DPAPI मास्टरकी का उपयोग करके डिक्रिप्शन करना आवश्यक है। DPAPI (डेटा संरक्षण API) के बारे में विस्तृत जानकारी इन संसाधनों में उपलब्ध है: HackTricks और इसके अनुप्रयोग की समझ के लिए, कुकी हमला अटैक के लिए संदर्भित करें।
सत्र कुंजी का डिक्रिप्शन होने के बाद, PRT के लिए प्राप्त की गई उत्पन्न कुंजी और संदर्भ प्राप्त किए जाते हैं। ये PRT कुकी का निर्माण के लिए महत्वपूर्ण हैं। विशेष रूप से, उत्पन्न कुंजी का उपयोग कुकी बनाने वाले JWT (JSON वेब टोकन) को साइन करने के लिए किया जाता है। इस प्रक्रिया का विस्तृत विवरण Dirk-jan द्वारा प्रदान किया गया है, जिसे यहां से पहुंचा जा सकता है: यहां
ध्यान दें कि यदि PRT TPM के अंदर है और lsass
के अंदर नहीं है तो mimikatz इसे निकालने में सक्षम नहीं होगा।
हालांकि, यह संभव होगा कि एक कुंजी को एक संदर्भ से एक कुंजी प्राप्त किया जा सकता है TPM से और इसका उपयोग करके एक कुकी को साइन करने के लिए (विकल्प 3 की जांच करें)।
आप इन विवरणों को निकालने के लिए किए गए प्रक्रिया का विस्तृत विवरण यहां पा सकते हैं: https://dirkjanm.io/digging-further-into-the-primary-refresh-token/
यह अब अगस्त 2021 के बाद काम नहीं करेगा क्योंकि अन्य उपयोगकर्ताओं के PRT टोकन प्राप्त करने के लिए केवल उपयोगकर्ता ही अपना PRT प्राप्त कर सकता है (स्थानीय व्यवस्थापक अन्य उपयोगकर्ताओं के PRT को नहीं पहुंच सकता है), लेकिन अपना पहुंच सकता है।
आप mimikatz का उपयोग करके PRT को निकालने के लिए कर सकते हैं:
कॉपी करें उस हिस्से को जिसे Prt के रूप में चिह्नित किया गया है और इसे सहेजें।
नीचे हाइलाइट किए गए ProofOfPossesionKey
फील्ड के KeyValue
को भी निकालें। यह एन्क्रिप्टेड है और हमें इसे डिक्रिप्ट करने के लिए अपने DPAPI मास्टरकी का उपयोग करना होगा।
अगर आप PRTs नहीं देखते हैं तो यह हो सकता है कि आपके पास कोई PRTs नहीं हैं क्योंकि आपकी डिवाइस Azure AD से जुड़ी नहीं है या यह हो सकता है कि आप पुराने संस्करण के Windows 10 का उपयोग कर रहे हैं।
सत्र कुंजी को डिक्रिप्ट करने के लिए आपको अपनी विशेषाधिकारों को ऊंचा करने की आवश्यकता है ताकि आप DPAPI मास्टरकी का उपयोग करके इसे डिक्रिप्ट कर सकें। इसे करने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
विकल्प 1 - पूर्ण मिमीकैट्ज
अब आपको कंटेक्स्ट मान की प्रतिलिपि करनी है:
और विकसित कुंजी मान:
अंततः आप इस सभी जानकारी का उपयोग करके PRT कुकी उत्पन्न कर सकते हैं:
https://login.microsoftonline.com पर जाएं, login.microsoftonline.com के लिए सभी कुकी हटा दें और एक नई कुकी दर्ज करें।
फिर जाएं https://portal.azure.com
शेष डिफ़ॉल्ट होना चाहिए। सुनिश्चित करें कि आप पृष्ठ को रिफ़्रेश कर सकते हैं और कुकी गायब नहीं होती है, अगर ऐसा होता है, तो आपने गलती की हो सकती है और प्रक्रिया फिर से शुरू करनी पड़ सकती है। अगर ऐसा नहीं होता है, तो आप ठीक हैं।
विकल्प 2 - PTR का उपयोग करके roadrecon
पहले PRT को नवीनीकरण करें, जो
roadtx.prt
में सहेज देगा:
अब हम अंतर्क्रियात्मक ब्राउज़र का उपयोग करके
roadtx browserprtauth
का उपयोग करके टोकन का अनुरोध कर सकते हैं। यदि हमroadtx describe
कमांड का उपयोग करते हैं, तो हमें पहुंच टोकन में एक एमएफए क्लेम दिखाई देता है क्योंकि इस मामले में मैंने उपयोग किए गए पीआरटी में भी एक एमएफए क्लेम था।
विकल्प 3 - डिवाइस कुंजी का उपयोग करके roadrecon
मिमीकैट्ज द्वारा डंप किए गए संदर्भ और डिवाइस कुंजी के साथ, roadrecon का उपयोग करके एक नया साइन कुकी उत्पन्न करना संभव है:
संदर्भ
Last updated