GWS - Google Platforms Phishing

Підтримайте HackTricks

Загальна методологія рибалки

Рибалка в Google Groups

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

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

Рибалка в Google Chat

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

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

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

Рибалка в Google Doc

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

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

Рибалка в Google Calendar

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

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

Щоб зробити це менш підозрілим:

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

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

  • Здається, використовуючи API, ви можете встановити, що люди прийняли подію та навіть створити коментарі від їх імені.

Рибалка через перенаправлення App Scripts

Можливо створити скрипт на 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.

Підлога OAuth за допомогою App Scripts

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

GWS - App Scripts

Підлога OAuth додатків

Будь-яку з попередніх технік можна використовувати для того, щоб змусити користувача отримати доступ до додатку 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

  1. Перейдіть на https://console.cloud.google.com/apis/credentials/oauthclient та натисніть на налаштування екрану згоди.

  2. Потім вас запитають, чи тип користувача є внутрішнім (тільки для людей у вашій організації) або зовнішнім. Виберіть той, який відповідає вашим потребам

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

  1. Дайте назву додатку, підтримку електронної пошти (зверніть увагу, що ви можете встановити електронну пошту googlegroup, щоб спробувати анонімізувати себе трохи більше), логотип, дозволені домени та іншу електронну пошту для оновлень.

  2. Виберіть обсяги OAuth.

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

  • Як admin.directory.user.readonly, так і cloud-platform є чутливими дозволами.

  1. Додайте тестових користувачів. Поки статус додатка тестування, лише ці користувачі зможуть отримати доступ до додатка, тому переконайтеся, що додаєте електронну пошту, яку ви будете підловлювати.

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

  1. Поверніться на https://console.cloud.google.com/apis/credentials/oauthclient, на цей раз з'явиться інша опція.

  2. Виберіть створити облікові дані для веб-додатка

  3. Встановіть необхідні початкові дані Javascript та URI перенаправлення

  • Ви можете встановити в обох щось на кшталт 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, ви побачите повідомлення на зразок цього:

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

GCP - Non-svc Persistance

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

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

GCP - ClientAuthConfig Privesc

Посилання

Підтримайте HackTricks

Last updated