GCP - Source Repositories Enum

Wsparcie dla HackTricks

Podstawowe Informacje

Google Cloud Source Repositories to w pełni funkcjonalna, skalowalna, prywatna usługa repozytoriów Git. Została zaprojektowana, aby przechowywać Twój kod źródłowy w w pełni zarządzanym środowisku, integrując się płynnie z innymi narzędziami i usługami GCP. Oferuje współpracujące i bezpieczne miejsce dla zespołów do przechowywania, zarządzania i śledzenia ich kodu.

Kluczowe cechy Cloud Source Repositories obejmują:

  1. W pełni zarządzane hostowanie Git: Oferuje znaną funkcjonalność Gita, co oznacza, że możesz używać standardowych poleceń i przepływów pracy Gita.

  2. Integracja z usługami GCP: Integruje się z innymi usługami GCP, takimi jak Cloud Build, Pub/Sub i App Engine, zapewniając pełną śledzenie od kodu do wdrożenia.

  3. Prywatne repozytoria: Zapewnia, że Twój kod jest przechowywany w sposób bezpieczny i prywatny. Możesz kontrolować dostęp za pomocą ról Cloud Identity and Access Management (IAM).

  4. Analiza kodu źródłowego: Współpracuje z innymi narzędziami GCP, aby zapewnić automatyczną analizę Twojego kodu źródłowego, identyfikując potencjalne problemy, takie jak błędy, luki w zabezpieczeniach lub złe praktyki kodowania.

  5. Narzędzia do współpracy: Wspiera współpracujące kodowanie z narzędziami takimi jak prośby o scalanie, komentarze i przeglądy.

  6. Wsparcie dla lustracji: Pozwala na połączenie Cloud Source Repositories z repozytoriami hostowanymi na GitHubie lub Bitbucket, umożliwiając automatyczną synchronizację i zapewniając jednolity widok wszystkich Twoich repozytoriów.

Informacje OffSec

  • Konfiguracja repozytoriów źródłowych w projekcie będzie miała Konto Usługi używane do publikowania wiadomości Cloud Pub/Sub. Domyślnie używane jest Compute SA. Jednak nie sądzę, aby możliwe było skradzenie jego tokena z Repozytoriów Źródłowych, ponieważ jest wykonywane w tle.

  • Aby zobaczyć kod w konsoli internetowej GCP Cloud Source Repositories (https://source.cloud.google.com/), musisz mieć kod domyślnie w gałęzi master.

  • Możesz również utworzyć lustrzane repozytorium Cloud, wskazujące na repozytorium z Github lub Bitbucket (dając dostęp do tych platform).

  • Możliwe jest kodowanie i debugowanie z wnętrza GCP.

  • Domyślnie, Repozytoria Źródłowe zapobiegają przesyłaniu prywatnych kluczy w commitach, ale to można wyłączyć.

Otwórz w Cloud Shell

Możliwe jest otwarcie repozytorium w Cloud Shell, pojawi się taki komunikat:

To pozwoli Ci kodować i debugować w Cloud Shell (co może prowadzić do kompromitacji cloudshell).

Enumeracja

# 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...

Eskalacja Uprawnień i Po Eksploatacji

Nieuautoryzowane Enum

Wsparcie dla HackTricks

Last updated