GCP - Source Repositories Enum

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

Основна інформація

Google Cloud Source Repositories - це повнофункціональний, масштабований, приватний сервіс Git-репозиторіїв. Він призначений для хостингу вашого вихідного коду в повністю керованому середовищі, безперешкодно інтегруючись з іншими інструментами та сервісами GCP. Він пропонує спільне та безпечне місце для команд для зберігання, управління та відстеження їхнього коду.

Ключові особливості Cloud Source Repositories включають:

  1. Повністю кероване Git-хостинг: Пропонує знайому функціональність Git, що означає, що ви можете використовувати звичайні команди та робочі процеси Git.

  2. Інтеграція з сервісами GCP: Інтегрується з іншими сервісами GCP, такими як Cloud Build, Pub/Sub та App Engine для повної трасованості від коду до розгортання.

  3. Приватні репозиторії: Забезпечує безпечне та приватне зберігання вашого коду. Ви можете контролювати доступ, використовуючи ролі Cloud Identity and Access Management (IAM).

  4. Аналіз вихідного коду: Працює з іншими інструментами GCP для автоматизованого аналізу вашого вихідного коду, виявляючи потенційні проблеми, такі як помилки, вразливості або погані практики кодування.

  5. Інструменти для співпраці: Підтримує спільне кодування з такими інструментами, як запити на злиття, коментарі та огляди.

  6. Підтримка дзеркал: Дозволяє підключати Cloud Source Repositories до репозиторіїв, розміщених на GitHub або Bitbucket, що забезпечує автоматичну синхронізацію та надає єдиний вигляд усіх ваших репозиторіїв.

Інформація OffSec

  • Конфігурація джерел репозиторіїв всередині проекту буде мати Службовий обліковий запис, який використовується для публікації повідомлень Cloud Pub/Sub. За замовчуванням використовується Compute SA. Однак, я не думаю, що можливо вкрасти його токен з Source Repositories, оскільки він виконується у фоновому режимі.

  • Щоб побачити код всередині веб-консолі GCP Cloud Source Repositories (https://source.cloud.google.com/), вам потрібно, щоб код був за замовчуванням у гілці master.

  • Ви також можете створити дзеркальний Cloud Repository, вказуючи на репозиторій з Github або Bitbucket (надаючи доступ до цих платформ).

  • Можливо кодувати та налагоджувати зсередини GCP.

  • За замовчуванням, Source Repositories запобігає тому, щоб приватні ключі були додані в коміти, але це можна вимкнути.

Відкрити в Cloud Shell

Можливо відкрити репозиторій у Cloud Shell, з'явиться підказка, схожа на цю:

Це дозволить вам кодувати та налагоджувати в Cloud Shell (що може призвести до компрометації cloudshell).

Перерахування

# Repos enumeration
gcloud source repos list #Get names and URLs
gcloud source repos describe <repo_name>
gcloud source repos get-iam-policy <repo_name>

# gcloud repo clone
gcloud source repos clone <REPO NAME>
gcloud source repos get-iam-policy <REPO NAME>
... git add & git commit -m ...
git push --set-upstream origin master
git push -u origin master

# Access via git
## To add a SSH key go to https://source.cloud.google.com/user/ssh_keys (no gcloud command)
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
git add, commit, push...

Підвищення Привілеїв та Після Експлуатації

GCP - Sourcerepos Privesc

Неавтентифіковане Перерахування

GCP - Source Repositories Unauthenticated Enum
Підтримати HackTricks

Last updated