GCP - Non-svc Persistance
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Це корисні техніки, коли ви якимось чином скомпрометували деякі GCP облікові дані або машину, що працює в середовищі GCP.
Token Hijacking
Authenticated User Tokens
Щоб отримати поточний токен користувача, ви можете виконати:
Перевірте на цій сторінці, як безпосередньо використовувати цей токен за допомогою gcloud:
Щоб отримати деталі для генерації нового access token, виконайте:
Також можна знайти refresh tokens у $HOME/.config/gcloud/application_default_credentials.json
та у $HOME/.config/gcloud/legacy_credentials/*/adc.json
.
Щоб отримати новий оновлений access token за допомогою refresh token, client ID та client secret, виконайте:
Термін дії refresh tokens можна керувати в Admin > Security > Google Cloud session control, і за замовчуванням він встановлений на 16 годин, хоча його можна налаштувати так, щоб він ніколи не закінчувався:
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F211316495-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FNsmUZOichoDrDd5qb6Bb%252Fuploads%252Fgit-blob-c7824715e776ef068e243888c58c0b82eb1407fb%252Fimage%2520%2811%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6b4c0239&sv=1)
Auth flow
Процес аутентифікації при використанні чогось на кшталт gcloud auth login
відкриє запит у браузері, і після прийняття всіх scopes браузер надішле запит, подібний до цього, на http порт, відкритий інструментом:
Then, gcloud буде використовувати стан і код з деяким жорстко закодованим client_id
(32555940559.apps.googleusercontent.com
) і client_secret
(ZmssLNjJy2998hD4CTg2ejr2
), щоб отримати остаточні дані токена оновлення.
Зверніть увагу, що зв'язок з localhost відбувається через HTTP, тому можливо перехопити дані для отримання токена оновлення, однак ці дані дійсні лише один раз, тому це буде марно, легше просто прочитати токен оновлення з файлу.
OAuth Scopes
Ви можете знайти всі Google scopes на https://developers.google.com/identity/protocols/oauth2/scopes або отримати їх, виконавши:
Можна побачити, які області застосування, що gcloud
використовує для автентифікації, може підтримувати за допомогою цього скрипта:
Після виконання було перевірено, що цей додаток підтримує ці області:
Цікаво бачити, як цей додаток підтримує drive
scope, що може дозволити користувачу підвищити привілеї з GCP до Workspace, якщо зловмисник зможе змусити користувача згенерувати токен з цим scope.
Перевірте, як зловживати цим тут.
Service Accounts
Так само, як і з автентифікованими користувачами, якщо вам вдасться скомпрометувати файл приватного ключа сервісного облікового запису, ви зможете отримати доступ до нього зазвичай стільки, скільки захочете. Однак, якщо ви вкрадете OAuth токен сервісного облікового запису, це може бути ще цікавіше, тому що, навіть якщо за замовчуванням ці токени корисні лише протягом години, якщо жертва видалить приватний api ключ, OAuth токен все одно буде дійсним до його закінчення терміну дії.
Metadata
Очевидно, поки ви знаходитесь всередині машини, що працює в середовищі GCP, ви зможете отримати доступ до сервісного облікового запису, прикріпленого до цієї машини, звернувшись до метаданих (зверніть увагу, що OAuth токени, до яких ви можете отримати доступ у цій точці, зазвичай обмежені scope).
Remediations
Деякі заходи щодо усунення цих технік пояснені в https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2
References
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated