GWS - Google Platforms Phishing
Reading time: 8 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Generic Phishing Methodology
Phishing Methodology - HackTricks
Google Groups Phishing
Очевидно, за замовчуванням, у workspace учасники можуть створювати групи та запрошувати людей до них. Ви можете змінити електронну пошту, яка буде надіслана користувачу, додавши деякі посилання. Електронна пошта буде надіслана з адреси google, тому вона виглядатиме легітимно, і люди можуть натиснути на посилання.
Також можливо встановити адресу FROM як електронну пошту Google групи, щоб надіслати більше електронних листів користувачам всередині групи, як на наступному зображенні, де група google--support@googlegroups.com
була створена, і електронний лист був надісланий всім членам групи (які були додані без будь-якої згоди)
 (1).png)
Google Chat Phishing
Ви можете або почати чат з людиною, просто маючи її електронну адресу, або надіслати запрошення на розмову. Більше того, можливо створити Простір, який може мати будь-яку назву (наприклад, "Google Support") і запросити членів до нього. Якщо вони приймуть, вони можуть подумати, що спілкуються з Google Support:
.png)
tip
Однак у моєму тестуванні запрошені члени навіть не отримали запрошення.
Ви можете перевірити, як це працювало в минулому за адресою: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Google Doc Phishing
Раніше було можливо створити очевидно легітимний документ і в коментарі згадати якусь електронну пошту (наприклад, @user@gmail.com). Google надіслав електронний лист на цю електронну адресу, повідомляючи, що вони були згадані в документі.
Сьогодні це не працює, але якщо ви надасте жертві доступ до документа, Google надішле електронний лист, вказуючи на це. Це повідомлення, яке з'являється, коли ви згадуєте когось:
.png)
tip
Жертви можуть мати механізм захисту, який не дозволяє електронним листам, що вказують на те, що зовнішній документ був поділений з ними, досягати їхньої електронної пошти.
Google Calendar Phishing
Ви можете створити подію в календарі і додати стільки електронних адрес компанії, яку ви атакуєте, скільки у вас є. Заплануйте цю подію в календарі на 5 або 15 хвилин від поточного часу. Зробіть подію виглядати легітимно і додайте коментар та заголовок, вказуючи, що їм потрібно щось прочитати (з фішинговим посиланням).
Це попередження, яке з'явиться в браузері з заголовком зустрічі "Звільнення людей", тому ви могли б встановити більш фішинговий заголовок (і навіть змінити ім'я, пов'язане з вашою електронною поштою).
.png)
Щоб це виглядало менш підозріло:
- Налаштуйте так, щоб отримувачі не могли бачити інших запрошених людей
- НЕ надсилайте електронні листи, що повідомляють про подію. Тоді люди побачать лише своє попередження про зустріч через 5 хвилин і що їм потрібно прочитати це посилання.
- Очевидно, використовуючи API, ви можете встановити True, що люди прийняли подію і навіть створити коментарі від їхнього імені.
App Scripts Redirect Phishing
Можливо створити скрипт на https://script.google.com/ і викласти його як веб-додаток, доступний для всіх, який використовуватиме легітимний домен script.google.com
.
З деяким кодом, подібним до наступного, зловмисник може змусити скрипт завантажувати довільний вміст на цю сторінку без зупинки доступу до домену:
function doGet() {
return HtmlService.createHtmlOutput(
'<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.wiki/en/pentesting-cloud/workspace-security/gws-google-platforms-phishing/index.html#app-scripts-redirect-phishing">'
).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}
Наприклад, отримавши доступ до https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec, ви побачите:
 (1).png)
