GCP - Sourcerepos Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Source Repositories
Aby uzyskać więcej informacji o Source Repositories sprawdź:
GCP - Source Repositories Enum
source.repos.get
Z tym uprawnieniem możliwe jest pobranie repozytorium lokalnie:
Sklonuj repozytorium
```bash gcloud source repos clonesource.repos.update
Podmiot z tym uprawnieniem będzie w stanie zapisywać kod w repozytorium sklonowanym za pomocą gcloud source repos clone <repo>. Należy jednak pamiętać, że tego uprawnienia nie można przypisać do ról niestandardowych, więc musi być nadane przez jedną z ról predefiniowanych, na przykład:
- Owner
- Editor
- Source Repository Administrator (
roles/source.admin) - Source Repository Writer (
roles/source.writer)
Aby zapisać zmiany, wystarczy wykonać zwykły git push.
source.repos.setIamPolicy
Z tym uprawnieniem atakujący mógłby nadać sobie poprzednie uprawnienia.
Dostęp do sekretów
Jeśli atakujący ma dostęp do sekretów, w których przechowywane są tokeny, będzie mógł je ukraść. Aby uzyskać więcej informacji o tym, jak uzyskać dostęp do sekretu, sprawdź:
Dodawanie kluczy SSH
W konsoli webowej można dodać klucze SSH do projektu Source Repository. Wykonuje to żądanie POST do /v1/sshKeys:add i można to skonfigurować w https://source.cloud.google.com/user/ssh_keys
Gdy klucz SSH zostanie ustawiony, możesz uzyskać dostęp do repozytorium za pomocą:
Klonowanie repozytorium przez SSH
```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p/A następnie można używać poleceń git jak zwykle.
Ręczne poświadczenia
Możliwe jest utworzenie ręcznych poświadczeń, aby uzyskać dostęp do Source Repositories:
.png)
Kliknięcie pierwszego linku przekieruje cię do https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
Co spowoduje wyświetlenie Oauth authorization prompt z prośbą o udzielenie dostępu do Google Cloud Development. Potrzebne będą więc albo poświadczenia użytkownika, albo otwarta sesja w przeglądarce.
Spowoduje to przejście do strony ze skryptem bash do wykonania i konfiguracją cookie git w $HOME/.gitcookies
.png)
Po uruchomieniu skryptu będziesz mógł używać git clone, push… i to zadziała.
source.repos.updateProjectConfig
Dzięki temu uprawnieniu można wyłączyć domyślną ochronę Source Repositories, która uniemożliwia przesyłanie kodu zawierającego klucze prywatne:
Wyłączenie pushblock i modyfikacja konfiguracji pub/sub
```bash gcloud source project-configs update --disable-pushblock ``` Możesz także skonfigurować inny pub/sub topic lub nawet całkowicie go wyłączyć: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

