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

Generic Phishing Methodology

Phishing Methodology - HackTricks

Google Groups Phishing

Очевидно, за замовчуванням, у workspace учасники можуть створювати групи та запрошувати людей до них. Ви можете змінити електронну пошту, яка буде надіслана користувачу, додавши деякі посилання. Електронна пошта буде надіслана з адреси google, тому вона виглядатиме легітимно, і люди можуть натиснути на посилання.

Також можливо встановити адресу FROM як електронну пошту Google групи, щоб надіслати більше електронних листів користувачам всередині групи, як на наступному зображенні, де група google--support@googlegroups.com була створена, і електронний лист був надісланий всім членам групи (які були додані без будь-якої згоди)

Google Chat Phishing

Ви можете або почати чат з людиною, просто маючи її електронну адресу, або надіслати запрошення на розмову. Більше того, можливо створити Простір, який може мати будь-яку назву (наприклад, "Google Support") і запросити членів до нього. Якщо вони приймуть, вони можуть подумати, що спілкуються з Google Support:

tip

Однак у моєму тестуванні запрошені члени навіть не отримали запрошення.

Ви можете перевірити, як це працювало в минулому за адресою: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

Раніше було можливо створити очевидно легітимний документ і в коментарі згадати якусь електронну пошту (наприклад, @user@gmail.com). Google надіслав електронний лист на цю електронну адресу, повідомляючи, що вони були згадані в документі.
Сьогодні це не працює, але якщо ви надасте жертві доступ до документа, Google надішле електронний лист, вказуючи на це. Це повідомлення, яке з'являється, коли ви згадуєте когось:

tip

Жертви можуть мати механізм захисту, який не дозволяє електронним листам, що вказують на те, що зовнішній документ був поділений з ними, досягати їхньої електронної пошти.

Google Calendar Phishing

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

Це попередження, яке з'явиться в браузері з заголовком зустрічі "Звільнення людей", тому ви могли б встановити більш фішинговий заголовок (і навіть змінити ім'я, пов'язане з вашою електронною поштою).

Щоб це виглядало менш підозріло:

  • Налаштуйте так, щоб отримувачі не могли бачити інших запрошених людей
  • НЕ надсилайте електронні листи, що повідомляють про подію. Тоді люди побачать лише своє попередження про зустріч через 5 хвилин і що їм потрібно прочитати це посилання.
  • Очевидно, використовуючи API, ви можете встановити True, що люди прийняли подію і навіть створити коментарі від їхнього імені.

App Scripts Redirect Phishing

Можливо створити скрипт на https://script.google.com/ і викласти його як веб-додаток, доступний для всіх, який використовуватиме легітимний домен script.google.com.
З деяким кодом, подібним до наступного, зловмисник може змусити скрипт завантажувати довільний вміст на цю сторінку без зупинки доступу до домену:

javascript
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, ви побачите:

tip

Зверніть увагу, що з'явиться попередження, коли вміст завантажується всередині iframe.

App Scripts OAuth Phishing

Можливо створити App Scripts, прикріплені до документів, щоб спробувати отримати доступ до токена OAuth жертви, для отримання додаткової інформації перегляньте:

GWS - App Scripts

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

  1. Перейдіть на https://console.cloud.google.com/apis/credentials/oauthclient і натисніть на налаштування екрану згоди.
  2. Потім вам буде запропоновано, чи є тип користувача внутрішнім (тільки для людей у вашій організації) чи зовнішнім. Виберіть той, який відповідає вашим потребам.
  • Внутрішній може бути цікавим, якщо ви вже скомпрометували користувача організації і створюєте цей додаток, щоб фішити іншого.
  1. Дайте ім'я додатку, електронну пошту підтримки (зверніть увагу, що ви можете встановити електронну пошту googlegroup, щоб спробувати анонімізувати себе трохи більше), логотип, дозволені домени та іншу електронну пошту для оновлень.
  2. Виберіть OAuth області.
  • Ця сторінка поділена на неделікатні дозволи, делікатні дозволи та обмежені дозволи. Кожного разу, коли ви додаєте новий дозвіл, він додається до своєї категорії. В залежності від запитуваних дозволів різні вікна з'являться для користувача, вказуючи, наскільки чутливими є ці дозволи.
  • Як admin.directory.user.readonly, так і cloud-platform є делікатними дозволами.
  1. Додайте тестових користувачів. Поки статус додатку є тестовим, лише ці користувачі зможуть отримати доступ до додатку, тому переконайтеся, що додали електронну пошту, яку ви будете фішити.

Тепер давайте отримати облікові дані для веб-додатку, використовуючи раніше створений OAuth Client ID:

  1. Поверніться на https://console.cloud.google.com/apis/credentials/oauthclient, цього разу з'явиться інша опція.
  2. Виберіть створити облікові дані для веб-додатку.
  3. Встановіть необхідні Javascript origins та redirect URIs.
  • Ви можете встановити в обох щось на зразок http://localhost:8000/callback для тестування.
  1. Отримайте свої облікові дані додатку.

Нарешті, давайте запустимо веб-додаток, який використовуватиме облікові дані OAuth додатку. Ви можете знайти приклад на https://github.com/carlospolop/gcp_oauth_phishing_example.

bash
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, вам буде представлено повідомлення, подібне до цього:

Додаток покаже токен доступу та токен оновлення, які можна легко використовувати. Для отримання додаткової інформації про те, як використовувати ці токени, перевірте:

GCP - Token Persistence

Використання glcoud

Можливо зробити щось, використовуючи gcloud замість веб-консолі, перевірте:

GCP - ClientAuthConfig Privesc

Посилання

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