mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-16 06:42:39 -08:00
Translated ['.github/pull_request_template.md', 'src/README.md', 'src/pe
This commit is contained in:
@@ -12,7 +12,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodo
|
||||
|
||||
Очевидно, за замовчуванням, у workspace учасники [**можуть створювати групи**](https://groups.google.com/all-groups) **та запрошувати людей до них**. Ви можете змінити електронну пошту, яка буде надіслана користувачу, **додавши деякі посилання.** **Електронна пошта буде надіслана з адреси google**, тому вона виглядатиме **легітимно**, і люди можуть натиснути на посилання.
|
||||
|
||||
Також можливо встановити **FROM** адресу як **електронну пошту групи Google**, щоб надіслати **більше електронних листів користувачам всередині групи**, як на наступному зображенні, де група **`google--support@googlegroups.com`** була створена, і **електронний лист був надісланий всім учасникам** групи (які були додані без будь-якої згоди)
|
||||
Також можливо встановити адресу **FROM** як **електронну пошту Google групи**, щоб надіслати **більше електронних листів користувачам всередині групи**, як на наступному зображенні, де група **`google--support@googlegroups.com`** була створена, і **електронний лист був надісланий всім учасникам** групи (які були додані без будь-якої згоди)
|
||||
|
||||
<figure><img src="../../../images/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -25,7 +25,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodo
|
||||
> [!TIP]
|
||||
> **Однак у моєму тестуванні запрошені учасники навіть не отримали запрошення.**
|
||||
|
||||
Ви можете перевірити, як це працювало в минулому, за адресою: [https://www.youtube.com/watch?v=KTVHLolz6cE\&t=904s](https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s)
|
||||
Ви можете перевірити, як це працювало в минулому за адресою: [https://www.youtube.com/watch?v=KTVHLolz6cE\&t=904s](https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s)
|
||||
|
||||
## Google Doc Phishing
|
||||
|
||||
@@ -39,7 +39,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodo
|
||||
|
||||
## Google Calendar Phishing
|
||||
|
||||
Ви можете **створити подію в календарі** і додати стільки електронних адрес компанії, яку ви атакуєте, скільки у вас є. Заплануйте цю подію в календарі на **5 або 15 хвилин** від поточного часу. Зробіть подію виглядати легітимно і **додайте коментар та заголовок, вказуючи, що їм потрібно щось прочитати** (з **фішинговим посиланням**).
|
||||
Ви можете **створити подію в календарі** і додати стільки електронних адрес компанії, яку ви атакуєте, скільки у вас є. Заплануйте цю подію в календарі на **5 або 15 хвилин** від поточного часу. Зробіть подію виглядати легітимно і **додайте коментар і заголовок, вказуючи, що їм потрібно щось прочитати** (з **фішинговим посиланням**).
|
||||
|
||||
Це попередження, яке з'явиться в браузері з заголовком зустрічі "Звільнення людей", тому ви могли б встановити більш фішинговий заголовок (і навіть змінити ім'я, пов'язане з вашою електронною поштою).
|
||||
|
||||
@@ -48,7 +48,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodo
|
||||
Щоб це виглядало менш підозріло:
|
||||
|
||||
- Налаштуйте так, щоб **отримувачі не могли бачити інших запрошених людей**
|
||||
- **НЕ надсилайте електронні листи, що повідомляють про подію**. Тоді люди лише побачать своє попередження про зустріч через 5 хвилин і що їм потрібно прочитати це посилання.
|
||||
- **НЕ надсилайте електронні листи, що повідомляють про подію**. Тоді люди побачать лише своє попередження про зустріч через 5 хвилин і що їм потрібно прочитати це посилання.
|
||||
- Очевидно, використовуючи API, ви можете встановити **True**, що **люди** прийняли **подію** і навіть створити **коментарі від їхнього імені**.
|
||||
|
||||
## App Scripts Redirect Phishing
|
||||
@@ -71,7 +71,7 @@ return HtmlService.createHtmlOutput(
|
||||
|
||||
## App Scripts OAuth Phishing
|
||||
|
||||
Можливо створити App Scripts, прикріплені до документів, щоб спробувати отримати доступ до OAuth токена жертви, для отримання додаткової інформації перегляньте:
|
||||
Можливо створити App Scripts, прикріплені до документів, щоб спробувати отримати доступ до токена OAuth жертви, для отримання додаткової інформації перегляньте:
|
||||
|
||||
{{#ref}}
|
||||
gws-app-scripts.md
|
||||
@@ -82,41 +82,41 @@ gws-app-scripts.md
|
||||
Будь-яка з попередніх технік може бути використана, щоб змусити користувача отримати доступ до **Google OAuth application**, яка **запитуватиме** у користувача деякі **доступи**. Якщо користувач **довіряє** **джерелу**, він може **довіряти** **додатку** (навіть якщо він запитує високі привілейовані дозволи).
|
||||
|
||||
> [!NOTE]
|
||||
> Зверніть увагу, що Google показує непривабливе вікно з попередженням, що додаток ненадійний у кількох випадках, і адміністратори Workspace можуть навіть заборонити людям приймати OAuth додатки.
|
||||
> Зверніть увагу, що Google показує непривабливий запит, попереджаючи, що додаток ненадійний у кількох випадках, і адміністратори Workspace можуть навіть заборонити людям приймати OAuth додатки.
|
||||
|
||||
**Google** дозволяє створювати додатки, які можуть **взаємодіяти від імені користувачів** з кількома **сервісами Google**: Gmail, Drive, GCP...
|
||||
**Google** дозволяє створювати додатки, які можуть **взаємодіяти від імені користувачів** з кількома **Google services**: Gmail, Drive, GCP...
|
||||
|
||||
При створенні додатку, щоб **діяти від імені інших користувачів**, розробник повинен створити **OAuth app всередині GCP** і вказати області (дозволи), які додаток потребує для доступу до даних користувачів.\
|
||||
Коли **користувач** хоче **використати** цей **додаток**, йому буде **запропоновано** **прийняти**, що додаток матиме доступ до його даних, зазначених в областях.
|
||||
Коли створюється додаток, щоб **діяти від імені інших користувачів**, розробник повинен створити **OAuth app всередині GCP** і вказати області (дозволи), які додаток потребує для доступу до даних користувачів.\
|
||||
Коли **користувач** хоче **використати** цей **додаток**, йому буде **запропоновано** **прийняти**, що додаток матиме доступ до їхніх даних, зазначених в областях.
|
||||
|
||||
Це дуже привабливий спосіб **фішингу** нетехнічних користувачів для використання **додатків, які отримують доступ до чутливої інформації**, оскільки вони можуть не розуміти наслідків. Однак в облікових записах організацій є способи запобігти цьому.
|
||||
Це дуже привабливий спосіб **фішингу** нетехнічних користувачів, щоб змусити їх використовувати **додатки, які отримують доступ до чутливої інформації**, оскільки вони можуть не розуміти наслідків. Однак в облікових записах організацій є способи запобігти цьому.
|
||||
|
||||
### Unverified App prompt
|
||||
|
||||
Як було згадано, Google завжди буде показувати **вікно для користувача, щоб прийняти** дозволи, які вони надають додатку від їх імені. Однак, якщо додаток вважається **небезпечним**, Google спочатку покаже **вікно**, яке вказує, що це **небезпечний** додаток, і **ускладнить** користувачу надання дозволів додатку.
|
||||
Як було згадано, Google завжди буде показувати **запит користувачу на прийняття** дозволів, які вони надають додатку від свого імені. Однак, якщо додаток вважається **небезпечним**, Google спочатку покаже **запит**, вказуючи, що він **небезпечний** і **ускладнюючи** користувачу надання дозволів додатку.
|
||||
|
||||
Це вікно з'являється в додатках, які:
|
||||
Цей запит з'являється в додатках, які:
|
||||
|
||||
- Використовують будь-яку область, яка може отримати доступ до приватних даних (Gmail, Drive, GCP, BigQuery...)
|
||||
- Додатки з менш ніж 100 користувачами (додатки > 100 також потребують процесу перевірки, щоб зупинити показ неперевіреного вікна)
|
||||
- Додатки з менш ніж 100 користувачами (додатки > 100 також потребують процесу перевірки, щоб зупинити показ неперевіреного запиту)
|
||||
|
||||
### Interesting Scopes
|
||||
|
||||
[**Тут**](https://developers.google.com/identity/protocols/oauth2/scopes) ви можете знайти список усіх областей Google OAuth.
|
||||
|
||||
- **cloud-platform**: Перегляд та управління вашими даними в сервісах **Google Cloud Platform**. Ви можете видавати себе за користувача в GCP.
|
||||
- **admin.directory.user.readonly**: Перегляд та завантаження каталогу GSuite вашої організації. Отримайте імена, телефони, URL-адреси календарів усіх користувачів.
|
||||
- **cloud-platform**: Перегляд та управління вашими даними в службах **Google Cloud Platform**. Ви можете видавати себе за користувача в GCP.
|
||||
- **admin.directory.user.readonly**: Перегляд та завантаження каталогу GSuite вашої організації. Отримайте імена, телефони, URL-адреси календаря всіх користувачів.
|
||||
|
||||
### Create an OAuth App
|
||||
|
||||
**Почніть створення OAuth Client ID**
|
||||
**Почніть створювати OAuth Client ID**
|
||||
|
||||
1. Перейдіть до [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient) і натисніть на налаштування екрану згоди.
|
||||
2. Потім вам буде запропоновано, чи є **тип користувача** **внутрішнім** (тільки для людей у вашій організації) чи **зовнішнім**. Виберіть той, який відповідає вашим потребам
|
||||
- Внутрішній може бути цікавим, якщо ви вже скомпрометували користувача організації і створюєте цей додаток, щоб фішити іншого.
|
||||
3. Дайте **ім'я** додатку, **електронну пошту підтримки** (зверніть увагу, що ви можете вказати електронну пошту googlegroup, щоб спробувати трохи анонімізувати себе), **логотип**, **дозволені домени** та іншу **електронну пошту** для **оновлень**.
|
||||
4. **Виберіть** **OAuth області**.
|
||||
- Ця сторінка поділена на неделікатні дозволи, делікатні дозволи та обмежені дозволи. Кожного разу, коли ви додаєте новий дозвіл, він додається до своєї категорії. В залежності від запитуваних дозволів різні вікна з'являться для користувача, вказуючи, наскільки чутливими є ці дозволи.
|
||||
- Ця сторінка поділена на неделікатні дозволи, делікатні дозволи та обмежені дозволи. Щоразу, коли ви додаєте новий дозвіл, він додається до своєї категорії. В залежності від запитуваних дозволів різні запити з'являться користувачу, вказуючи, наскільки чутливими є ці дозволи.
|
||||
- Як **`admin.directory.user.readonly`**, так і **`cloud-platform`** є делікатними дозволами.
|
||||
5. **Додайте тестових користувачів.** Поки статус додатку є тестовим, лише ці користувачі зможуть отримати доступ до додатку, тому переконайтеся, що **додали електронну пошту, яку ви будете фішити**.
|
||||
|
||||
@@ -125,10 +125,10 @@ gws-app-scripts.md
|
||||
1. Поверніться до [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient), цього разу з'явиться інша опція.
|
||||
2. Виберіть **створити облікові дані для веб-додатку**
|
||||
3. Встановіть необхідні **Javascript origins** та **redirect URIs**
|
||||
- Ви можете вказати в обох щось на кшталт **`http://localhost:8000/callback`** для тестування
|
||||
- Ви можете вказати в обох щось на зразок **`http://localhost:8000/callback`** для тестування
|
||||
4. Отримайте свої облікові дані **додатку**
|
||||
|
||||
Нарешті, давайте **запустимо веб-додаток, який використовуватиме облікові дані OAuth додатку**. Ви можете знайти приклад на [https://github.com/carlospolop/gcp_oauth_phishing_example](https://github.com/carlospolop/gcp_oauth_phishing_example).
|
||||
Нарешті, давайте **запустимо веб-додаток, який використовуватиме облікові дані OAuth додатку**. Ви можете знайти приклад у [https://github.com/carlospolop/gcp_oauth_phishing_example](https://github.com/carlospolop/gcp_oauth_phishing_example).
|
||||
```bash
|
||||
git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
|
||||
cd gcp_oauth_phishing_example
|
||||
@@ -156,6 +156,6 @@ python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"
|
||||
## Посилання
|
||||
|
||||
- [https://www.youtube-nocookie.com/embed/6AsVUS79gLw](https://www.youtube-nocookie.com/embed/6AsVUS79gLw) - Метью Брайант - Хакінг G Suite: Сила темної магії Apps Script
|
||||
- [https://www.youtube.com/watch?v=KTVHLolz6cE](https://www.youtube.com/watch?v=KTVHLolz6cE) - Майк Фелч і Боу Буллок - ОК Google, як мені провести Red Team для GSuite?
|
||||
- [https://www.youtube.com/watch?v=KTVHLolz6cE](https://www.youtube.com/watch?v=KTVHLolz6cE) - Майк Фелч і Боу Буллок - ОК Google, як мені провести Red Team GSuite?
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
## App Scripts
|
||||
|
||||
App Scripts - це **код, який буде активовано, коли користувач з правами редактора отримує доступ до документа, з яким пов'язаний App Script** і після **прийняття запиту OAuth**.\
|
||||
Вони також можуть бути налаштовані на **виконання через певний проміжок часу** власником App Script (постійність).
|
||||
Вони також можуть бути налаштовані на **виконання через певний проміжок часу** власником App Script (Persistence).
|
||||
|
||||
### Створити App Script
|
||||
|
||||
@@ -15,7 +15,7 @@ App Scripts - це **код, який буде активовано, коли к
|
||||
|
||||
<summary>Створити проект, прив'язаний до контейнера, з Google Docs, Sheets або Slides</summary>
|
||||
|
||||
1. Відкрийте документ Docs, електронну таблицю Sheets або презентацію Slides.
|
||||
1. Відкрийте документ Docs, таблицю Sheets або презентацію Slides.
|
||||
2. Натисніть **Розширення** > **Google Apps Script**.
|
||||
3. У редакторі скриптів натисніть **Без назви проект**.
|
||||
4. Дайте вашому проекту назву та натисніть **Перейменувати**.
|
||||
@@ -59,7 +59,7 @@ App Scripts - це **код, який буде активовано, коли к
|
||||
|
||||
<summary>Створити окремий проект за допомогою інструменту командного рядка clasp</summary>
|
||||
|
||||
`clasp` - це інструмент командного рядка, який дозволяє створювати, витягувати/додавати та розгортати проекти Apps Script з терміналу.
|
||||
`clasp` - це інструмент командного рядка, який дозволяє вам створювати, завантажувати/вивантажувати та розгортати проекти Apps Script з терміналу.
|
||||
|
||||
Дивіться [Посібник по інтерфейсу командного рядка за допомогою `clasp`](https://developers.google.com/apps-script/guides/clasp) для отримання додаткової інформації.
|
||||
|
||||
@@ -77,7 +77,7 @@ App Scripts - це **код, який буде активовано, коли к
|
||||
|
||||
- **AdminDirectory**: Доступ до користувачів і груп каталогу (якщо у користувача достатньо прав)
|
||||
- **Gmail**: Для доступу до даних gmail
|
||||
- **Drive**: Для доступу до даних drive
|
||||
- **Drive**: Для доступу до даних диска
|
||||
- **Google Sheets API**: Щоб це працювало з тригером
|
||||
|
||||
Щоб змінити **необхідні області**, ви можете перейти до налаштувань проекту та увімкнути: **`Показати файл маніфесту "appsscript.json" в редакторі`.**
|
||||
@@ -147,21 +147,21 @@ nc -lv 4444 #macOS
|
||||
|
||||
### Створити тригер
|
||||
|
||||
Після того, як App буде прочитано, натисніть на **⏰ Тригери**, щоб створити тригер. Як **функцію** для виконання виберіть **`getToken`**, виконується на розгортанні **`Head`**, у джерелі події виберіть **`З таблиці`** та тип події виберіть **`При відкритті`** або **`При редагуванні`** (згідно з вашими потребами) і збережіть.
|
||||
Після того, як App буде прочитано, натисніть на **⏰ Тригери**, щоб створити тригер. Як **функцію** для виконання виберіть **`getToken`**, запускається при розгортанні **`Head`**, у джерелі події виберіть **`З таблиці`** та тип події виберіть **`При відкритті`** або **`При редагуванні`** (згідно з вашими потребами) і збережіть.
|
||||
|
||||
Зверніть увагу, що ви можете перевірити **виконання App Scripts на вкладці Виконання**, якщо хочете щось налагодити.
|
||||
Зверніть увагу, що ви можете перевірити **виконання App Scripts на вкладці Виконання**, якщо хочете відлагодити щось.
|
||||
|
||||
### Спільний доступ
|
||||
|
||||
Щоб **запустити** **App Script**, жертва повинна підключитися з **доступом редактора**.
|
||||
|
||||
> [!TIP]
|
||||
> **Токен**, використаний для виконання **App Script**, буде токеном **творця тригера**, навіть якщо файл відкритий як редактор іншими користувачами.
|
||||
> **Токен**, використаний для виконання **App Script**, буде токеном **творця тригера**, навіть якщо файл відкритий як Редактор іншими користувачами.
|
||||
|
||||
### Зловживання документами, поділеними зі мною
|
||||
### Зловживання документами, спільно надісланими мені
|
||||
|
||||
> [!CAUTION]
|
||||
> Якщо хтось **поділився з вами документом з App Scripts і тригером, використовуючи Head** App Script (не фіксоване розгортання), ви можете змінити код App Script (додавши, наприклад, функції для крадіжки токенів), отримати до нього доступ, і **App Script буде виконано з дозволами користувача, який поділився з вами документом**! (зверніть увагу, що токен OAuth власника матиме такі області доступу, які були надані під час створення тригера).
|
||||
> Якщо хтось **поділився з вами документом з App Scripts і тригером, використовуючи Head** App Script (не фіксоване розгортання), ви можете змінити код App Script (додавши, наприклад, функції для крадіжки токенів), отримати до нього доступ, і **App Script буде виконано з дозволами користувача, який поділився з вами документом**! (зверніть увагу, що OAuth токен власника матиме такі області доступу, які були надані під час створення тригера).
|
||||
>
|
||||
> **Сповіщення буде надіслано творцеві скрипта, вказуючи, що хтось змінив скрипт** (Що, якщо використовувати дозволи gmail для створення фільтра, щоб запобігти сповіщенню?)
|
||||
|
||||
@@ -183,7 +183,7 @@ nc -lv 4444 #macOS
|
||||
|
||||
<figure><img src="../../../images/image (337).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Після чого з'явиться **типове сповіщення OAuth, що запитує** необхідні дозволи.
|
||||
Після цього з'явиться **типове запит OAuth**, що запитує необхідні дозволи.
|
||||
|
||||
### Тестування
|
||||
|
||||
@@ -198,30 +198,30 @@ curl -H "Authorization: Bearer $OAUTH_TOKEN" \
|
||||
-H "Accept: application/json" \
|
||||
"https://www.googleapis.com/calendar/v3/users/me/calendarList"
|
||||
```
|
||||
## App Script як Постійність
|
||||
## App Script як постійний доступ
|
||||
|
||||
Одним з варіантів постійності було б **створити документ і додати тригер для функції getToken** та поділитися документом з атакуючим, щоб кожного разу, коли атакуючий відкриває файл, він **екстрагує токен жертви.**
|
||||
Один з варіантів постійного доступу - це **створити документ і додати тригер для функції getToken** та поділитися документом з атакуючим, щоб кожного разу, коли атакуючий відкриває файл, він **екстрагує токен жертви.**
|
||||
|
||||
Також можливо створити App Script і налаштувати його тригер на кожен X час (наприклад, кожну хвилину, годину, день...). Атакуючий, який **компрометував облікові дані або сесію жертви, може налаштувати тригер часу App Script і щодня витікати дуже привілейований OAuth токен**:
|
||||
|
||||
Просто створіть App Script, перейдіть до Тригерів, натисніть Додати тригер і виберіть як джерело події Часовий тригер і виберіть опції, які вам найбільше підходять:
|
||||
Просто створіть App Script, перейдіть до Тригерів, натисніть Додати тригер і виберіть як джерело події Часовий тригер, а також виберіть опції, які вам найбільше підходять:
|
||||
|
||||
<figure><img src="../../../images/image (336).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!CAUTION]
|
||||
> Це створить електронний лист про безпеку та push-повідомлення на ваш мобільний телефон, що сповіщає про це.
|
||||
> Це створить електронний лист про безпеку та push-повідомлення на вашому мобільному телефоні, що сповіщає про це.
|
||||
|
||||
### Обхід Неперевіреного Запиту Спільного Документа
|
||||
### Обхід неперевіреного запиту спільного документа
|
||||
|
||||
Більше того, якщо хтось **поділився** з вами документом з **доступом редактора**, ви можете створити **App Scripts всередині документа**, і **ВЛАСНИК (творець) документа буде власником App Script**.
|
||||
Більше того, якщо хтось **поділився** з вами документом з **доступом редактора**, ви можете створювати **App Scripts всередині документа**, а **ВЛАСНИК (творець) документа буде власником App Script**.
|
||||
|
||||
> [!WARNING]
|
||||
> Це означає, що **творець документа з'явиться як творець будь-якого App Script**, який будь-хто з доступом редактора створює всередині нього.
|
||||
> Це означає, що **творець документа з'явиться як творець будь-якого App Script**, який створить будь-хто з доступом редактора всередині нього.
|
||||
>
|
||||
> Це також означає, що **App Script буде довірятися середовищу Workspace** творця документа.
|
||||
> Це також означає, що **App Script буде довіреним середовищем Workspace** творця документа.
|
||||
|
||||
> [!CAUTION]
|
||||
> Це також означає, що якщо **App Script вже існував** і люди надали **доступ**, будь-хто з **дозволом редактора** на документ може **модифікувати його та зловживати цим доступом.**\
|
||||
> Щоб зловживати цим, вам також потрібно, щоб люди активували App Script. І один цікавий трюк - це **опублікувати скрипт як веб-додаток**. Коли **люди**, які вже надали **доступ** до App Script, отримують доступ до веб-сторінки, вони **активують App Script** (це також працює за допомогою тегів `<img>`).
|
||||
> Щоб зловживати цим, вам також потрібно, щоб люди активували App Script. І один з цікавих трюків - це **опублікувати скрипт як веб-додаток**. Коли **люди**, які вже надали **доступ** до App Script, отримують доступ до веб-сторінки, вони **активують App Script** (це також працює за допомогою тегів `<img>`).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user