tip
Зверніть увагу, що з'явиться попередження, коли вміст завантажується всередині iframe.
App Scripts OAuth Phishing
Можливо створити App Scripts, прикріплені до документів, щоб спробувати отримати доступ до токена OAuth жертви, для отримання додаткової інформації перегляньте:
OAuth Apps Phishing
Будь-яка з попередніх технік може бути використана, щоб змусити користувача отримати доступ до Google OAuth application, яка запитуватиме у користувача деякі доступи. Якщо користувач довіряє джерелу, він може довіряти додатку (навіть якщо він запитує високі привілейовані дозволи).
note
Зверніть увагу, що Google показує непривабливе вікно з попередженням, що додаток ненадійний у кількох випадках, і адміністратори Workspace можуть навіть заборонити людям приймати OAuth додатки.
Google дозволяє створювати додатки, які можуть взаємодіяти від імені користувачів з кількома сервісами Google: Gmail, Drive, GCP...
Коли створюється додаток, щоб діяти від імені інших користувачів, розробник повинен створити OAuth app всередині GCP і вказати області (дозволи), які додаток потребує для доступу до даних користувачів.
Коли користувач хоче використовувати цей додаток, йому буде запропоновано прийняти, що додаток матиме доступ до їхніх даних, зазначених в областях.
Це дуже привабливий спосіб фішингу нетехнічних користувачів для використання додатків, які отримують доступ до чутливої інформації, оскільки вони можуть не розуміти наслідків. Однак в облікових записах організацій є способи запобігти цьому.
Unverified App prompt
Як було згадано, Google завжди показуватиме вікно для користувача для прийняття дозволів, які вони надають додатку від їхнього імені. Однак, якщо додаток вважається небезпечним, Google спочатку покаже вікно, яке вказує, що воно небезпечне і ускладнює користувачу надання дозволів додатку.
Це вікно з'являється в додатках, які:
- Використовують будь-яку область, яка може отримати доступ до приватних даних (Gmail, Drive, GCP, BigQuery...)
- Додатки з менш ніж 100 користувачами (додатки > 100 також потребують процесу перевірки, щоб зупинити показ вікна ненадійного додатку)
Interesting Scopes
Тут ви можете знайти список усіх областей Google OAuth.
- cloud-platform: Перегляд та управління вашими даними в сервісах Google Cloud Platform. Ви можете видавати себе за користувача в GCP.
- admin.directory.user.readonly: Перегляд та завантаження каталогу GSuite вашої організації. Отримайте імена, телефони, URL-адреси календарів усіх користувачів.
Create an OAuth App
Почніть створення OAuth Client ID
- Перейдіть на https://console.cloud.google.com/apis/credentials/oauthclient і натисніть на налаштування екрану згоди.
- Потім вам буде запропоновано, чи є тип користувача внутрішнім (тільки для людей у вашій організації) чи зовнішнім. Виберіть той, який відповідає вашим потребам.
- Внутрішній може бути цікавим, якщо ви вже скомпрометували користувача організації і створюєте цей додаток, щоб фішити іншого.
- Дайте ім'я додатку, електронну пошту підтримки (зверніть увагу, що ви можете встановити електронну пошту googlegroup, щоб спробувати анонімізувати себе трохи більше), логотип, дозволені домени та іншу електронну пошту для оновлень.
- Виберіть OAuth області.
- Ця сторінка поділена на неделікатні дозволи, делікатні дозволи та обмежені дозволи. Кожного разу, коли ви додаєте новий дозвіл, він додається до своєї категорії. В залежності від запитуваних дозволів різні вікна з'являться для користувача, вказуючи, наскільки чутливими є ці дозволи.
- Як
admin.directory.user.readonly
, так іcloud-platform
є делікатними дозволами.
- Додайте тестових користувачів. Поки статус додатку є тестовим, лише ці користувачі зможуть отримати доступ до додатку, тому переконайтеся, що додали електронну пошту, яку ви будете фішити.
Тепер давайте отримати облікові дані для веб-додатку, використовуючи раніше створений OAuth Client ID:
- Поверніться на https://console.cloud.google.com/apis/credentials/oauthclient, цього разу з'явиться інша опція.
- Виберіть створити облікові дані для веб-додатку.
- Встановіть необхідні Javascript origins та redirect URIs.
- Ви можете встановити в обох щось на зразок
http://localhost:8000/callback
для тестування.
- Отримайте свої облікові дані додатку.
Нарешті, давайте запустимо веб-додаток, який використовуватиме облікові дані OAuth додатку. Ви можете знайти приклад на https://github.com/carlospolop/gcp_oauth_phishing_example.
git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
cd gcp_oauth_phishing_example
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"
Перейдіть на http://localhost:8000
, натисніть кнопку Увійти з Google, вам буде представлено повідомлення, подібне до цього:
.png)
Додаток покаже токен доступу та токен оновлення, які можна легко використовувати. Для отримання додаткової інформації про те, як використовувати ці токени, перевірте:
Використання glcoud
Можливо зробити щось, використовуючи gcloud замість веб-консолі, перевірте:
GCP - ClientAuthConfig Privesc
Посилання
- https://www.youtube-nocookie.com/embed/6AsVUS79gLw - Метью Брайант - Хакінг G Suite: Сила темної магії Apps Script
- https://www.youtube.com/watch?v=KTVHLolz6cE - Майк Фелч і Боу Буллок - ОК Google, як мені провести Red Team GSuite?
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.