GCP - Sourcerepos Privesc
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
Source Repositories
Para más información sobre Source Repositories consulta:
GCP - Source Repositories Enum
source.repos.get
Con este permiso es posible descargar el repositorio localmente:
Clonar el repositorio
```bash gcloud source repos clonesource.repos.update
Un principal con este permiso podrá escribir código dentro de un repositorio clonado con gcloud source repos clone <repo>. Pero ten en cuenta que este permiso no puede asignarse a roles personalizados, por lo que debe otorgarse mediante un rol predefinido como:
- Owner
- Editor
- Source Repository Administrator (
roles/source.admin) - Source Repository Writer (
roles/source.writer)
Para escribir, basta con realizar un git push.
source.repos.setIamPolicy
Con este permiso un atacante podría concederse a sí mismo los permisos anteriores.
Secret access
Si el atacante tiene acceso a los secretos donde se almacenan los tokens, podrá robarlos. Para más información sobre cómo acceder a un secret consulta:
Add SSH keys
Es posible añadir ssh keys al proyecto de Source Repository desde la consola web. Hace una petición POST a /v1/sshKeys:add y puede configurarse en https://source.cloud.google.com/user/ssh_keys
Una vez que tu clave SSH esté configurada, puedes acceder a un repositorio con:
Clonar repositorio usando SSH
```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p/Y luego usa los comandos git como de costumbre.
Credenciales manuales
Es posible crear credenciales manuales para acceder a Source Repositories:
.png)
Al hacer clic en el primer enlace serás dirigido a https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
Lo cual mostrará un Oauth authorization prompt para otorgar acceso a Google Cloud Development. Por tanto, necesitarás o bien las credenciales del usuario o bien una sesión abierta en el navegador.
Esto te llevará a una página con un bash script to execute que configura una cookie de git en $HOME/.gitcookies
.png)
Al ejecutar el script podrás usar git clone, push… y funcionará.
source.repos.updateProjectConfig
Con este permiso es posible desactivar la protección por defecto de Source Repositories que evita subir código que contenga Private Keys:
Disable pushblock and modify pub/sub configuration
```bash gcloud source project-configs update --disable-pushblock ``` También puedes configurar un topic pub/sub diferente o incluso desactivarlo por completo: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

