Az - Illicit Consent Grant
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
, ApplicationAdministrator
, CloudApplication
Administrator
та спеціальна роль, що включає дозвіл на надання дозволів додаткам
, можуть надати згоду на рівні орендаря.
Лише дозволи, які не потребують згоди адміністратора, класифікуються як низький вплив. Це дозволи, необхідні для основного входу, такі як openid, profile, email, User.Read та offline_access. Якщо організація дозволяє користувачам надавати згоду для всіх додатків, співробітник може надати згоду на додаток для читання вищезазначеного з його профілю.
Отже, зловмисник може підготувати шкідливий додаток і за допомогою фішингу змусити користувача прийняти додаток і вкрасти його дані.
Неавтентифіковані: З зовнішнього облікового запису створіть додаток з дозволами User.Read
та User.ReadBasic.All
, наприклад, фішинг користувача, і ви зможете отримати доступ до інформації каталогу.
Це вимагає, щоб фішинговий користувач міг приймати OAuth додатки з зовнішніх середовищ!
Автентифіковані: Після компрометації принципала з достатніми привілеями створіть додаток всередині облікового запису та фішинг деякого привілейованого користувача, який може приймати привілейовані OAuth дозволи.
У цьому випадку ви вже можете отримати доступ до інформації каталогу, тому дозвіл User.ReadBasic.All
більше не є цікавим.
Вам, ймовірно, цікаві дозволи, які вимагають, щоб адміністратор надав їх, оскільки звичайний користувач не може надати жодних дозволів OAuth додаткам, тому вам потрібно фішити лише тих користувачів (більше про те, які ролі/дозволи надають це право пізніше)
Наступна команда PowerShell використовується для перевірки конфігурації згоди для користувачів в Azure Active Directory (Azure AD) щодо їхньої здатності надавати згоду на додатки:
Вимкнення згоди користувачів: Ця настройка забороняє користувачам надавати дозволи додаткам. Ніяка згода користувачів на додатки не дозволяється.
Користувачі можуть надавати згоду на додатки від перевірених видавців або вашої організації, але тільки на дозволи, які ви виберете: Ця настройка дозволяє всім користувачам надавати згоду лише на додатки, які опубліковані перевіреним видавцем та додатки, зареєстровані у вашому власному тенанті. Це додає рівень контролю, дозволяючи надавати згоду лише на конкретні дозволи.
Користувачі можуть надавати згоду на всі додатки: Ця настройка є більш ліберальною і дозволяє всім користувачам надавати згоду на будь-які дозволи для додатків, якщо ці дозволи не вимагають адміністративної згоди.
Політика згоди на користувацькі додатки: Ця настройка вказує на те, що існує користувацька політика, яка може бути налаштована відповідно до специфічних вимог організації і може включати комбінацію обмежень на основі видавця додатка, дозволів, які запитує додаток, та інших факторів.
В атаці з незаконним наданням згоди зловмисники обманюють кінцевих користувачів, змушуючи їх надавати дозволи шкідливому додатку, зареєстрованому в Azure. Це робиться шляхом створення вигляду легітимності додатка, що призводить до того, що жертви ненавмисно натискають кнопку "Прийняти". В результаті Azure AD видає токен на сайт зловмисника, що дозволяє їм отримувати доступ і маніпулювати даними жертви, такими як читання або надсилання електронних листів і доступ до файлів, без необхідності мати організаційний обліковий запис.
Атака включає кілька етапів, націлених на загальну компанію. Ось як це може відбуватися:
Реєстрація домену та хостинг додатка: Зловмисник реєструє домен, що нагадує надійний сайт, наприклад, "safedomainlogin.com". Під цим доменом створюється піддомен (наприклад, "companyname.safedomainlogin.com") для хостингу додатка, призначеного для захоплення кодів авторизації та запиту токенів доступу.
Реєстрація додатка в Azure AD: Зловмисник потім реєструє багатокористувацький додаток у своєму тенанті Azure AD, називаючи його на честь цільової компанії, щоб виглядати легітимно. Вони налаштовують URL-адресу перенаправлення додатка, щоб вона вказувала на піддомен, що хостить шкідливий додаток.
Налаштування дозволів: Зловмисник налаштовує додаток з різними дозволами API (наприклад, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Ці дозволи, після надання згоди користувачем, дозволяють зловмиснику витягувати чутливу інформацію від імені користувача.
Розповсюдження шкідливих посилань: Зловмисник створює посилання, що містить ідентифікатор клієнта шкідливого додатка, і ділиться ним з цільовими користувачами, обманюючи їх на надання згоди.
Атака може бути полегшена за допомогою інструментів, таких як 365-Stealer.
Якщо зловмисник має певний рівень доступу до користувача в організації жертви, він може перевірити, чи дозволяє політика організації користувачу приймати додатки:
Для виконання атаки зловмиснику потрібно створити новий додаток у своєму Azure Tenant (в реєстраціях додатків), налаштований з такими дозволами:
User.ReadBasic.All
знаходиться в Microsoft Graph
у Делегованих дозволах
. (Дозволи додатка завжди потребуватимуть додаткового схвалення).
User.ReadBasic.All
- це дозвіл, який дозволить вам читати інформацію про всіх користувачів в організації, якщо буде надано.
Пам'ятайте, що тільки GA
, ApplicationAdministrator
, CloudApplication
Administrator
та спеціальна роль, що включає дозвіл на надання дозволів додаткам
, можуть надати згоду на рівні орендаря. Тому вам слід фішити користувача з однією з цих ролей, якщо ви хочете, щоб він схвалив додаток, який потребує адміністративної згоди.
Ви також можете створити додаток через cli з:
Перевірте https://www.alteredsecurity.com/post/introduction-to-365-stealer, щоб дізнатися, як його налаштувати.
Зверніть увагу, що отриманий access token буде для graph endpoint з правами доступу: User.Read
та User.ReadBasic.All
(запитувані дозволи). Ви не зможете виконувати інші дії (але цього достатньо, щоб завантажити інформацію про всіх користувачів в організації).
Ви також можете використовувати цей інструмент для виконання цієї атаки.
Якщо ви отримали доступ до користувача, ви можете робити такі речі, як крадіжка чутливих документів і навіть завантаження документів з бекдором.
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)