Az - Conditional Access Policies / MFA Bypass

Підтримайте HackTricks

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

Політики умовного доступу Azure - це правила, встановлені в Microsoft Azure для забезпечення контролю доступу до служб та додатків Azure на основі певних умов. Ці політики допомагають організаціям захистити свої ресурси, застосовуючи правильні контролі доступу за правильних обставин. Політики умовного доступу в основному визначають, Хто може отримати доступ до Чого з Де і Як.

Ось кілька прикладів:

  1. Політика ризику входу: Цю політику можна налаштувати так, щоб вимагати багатофакторну аутентифікацію (MFA), коли виявляється ризик входу. Наприклад, якщо поведінка входу користувача є незвичною в порівнянні з їхнім звичайним патерном, наприклад, входом з іншої країни, система може запитати додаткову аутентифікацію.

  2. Політика відповідності пристроїв: Ця політика може обмежити доступ до служб Azure лише для пристроїв, які відповідають стандартам безпеки організації. Наприклад, доступ може бути дозволений лише з пристроїв, які мають актуальне антивірусне програмне забезпечення або працюють на певній версії операційної системи.

Обходи політик умовного доступу

Можливо, що політика умовного доступу перевіряє деяку інформацію, яку можна легко підробити, що дозволяє обійти політику. І якщо, наприклад, політика налаштовує MFA, зловмисник зможе її обійти.

Платформи пристроїв - Умова пристрою

Можливо встановити умову на основі платформи пристрою (Android, iOS, Windows, macOS), однак це базується на user-agent, тому це досить легко обійти. Навіть зробивши всі опції обов'язковими для MFA, якщо ви використовуєте user-agent, який не розпізнається, ви зможете обійти MFA.

Локації: Країни, IP-діапазони - Умова пристрою

Звичайно, якщо це встановлено в умовній політиці, зловмисник може просто використовувати VPN в дозволеній країні або спробувати знайти спосіб отримати доступ з дозволеної IP-адреси, щоб обійти ці умови.

Клієнтські програми Office365

Ви можете вказати, що якщо клієнти отримують доступ до програм Office 365 з браузера, їм потрібна MFA:

Щоб обійти це, можливо вдавати, що ви входите в додаток з настільного додатку (наприклад, до Microsoft Teams у наступному прикладі), що обійде захист:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokrns-stdout

<token>

Оскільки додаток Microsoft Teams має багато дозволів, ви зможете використовувати цей доступ.

Ви можете знайти ID більшості публічних додатків з попередньо визначеними дозволами Office365 у базі даних roadtools:

SELECT appId, displayName FROM ApplicationRefs WHERE publicCLient = 1 ORDER BY displayName ASC

Ця атака особливо цікава, оскільки за замовчуванням публічні програми Office365 матимуть дозволи на доступ до деяких даних.

Інші програми

За замовчуванням інші програми, створені користувачами, не матимуть дозволів і можуть бути приватними. Однак користувачі також можуть створювати публічні програми, надаючи їм деякі дозволи.

Потенційний сценарій, коли політика налаштована на вимогу MFA для доступу до програми, коли користувач використовує браузер (можливо, тому що це веб-додаток і, отже, це буде єдиний спосіб), якщо є проксі-додаток - додаток, дозволений взаємодіяти з іншими додатками від імені користувачів - користувач може увійти в проксі-додаток, а потім через цей проксі-додаток увійти в спочатку захищений MFA додаток.

Перевірте Invoke-MFASweep та donkeytoken техніки.

Інші обходи Az MFA

Дзвінок

Одна з опцій Azure MFA - це отримати дзвінок на налаштований номер телефону, де буде запитано користувача надіслати символ #.

Оскільки символи - це просто тони, зловмисник може компрометувати голосове повідомлення на номері телефону, налаштувати як повідомлення тон # і потім, коли запитують MFA, переконатися, що телефон жертви зайнятий (дзвонячи на нього), щоб дзвінок Azure перенаправлявся на голосову пошту.

Сумісні пристрої

Політики часто вимагають сумісний пристрій або MFA, тому зловмисник може зареєструвати сумісний пристрій, отримати токен PRT і обійти таким чином MFA.

Почніть з реєстрації сумісного пристрою в Intune, потім отримайте PRT за допомогою:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Знайдіть більше інформації про цей вид атаки на наступній сторінці:

Az - Pass the PRT

Інструменти

Отримати всі політики

roadrecon plugin policies

MFASweep - це скрипт PowerShell, який намагається увійти до різних сервісів Microsoft, використовуючи наданий набір облікових даних, і спробує визначити, чи увімкнено MFA. Залежно від того, як налаштовані політики умовного доступу та інші налаштування багатофакторної аутентифікації, деякі протоколи можуть залишитися з однофакторною аутентифікацією. Він також має додаткову перевірку для конфігурацій ADFS і може спробувати увійти до локального сервера ADFS, якщо його виявлено.

Invoke-MFASweep -Username <username> -Password <pass>

Donkey token - це набір функцій, які мають на меті допомогти консультантам з безпеки, які потребують перевірки політик умовного доступу, тестів для порталу Microsoft з увімкненим 2FA тощо.

Import-Module 'C:\Users\Administrador\Desktop\Azure\Modulos ps1\donkeytoken' -Force

Перевірте кожен портал, чи можливо увійти без MFA:

Test-MFA -credential $cred -Verbose -Debug -InformationAction Continue

Оскільки Azure портал не обмежений, можливо зібрати токен з кінцевої точки порталу для доступу до будь-якої служби, виявленої попереднім виконанням. У цьому випадку було виявлено Sharepoint, і запитується токен для доступу до нього:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

Припустимо, що токен має дозвіл Sites.Read.All (з Sharepoint), навіть якщо ви не можете отримати доступ до Sharepoint з вебу через MFA, можливо використовувати токен для доступу до файлів згенерованим токеном:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

References

Підтримайте HackTricks

Last updated