GWS - Google Platforms Phishing

Support HackTricks

Generic Phishing Methodology

Google Groups Phishing

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

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

Google Chat Phishing

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

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

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

Google Doc Phishing

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

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

Google Calendar Phishing

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

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

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

  • Налаштуйте так, щоб отримувачі не могли бачити інших запрошених людей

  • НЕ надсилайте електронні листи, що повідомляють про подію. Тоді люди побачать лише своє попередження про зустріч через 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.xyz/pentesting-cloud/workspace-security/gws-google-platforms-phishing#app-scripts-redirect-phishing">')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

Наприклад, отримавши доступ до https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec, ви побачите:

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

App Scripts OAuth Фішинг

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

OAuth Apps Фішинг

Будь-яка з попередніх технік може бути використана, щоб змусити користувача отримати доступ до Google OAuth додатку, який запитуватиме у користувача деякі доступи. Якщо користувач довіряє джерелу, він може довіряти додатку (навіть якщо він запитує високі привілейовані дозволи).

Зверніть увагу, що Google показує непривабливий запит, попереджаючи, що додаток є ненадійним у кількох випадках, а адміністратори Workspace можуть навіть заборонити людям приймати OAuth додатки.

Google дозволяє створювати додатки, які можуть взаємодіяти від імені користувачів з кількома сервісами Google: Gmail, Drive, GCP...

Коли створюється додаток, щоб діяти від імені інших користувачів, розробник повинен створити OAuth додаток всередині GCP і вказати області (дозволи), які додаток потребує для доступу до даних користувачів. Коли користувач хоче використати цей додаток, йому буде запропоновано прийняти, що додаток матиме доступ до їхніх даних, зазначених в областях.

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

Запит на неперевірений додаток

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

Цей запит з'являється в додатках, які:

  • Використовують будь-яку область, яка може отримати доступ до приватних даних (Gmail, Drive, GCP, BigQuery...)

  • Додатки з менш ніж 100 користувачами (додатки > 100 також потребують процесу перевірки, щоб зупинити показ неперевіреного запиту)

Цікаві області

Тут ви можете знайти список усіх областей Google OAuth.

  • cloud-platform: Перегляд та управління вашими даними в сервісах Google Cloud Platform. Ви можете видавати себе за користувача в GCP.

  • admin.directory.user.readonly: Перегляд та завантаження каталогу GSuite вашої організації. Отримайте імена, телефони, URL-адреси календарів усіх користувачів.

Створити OAuth Додаток

Почніть створення 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.

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

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

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

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

Посилання

Підтримка HackTricks

Last updated