GCP - Sourcerepos Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre los Repositorios de Código, consulta:
GCP - Source Repositories Enumsource.repos.get
Con este permiso es posible descargar el repositorio localmente:
source.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 se puede adjuntar a roles personalizados, por lo que debe ser otorgado a través de un rol predefinido como:
Owner
Editor
Source Repository Administrator (roles/source.admin
)
Source Repository Writer (roles/source.writer
)
Para escribir, simplemente realiza un git push
regular.
source.repos.setIamPolicy
Con este permiso, un atacante podría otorgarse a sí mismo los permisos anteriores.
Si el atacante tiene acceso a los secretos donde se almacenan los tokens, podrá robárselos. Para más información sobre cómo acceder a un secreto, consulta:
GCP - Secretmanager PrivescEs posible agregar claves ssh al proyecto de Source Repository en la consola web. Se realiza una solicitud POST a /v1/sshKeys:add
y se puede configurar en https://source.cloud.google.com/user/ssh_keys
Una vez que tu clave ssh esté configurada, puedes acceder a un repositorio con:
Y luego usa los comandos git
como de costumbre.
Es posible crear credenciales manuales para acceder a los Repositorios de Código:
Al hacer clic en el primer enlace, te dirigirá a https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
Lo que mostrará un mensaje de autorización Oauth para dar acceso a Google Cloud Development. Así que necesitarás ya sea las credenciales del usuario o una sesión abierta en el navegador para esto.
Esto te enviará a una página con un script bash para ejecutar y configurar una cookie de git en $HOME/.gitcookies
Al ejecutar el script, podrás usar git clone, push... y funcionará.
source.repos.updateProjectConfig
Con este permiso es posible desactivar la protección predeterminada de los Repositorios de Código para no subir código que contenga Claves Privadas:
También puedes configurar un tema pub/sub diferente o incluso desactivarlo por completo:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)