Az - OAuth Apps Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure Applications налаштовані з дозволами, які вони зможуть використовувати, коли користувач надає згоду на застосунок (наприклад, для перерахунку каталогу, доступу до файлів або виконання інших дій). Зверніть увагу, що застосунок буде діяти від імені користувача, тому навіть якщо застосунок може запитувати адміністративні дозволи, якщо користувач, що надає згоду, не має цих дозволів, застосунок не зможе виконувати адміністративні дії.
За замовчуванням будь-який користувач може надати згоду на застосунки, хоча це можна налаштувати так, щоб користувачі могли надавати згоду лише на застосунки від перевірених видавців для вибраних дозволів або навіть видалити дозвіл для користувачів на надання згоди на застосунки.
Якщо користувачі не можуть надати згоду, адміністратори такі як GA
, Application Administrator
або Cloud Application
Administrator
можуть надати згоду на застосунки, які користувачі зможуть використовувати.
Більше того, якщо користувачі можуть надавати згоду лише на застосунки з низькоризиковими дозволами, ці дозволи за замовчуванням є openid, profile, email, User.Read та offline_access, хоча можливо додати більше до цього списку.
І якщо вони можуть надавати згоду на всі застосунки, вони можуть надавати згоду на всі застосунки.
Unauthenticated: З зовнішнього облікового запису створіть застосунок з низькоризиковими дозволами User.Read
та User.ReadBasic.All
, наприклад, фішинг користувача, і ви зможете отримати доступ до інформації каталогу.
Це вимагає, щоб фішинговий користувач був здатний приймати OAuth застосунки з зовнішнього орендаря.
Якщо фішинговий користувач є адміністратором, який може надавати згоду на будь-який застосунок з будь-якими дозволами, застосунок також може запитувати привілейовані дозволи.
Authenticated: Після компрометації принципала з достатніми привілеями, створіть застосунок всередині облікового запису та фішинг деякого привілейованого користувача, який може приймати привілейовані OAuth дозволи.
У цьому випадку ви вже можете отримати доступ до інформації каталогу, тому дозвіл User.ReadBasic.All
більше не є цікавим.
Вам, ймовірно, цікаві дозволи, які вимагають надання згоди адміністратором, оскільки звичайний користувач не може надати жодних дозволів OAuth застосункам, тому вам потрібно фішити лише цих користувачів (більше про те, які ролі/дозволи надають це право пізніше).
Зверніть увагу, що вам потрібно виконати цю команду від користувача всередині орендаря, ви не можете знайти цю конфігурацію орендаря з зовнішнього. Наступний cli може допомогти вам зрозуміти дозволи користувачів:
Користувачі можуть давати згоду на всі додатки: Якщо всередині permissionGrantPoliciesAssigned
ви можете знайти: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
, тоді користувачі можуть приймати кожен додаток.
Користувачі можуть давати згоду на додатки від перевірених видавців або вашої організації, але тільки на дозволи, які ви виберете: Якщо всередині permissionGrantPoliciesAssigned
ви можете знайти: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, тоді користувачі можуть приймати кожен додаток.
Вимкнути згоду користувача: Якщо всередині permissionGrantPoliciesAssigned
ви можете знайти тільки: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
та ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, тоді користувачі не можуть давати згоду.
Можна знайти значення кожної з коментованих політик у:
Перевірте користувачів, які вважаються адміністраторами додатків (можуть приймати нові додатки):
Атака включає кілька етапів, спрямованих на загальну компанію. Ось як це може відбуватися:
Реєстрація домену та хостинг додатка: Зловмисник реєструє домен, що нагадує надійний сайт, наприклад, "safedomainlogin.com". Під цим доменом створюється піддомен (наприклад, "companyname.safedomainlogin.com") для хостингу додатка, призначеного для захоплення кодів авторизації та запиту токенів доступу.
Реєстрація додатка в Azure AD: Потім зловмисник реєструє багатокористувацький додаток у своєму Azure AD Tenant, називаючи його на честь цільової компанії, щоб виглядати легітимно. Вони налаштовують URL-адресу перенаправлення додатка на піддомен, що хостить шкідливий додаток.
Налаштування дозволів: Зловмисник налаштовує додаток з різними дозволами API (наприклад, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Ці дозволи, після їх надання користувачем, дозволяють зловмиснику витягувати чутливу інформацію від імені користувача.
Розповсюдження шкідливих посилань: Зловмисник створює посилання, що містить ідентифікатор клієнта шкідливого додатка, і ділиться ним з цільовими користувачами, обманюючи їх, щоб надати згоду.
Зареєструйте новий додаток. Він може бути лише для поточного каталогу, якщо ви використовуєте користувача з атакованого каталогу, або для будь-якого каталогу, якщо це зовнішня атака (як на наступному зображенні).
Також налаштуйте URI перенаправлення на очікувану URL-адресу, куди ви хочете отримати код для отримання токенів (http://localhost:8000/callback
за замовчуванням).
Потім створіть секрет додатка:
Виберіть дозволи API (наприклад, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Виконайте веб-сторінку (azure_oauth_phishing_example), яка запитує дозволи:
Надішліть URL жертві
У цьому випадку http://localhost:8000
Жертви повинні прийняти запит:
Використовуйте токен доступу для отримання запитуваних дозволів:
365-Stealer: Перегляньте https://www.alteredsecurity.com/post/introduction-to-365-stealer, щоб дізнатися, як його налаштувати.
В залежності від запитуваних дозволів, ви можете отримати доступ до різних даних орендаря (список користувачів, груп... або навіть змінювати налаштування) та інформації користувача (файли, нотатки, електронні листи...). Потім ви можете використовувати ці дозволи для виконання цих дій.
Перегляньте розділи Додатків та Службових Принципів на сторінці:
Az - EntraID PrivescВчіться та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)