GCP - Token Persistance
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Щоб отримати поточний токен користувача, ви можете виконати:
Перевірте на цій сторінці, як безпосередньо використовувати цей токен за допомогою gcloud:
Щоб отримати деталі для генерації нового токена доступу, виконайте:
Також можливо знайти токени оновлення в $HOME/.config/gcloud/application_default_credentials.json
та в $HOME/.config/gcloud/legacy_credentials/*/adc.json
.
Щоб отримати новий оновлений токен доступу з токеном оновлення, ідентифікатором клієнта та секретом клієнта, виконайте:
Термін дії токенів оновлення можна керувати в Admin > Security > Google Cloud session control, і за замовчуванням він встановлений на 16 годин, хоча його можна налаштувати так, щоб він ніколи не закінчувався:
Процес аутентифікації при використанні чогось на зразок gcloud auth login
відкриє запит у браузері, і після прийняття всіх областей браузер надішле запит, подібний до цього, на http-порт, відкритий інструментом:
Тоді gcloud використовуватиме стан і код з деяким зашитим client_id
(32555940559.apps.googleusercontent.com
) та client_secret
(ZmssLNjJy2998hD4CTg2ejr2
), щоб отримати останні дані токена оновлення.
Зверніть увагу, що зв'язок з localhost здійснюється через HTTP, тому можливо перехопити дані, щоб отримати токен оновлення, однак ці дані дійсні лише 1 раз, тому це буде марно, легше просто прочитати токен оновлення з файлу.
Ви можете знайти всі Google scopes на https://developers.google.com/identity/protocols/oauth2/scopes або отримати їх, виконавши:
Можна побачити, які області підтримує застосунок, який gcloud
використовує для аутентифікації, за допомогою цього скрипта:
Після виконання було перевірено, що цей додаток підтримує ці області:
це цікаво бачити, як цей додаток підтримує drive
область, що може дозволити користувачу ескалувати з GCP до Workspace, якщо зловмисник зможе змусити користувача згенерувати токен з цією областю.
Перевірте, як зловживати цим тут.
Так само, як і з автентифікованими користувачами, якщо вам вдасться компрометувати файл приватного ключа облікового запису служби, ви зможете доступати до нього зазвичай так довго, як хочете. Однак, якщо ви вкрадете OAuth токен облікового запису служби, це може бути ще цікавіше, оскільки, навіть якщо за замовчуванням ці токени корисні лише протягом години, якщо жертва видалить приватний API ключ, OAuth токен залишиться дійсним до його закінчення.
Очевидно, поки ви знаходитесь всередині машини, що працює в середовищі GCP, ви зможете доступати до облікового запису служби, прикріпленого до цієї машини, звертаючись до кінцевої точки метаданих (зверніть увагу, що токени Oauth, до яких ви можете отримати доступ на цій кінцевій точці, зазвичай обмежені областями).
Деякі заходи з виправлення для цих технік пояснені в https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)